728x90
Shift+Space를 누르면 현재 셀에서 가로 줄 (row)를 모두 선택할 수 있고
Ctrl+Space를 누르면 현재 셀의 세로 줄을 선택할 수 있고
Shift+Space를 누른 상태에서 Ctrl+Space를 누르면 Sheet의 전체 셀을 선택할 수 있다.

세 번째는 괜찮은 아이디어가 아닌가?
단축키가 키의 조합이라면 키의 조합인 단축키의 조합으로 어떤 기능을 할 수 있다니.. 역시 구글다운 새로움이다.

아래는 구글 Docs & SpreadSheet의 단축키 모음이다.

Google Docs & Spreadsheets Keyboard Shortcuts

Shortcut

Function

Documents

Spreadsheets

Ctrl+A

Select all

Yes

 

Ctrl+B

Bold

Yes

Yes

Ctrl+C

Copy

Yes

Yes

Ctrl+D

Copy Down (used in combo with Shift + arrow)

 

Yes

Ctrl+E

Center alignment

Yes

 

Ctrl+H

Replace

Yes

 

Ctrl+I

Italicize

Yes

Yes

Ctrl+J

Full justify

Yes

 

Ctrl+K

Insert link

Yes

 

Ctrl+L

Left alignment

Yes

 

Ctrl+M

Insert comment

Yes

 

Ctrl+P

Print

Yes

Yes

Ctrl+R

Right alignment (documents)

Copy Right (used in combo with Shift + arrow) (spreadsheets)

Yes

Yes

Ctrl+S

Save

Yes

Yes

Ctrl+U

Underline

Yes

Yes

Ctrl+V

Paste

Yes

Yes

Ctrl+X

Cut

Yes

Yes

Ctrl+Y

Redo

Yes

Yes

Ctrl+Z

Undo

Yes

Yes

Ctrl+End

Go to last cell in data region

 

Yes

Ctrl+Home

Go to first cell in data region

 

Yes

Ctrl+left-arrow

Go to left-most cell in data region (current row)

 

Yes

Ctrl+right-arrow

Go to right-most cell in data region (current row)  

Yes

Ctrl+down-arrow

Go to bottom-most cell in data region (current column)

 

Yes

Ctrl+up-arrow

Go to top-most cell in data region (current column)

 

Yes

Ctrl+Page Down

Move to next worksheet

 

Yes

Ctrl+Page Up

Move to previous worksheet

 

Yes

Ctrl+Shift+L

Bulleted list

Yes

 

Ctrl+Shift+Space

Insert non-breaking space

Yes

 

Ctrl+Space

Remove formatting

Yes

 

Ctrl+1

Header style 1

Yes

 

Ctrl+2

Header style 2

Yes

 

Ctrl+3

Header style 3

Yes

 

F2

Edit active cell

 

Yes

Enter

Move to next cell in column

 

Yes

Esc

Cancel cell entry

 

Yes

Shift+Enter

Move to previous cell in column

 

Yes

Shift+page up/down

Extend the selection up/down one screen

 

Yes

Ctrl+spacebar

Select entire column

 

Yes

Shift+spacebar

Select entire row

 

Yes

Shift+down, up, left, right arrow key

Manual select

 

Yes

Page Down

Move down one screen

 

Yes

Page Up

Move up one screen

 

Yes

Shift+Tab

Move to previous cell in table (documents) or row (spreadsheets)

Yes

Yes

Tab

Move to next cell in table (documents) or row (spreadsheets)

Yes

Yes


728x90

'Information' 카테고리의 다른 글

Google Product Connections Map  (0) 2007.07.06
Youtube 동영상 다운로드 하기  (1) 2007.06.26
글로벌 IT기업의 M&A현황  (0) 2007.06.26
728x90

유투브 동영상은 flv 파일이며, 자동으로 임시인터넷폴더에 다운이 되지만
유투브 다운로드 페이지가 존재하기 때문에 이를 이용하면 보다 쉽게 다운로드가 가능하다.

유투브 다운로드 페이지 : http://keepvid.com/

728x90

'Information' 카테고리의 다른 글

Google Docs & Spreadsheets Keyboard Shortcuts  (0) 2007.07.03
글로벌 IT기업의 M&A현황  (0) 2007.06.26
구글 다큐멘터리(EBS)  (0) 2007.06.24
728x90
구글 (2006~2007)
2006년 1월 DMarc 브로드캐스팅 - 라디오광고
2월 메저맵(Measure Map) - 웹분석 회사
3월 라이틀리(Writely) - 웹기반워드 서비스
8월 네븐 비전(Neven Vision) - 이미지인식업체
10월 유튜브(Youtube) - 동영상UCC업체
11월 젓스팟 JotSpot(위키전문업체)
2007년 4월 더블클릭(doubleclick) - 인터넷 광고
5월 그린보더 테크(GreenBorder Technologies) - 사진 중심 웹지도
파노라미오(Panoramio)
6월 피드버너(feedburner) - RSS 피드 관리


야후(2004~2007)
2004년 3월 켈쿠(Kelkoo) - 유럽 쇼핑가격 비교사이트
9월 뮤직매치(Musicmatch) - 디지털 음악 서비스
7월 오드포스트(Oddpost) - 웹 기반 이메일 기업 인수.
2005년 3월 플리커(Flickr) - 태그 기반 사진 공유 웹서비스
픽소리아(Pixoria) - 위젯 서비스
업커밍(Upcoming) - 소셜 이벤트 캘린더 서비스
델리셔스(Del.icio.us) - 북마크 공유 서비스 인수.
2006년 1월 웹제이(Webjay) - 음악 재생 리스트 공유 커뮤니티
10월 애드인터랙스(AdInterax) - 웹 기반 광고
2007년 6월 라이벌닷컴 - 스포츠 전문 사이트


IBM (2006~2007)
2006년 8월 MRO소프트웨어(MRO Software) - 자산관리 컨설팅 & 애플리케이션 업체
인터넷시큐리티시스템즈(ISS) - 정보보호솔루션업체
파일넷(FileNet) - 문서관리솔루션업체
10월 펠리세이드 테크놀로지 파트너스 - 금융관련컨설팅업체
11월 발렌트(Vallent) - 네트웍관리솔루션업체
12월 칸설(Consul) - 보안관리솔루션업체
2007년 1월 소프트텍(Softek) - 데이터호환관리솔루션업체
4월 Maintenance Business of Serbian Business Systems - IT서비스회사 (유지보수사업만)
6월 왓치파이어(Watchfire) - 보안 및 컴플라이언스 평가 소프트웨어업체,
텔레로직(Telelogic) - 소프트웨어 개발 솔루션업체


EMC(2006~2007)
2006월 1월 액시엄(Acxium) - 그리드 기반의 정보 인프라스트럭처 소프트웨어 기술
인터노시스(Internosis) - MS 환경 IT 인프라 및 관리 서비스
2월 오센티카(Authentica) - 기업용 문서 디지털저작권관리(DRM) 솔루션
5월 카샤(Kashya) - 데이터 복제 및 CDP 솔루션
6월 엔레이어스(nLayers) - 애플리케이션 도메인 분석 및 매핑 소프트웨어
프로액티비티(ProActivity) - BPM 컨텐트 관리 소프트웨어 기업
RSA 시큐리티(RSA Security) - 온라인 아이디(ID) 및 디지털 자산 보안 솔루션 기업
9월 네트워크인텔리전스(Network Intelligence) - 보안 정보 및 분석 솔루션
11월 아바마테크놀로지스(Avamar Technologies) - 데이터 de-duplication (중복 백업 방지) 기술
2007년 3월 인디고스톤(Indigo Stone) - BMR 소프트웨어
6월 버리드(Verid) - 지식기반 인증 솔루션


오라클(2006~2007)
2006년 1월 360커머스 (360Commerce) - 애플리케이션(유통)
2월 슬리피캣 (Sleepycat) - 데이터베이스
핫십(HotSip) - 미들웨어(통신)
4월 포털 소프트웨어 (Portal Software) - 미들웨어(통신)
넷4콜(Net4Call) - 미들웨어(통신)
6월 디맨트라(Demantra) - 애플리케이션(ERP, SCM)
텔레포니 앳 워크(Telephony@Work) - 애플리케이션(CRM)
8월 시그마 다이나믹스(Sigma Dynamics) - 미들웨어(BI)
10월 썬업시스(Sunopsis) - 미들웨어(DI)
메타솔브(MetaSolv) - 애플리케이션(OSS)
11월 스텔런트(Stellent) - 애플리케이션(ECM)
SPL 월드그룹(SPL WorldGroup) - 애플리케이션
2007년 3월 하이페리온(Hyperion) - 미들웨어(BI)
탱고솔(Tangosol) - 미들웨어
4월 로드스타(Lodestar) - 애플리케이션
5월 애자일 소프트웨어(Agile Software) - 애플리케이션

원문 : http://www.zdnet.co.kr/news/enterprise/etc/0,39031164,39158800,00.htm
728x90

'Information' 카테고리의 다른 글

Youtube 동영상 다운로드 하기  (1) 2007.06.26
구글 다큐멘터리(EBS)  (0) 2007.06.24
용역단가 산출 예시(특급기술자)  (0) 2007.06.11
728x90
728x90

'Information' 카테고리의 다른 글

글로벌 IT기업의 M&A현황  (0) 2007.06.26
용역단가 산출 예시(특급기술자)  (0) 2007.06.11
SW기술자 노임단가표  (0) 2007.06.11
728x90

2007년도 적용할 SW기술자 용역단가 산출 사례.

(토요 격주근무조건, 월 24일 근무)


◈ 용역단가 산출 근거


산출근거 : 특급기술자 일 노임단가 267,495원
                (2006년 과기처 SW기술자 노임단가)
                직접인건비 : 267.495원 x 24일                 = 6,419,880원
                제 경비      : 직접인건비 x 110%               = 7,061,860원
                기술료       : (직접인건비 + 제경비) x 20%  = 2,696,340원
                                                                            16.178,080원
            적용단가  = ??원  (??%적용, 16,178,080원 x 0.??) 
728x90

'Information' 카테고리의 다른 글

구글 다큐멘터리(EBS)  (0) 2007.06.24
SW기술자 노임단가표  (0) 2007.06.11
Microsoft Surface (Code Name - Milan)  (0) 2007.06.04
728x90
기술자 등급별 일 노임단가 (단위 : 명, 원 ,%)
사용자 삽입 이미지

SW기술자 노임단가표


728x90
728x90

마이크로소프트가 서피스 컴퓨터(Surface Computer)라는 새로운 개념의 컴퓨터를 선보였다. Microsoft Surface의 코드네임은 밀란(Milan)이다. 이 컴퓨터는 여러 모로 기존 컴퓨터와는 다르다. 우선 생긴 모양이 테이블 모양이다. 그래서 테이블 PC라고도 부른다.

http://www.microsoft.com/surface/




테이블 모양의 컴퓨터 윗부분에는 30인치 크기의 액정이 있다. 테이블 표면이 모니터가 되는 샘이다. 단순히 모니터 위치만 바껴 있는 것은 아니다. 이 컴퓨터에는 마우스와 키보드가 없다.



어떻게 조작하나?


이 제품에는 5개의 적외선 카메라가 달려 있다. 이 카메라들이 손의 제스처와 테이블 위에 올려 진 물체를 인식한다. 마우스와 키보드 대신 손으로 조작을 한다. 기존의 태블릿 PC나 터치스크린과 비슷해 보이지만 서피스 컴퓨터에는 여러개의 터치를 감지한다. 멀티 터치 디스플레이가 채택 되어 있는 것이다. 여러개의 손까락들의 움직임을 한꺼번에 인식해 작동한다. 여러 사람이 둘러 앉아 한꺼번에 이것 저것 조작할 수도 있다. 손까락 뿐 아니라 다양한 제스쳐도 인식한다. 테이블 위에 올려 놓은 물건들도 인식한다.


두 손을 옆으로 벌리면 그림이 확대 되고, 손을 모으면 그림이 축소된다. 글을 쓸 필요가 있을 때에는 화면에 키보드가 나오게 해서 쓰면 된다.


그 동안 마우스나 키보드로 입력을 했지만 이것이 인간의 자연스러운 제스쳐는 아니었다. 마우스나 키보드로 조작하는 것 보다 더 자연스러운 방법으로 컴퓨터와 의사 소통하도록 하기 위해 멀티 터치와 서피스 컴퓨팅이 나왔다.

화면에 손까락을 대면 물에 넣은 것 처럼 반응하는 액정



 

전체 크기는 22인치x42인치x21인치이다. 모니터는 30인치가 들어가 있지만 상단 테이블 전체 넓이는 42인치인 것이다.




윈도우비스타 기반이며 유선은 10/100 이더넷, 무선은 802.11b/g, 블루투스2.0을 지원한다.


이 제품은 올해 말에 처음 시판 될 예정이며 초기 가격은 약 천만원 근처가 될 예정이다. 차차 가격 하락이 있을 것이지만 초기에는 일반인들이 구입하기에는 부담스러운 가격이다. 그래서 마이크로소프트는 이 제품들을 초기에는 T모바일 매장, 쉐라톤 호텔과 웨스틴호텔 로비 등에 공급할 예정이다.




초기에는 호텔로비, 병원, 가게, 음식점, 공공장소 등에 공급할 예정이다. 재미있는 것은 나이트클럽에도 공급이 가능하다는 것. 나이트클럽에서 이 컴퓨터 위에 올라가 춤을 춰도 된다고 한다.




 

또 다른 특징으로는 테이블 위에 물건을 올려 놓으면 물건을 인식해 반응을 한다는 것이다. 디지털 카메라를 올려 놓으면 인식해 사진을 전송할 수도 있다고 한다.





음식점에서는 이 컴퓨터의 화면을 보면서 주문할 수도 있을 것 같다.




탐크루즈가 주연으로 나오는 마이너리티 리포트라는 영화를 보면 미래의 컴퓨터는 허공에 펼쳐진 컴퓨터 화면을 보면서 손을 휘저어 가면서 조작한다. 마이크로소프트도 이런 영화에 힌트를 얻어 새로운 PC를 개발 했는지도 모른다.




앞으로는 마우스와 키보드가 없는 PC 세상이 올 것같다. PC와 사람 사이에 의사소통을 하는 가장 보편적인 도구가 마우스와 키보드였는데 마우스와 키보드 이후의 시대를 열려고 하는 노력이라고 할 수 있다.





제품명은 마이크로소프트 서피스(Microsoft Surface)이며 카테고리는 서피스 컴퓨팅(Surface computing)이다.


관련 동영상 : http://www.youtube.com/watch?v=QKh1Rv0PlOQ


출처 : 베타뉴스
728x90

'Information' 카테고리의 다른 글

SW기술자 노임단가표  (0) 2007.06.11
Microsoft Surface (Code Name - Milan) - 동영상  (0) 2007.06.01
실전 웹 표준 가이드 (2005)  (0) 2007.05.25
728x90
허허허... 웃음밖에 안나온다... 개발중인건 알았지만 이정도 일줄은...


Microsoft Surface - Exclusive Review


Microsoft Surface - 빌게이츠 시연


728x90

'Information' 카테고리의 다른 글

Microsoft Surface (Code Name - Milan)  (0) 2007.06.04
실전 웹 표준 가이드 (2005)  (0) 2007.05.25
우리 회사 연봉 테이블은 얼마일까?  (0) 2007.05.25
728x90
원문 : http://www.mozilla.or.kr/docs/web-developer/standard/

실전 웹 표준 가이드 (2005)

본 가이드는 XHTML, CSS, DOM, ECMAScript 등 모든 웹 표준에 대한 이슈를 새롭게 정리하고, 웹 개발 프로젝트에서 표준을 준수하는 방법을 제공하는 가이드 입니다.

목 차

  • 웹 표준이란 무엇인가?
  • 실전 XHTML 가이드
    • XTHML 소개
    • XHTML 일반 문법 준수
    • 구조적 XHTML 사용 방법
  • 실전 CSS 레이아웃
    • CSS 개념 및 소개
    • CSS 레이아웃(LAYOUT) 기초
    • 실전 예제를 통한 CSS 레이아웃
    • 고급 CSS 레이 아웃
  • 실전 DOM/Script 가이드
    • W3C DOM vs. MS DOM
    • 표준 JAVASCRIPT 사용 방법
    • 올바른 플러그인(PLUGIN) 사용
  • 실전 표준 웹 프로그래밍
    • 표준 MIME 타입 설정
    • 표준 문자 인코딩 지정
  • 실전 웹 표준 개발 프로세스
    • 현재 프로세스 소개(Waterfall 방식)
    • 개선된 모델(퍼블리셔 중심)
    • 새로운 개발 프로세스
  • 맺음말
  • 부록 : 웹 표준 사양-브라우저 호환차트
- URL: http://www.mozilla.or.kr/docs/web-developer/web-standard-guide-2005.pdf
- 인쇄 버전 : PDF 파일 (223pp), PDF 파일(부록 포함, 305pp)

웹 표준 기반 홈페이지 구축 가이드 (2004)

본 가이드는 브라우저 호환성 유지 방법은 물론 XHTML/CSS 레이아웃을 통한 홈페이지 개발 방법을 소개한 가이드 입니다.

목 차

  • 1부 브라우저 호환성 유지 방안
    • 현대 웹사이트 제작의 방향
    • W3C 표준안
    • 정확한 문서 형식 사용
    • 올바른 HTML 및 CSS 사용 방법
    • 올바른 객체 모델 및 자바스크립트 사용 방법
    • 웹페이지 디버깅 도구 사용
  • 2부 웹표준 기반 페이지 제작 방법
    • 구조와 표현의 분리
    • XHTML를 사용해야 하는 이유
    • XHTML의 주요 특징
    • CSS 사용 방법
    • CSS 레이아웃 vs.Table 레이아웃
- 인쇄 버전 : PDF 파일

Cross Browsing 가이드(2003)

본 가이드는 각 웹 브라우저의 비 표준 기능과 이를 극복할 수 있는 방법을 위주로 작성된 것입니다.

목 차

- 인쇄 버전 : PDF 파일
728x90
728x90
출처 : http://www.zdnet.co.kr/itbiz/press/internet/etc/0,39032071,39145641,00.htm


연봉협상시기가 다가오면 직장인 못지 않게 기업 인사담당부서도 바삐 돌아간다.
전체 연봉인상률을 산정하고 또 이를 기반으로 세부 '연봉 테이블(Salary Table)'을 만들기 때문.

대부분의 기업은 근로자와 개인별 연봉계약을 할 때 '연봉 테이블'을 갖고 임한다. 이 테이블은 직급별 연봉 데드라인이 기록돼 있으며 연봉 협상은 그 범주내에서 보통 이루어진다. 직급별 연봉 테이블에는 실적평가 등급에 따른 연봉 테이블이 다시 세분화되어 있다.

그렇다면 기업들이 연봉협상의 기준으로 삼는 연봉 테이블은 어떻게 구성되어 있을까?

취업·인사포털 인크루트가 운영하는 연봉전문사이트 오픈샐러리(www.opensalary.com)가 2005년 서울 및 수도권 대졸 남성 직장인 연봉으로 등록된 9천582건을 분석하여 구성한 기업별 연봉 테이블을 발표하였다.

대기업의 경우, 사원급 2천218만원, 대리급 2천879만원, 과장급 3천574만원 등이었으며, 소기업의 경우는 사원급 1천918만원, 대리급 2천526만원, 과장급 3천112만원 등으로 나타났다.

직급이 같더라도 소기업과 대기업은 평균 300~600만원 가량 차이가 났고 중기업은 대기업과 100만원 안팎의 차이를 보였다.

또 연봉인상폭은 대리로 승진할 때, 인상금액은 차장으로 승진할 때 가장 컸다.

사원에서 대리급으로 승진할 때 30~32% 가량 연봉이 올랐는데 대리급 승진기간이 평균 4년임을 가정했을 때 1년마다 7~8% 가량 연봉이 오른 셈이다. 인상폭은 중소기업들이 대기업보다 다소 높았다.

직급이 한단계 오를 때 연봉금액은 평균 500~800만원 가량 올랐으며, 과장에서 차장으로 승진할 때 인상금액이 700~800만원 가량으로 가장 컸다.

오픈샐러리 관계자는 “연봉 협상 전에 올해 회사 전체의 연봉인상률과 본인 실적에 따른 인상률을 근거로 대략적인 본인의 연봉테이블을 구성해 보는 것이 좋다”며 “이를 위해 오픈 샐러리와 같은 연봉정보사이트들을 참고한다면 연봉 협상에 도움이 될 것”이라고 밝혔다.
728x90
728x90

스킨작업을 하면서 웹 표준을 지키는 코딩에 도전하게 되었습니다. 그리고 스킨만으로는 웹표준을 준수할수 없는 것을 알게 되었고, 태터툴즈 클래식의 웹 표준에 반하는 코드도 모두 뜯어고쳐 W3C의 표준 유효성 검사를 통과하였습니다. 처음에는 300개가 넘는 오류로 자포자기하고 있었지만, 하나하나 수정하기 시작하여 태터툴즈 클래식을 사용하는 블로그도 웹 표준 유효성 검사를 통과하게 된 것입니다. 이곳 외에도 Tyburn님과 Vincent님도 이미 클래식을 XHTML1.0까지 통과시킨 전적이 있습니다.

W3C HTML 4.01 웹 표준 유효성 검사 바로가기

유효성을 통과하면 좌측의 배너를 사용하여 언제든지 해당 웹 페이지의 유효성 검사를 해볼수 있습니다. 태터툴즈 클래식을 웹 표준 준수 블로그툴로 만들기위한 가장 까다로웠던 작업은 name으로 정해진 폼이름입니다. 삽질 끝에 name를 id로 변경하고 몇 줄의 자바스크립트 함수의 변경으로 해결할 수 있었습니다. 포스트 작성도 웹 표준에 따라 작성해야 합니다. 때문에 이전에 작성한 글에서는 오류가 나타나기도 합니다. 그래서 글 입력페이지도 대대적으로 손보았습니다. 기존에 입력했던 글과 댓글들이 HTML 4.01 표준에 만족하도록 마이그레이션 작업을 진행 중입니다. 조금더 공부해서 XHTML 1.01 표준에도 도전해 볼 생각입니다. 앗! 그전에 CSS 1.0부터 orz...

출처 : http://firejune.com/804&ct1=8&ct2=42
728x90
728x90
태그 기능이 첨부된 태터툴즈 클래식 업데이트 이후 태그달기 작업을 한지도 한달째다. 처음에는 기존에 작성했던 600여개의 글에 단순히 제목의 키워드를 조합하는 막무가내 식 작업을 진행 하였다. 우후죽순처럼 늘어나 버린 태그들이 효과를 발휘하지 못하는 것을 알아체는데에는 그리 오랜시간이 걸리지는 않았다. 그리고 태그의 유용함을 살리기 위한 작업을 재차 시도하였다. 웹2.0의 핵심요소 중 하나인 태그, 과연 이것을 어떻게 내 블로그에 제대로 써먹을 수 있을까? 이러한 문제를 던져놓고 다음과 같은 의문점에 봉착한다.

1. 태그는 카테고리인가? 키워드인가?
2. 태그에 속해있는 글의 주제와 연관성의 기준은 무엇인가?
3. 태그의 범위와 키워드 선정은 어떻게 할 것인가?
4. 하나의 포스트만을 위해 존재하는 태그는 필요 없다?
5. 태그의 종류는 많을수록 좋은가?
6. 중복된 뜻을 가진 태그는 어떻게 처리할 것인가?
7. 태그의 표기규칙은 어떻게 정할 것인가?

위의 의문에 대한 얻은 결과를 태그 작성요령에 준하여 나름대로 리포트 하고자 한다.

1. 태그는 카테고리인가? 키워드인가?
이것은 태그를 작성하는데 있어서 가장 오류를 범하기 쉬운 문제이다. 한마디로 답하면 둘다이다. 기능면에서 태그는 관련된 포스트의 총집합이며 카테고리의 역할을 하는 동시에 키워드이기도 하다. 하지만 태그는 카테고리도 아니고 키워드도 아닌 태그일 뿐이다.

카테고리는 유한의 의미를 갖지만 태그는 무한의 의미를 가진다. 카테고리는 자료를 관리하기 위한 일종의 캐비넷이고 그 역할에 충실해왔다. 태그는 분류가 다른 캐비넷에 있는 자료를 연결시켜주는 역할을 하기도 한다. 예를 들어 회사 카테고리와, 친구 카테고리를 만들어 관리하는 전화 번호부가 있다. 친구이자 회사 동료인 '진호'는 친구 카테고리에 정보가 저장되어 있다. 진호의 전화번호를 카테고리로 접근하기 위해서는 친구카테고리를 기억해낼 필요가 있다. 진호에게 태그를 달아주자. ‘회사동료’와 ‘친구’라는 태그를 말이다. 그리고 태그목록에서 회사동료를 조회하던 친구를 조회하던 진호의 정보는 목록에 들어있게 된다.

태그는 키워드인가? 그렇다고 볼 수 있지만 그렇지 않다. 주요한 키워드로 구성된다는 점에서 이 둘은 비슷하지만 용도에서 차이가 있다. 태그는 공통 주제를 가진 포스트로 의 접근방법을 제시할 뿐이지 정확한 정보를 전달하고자하는 수단은 아니다. 태그는 최종핵심키워드 일수 없다. 최종핵심키워드는 항상 주제이기 마련이다. 예를 들어 ‘진주만’에 대한 영화정보에 접근한다고 가정하면, 최종핵심키워드는 '진주만' 이다. 그리고 방문객은 이 키워드를 검색하여 '진주만'이라는 포스트에 곧바로 접근할 수 있을 것이다. 하지만 태그는 관련된 포스트의 접근이라는 용도로 볼 때 '진주만'이라는 이름을 가진 단일태그는 쓸모없는 것일 수도 있다. 차라리 '영화' 또는 '할리우드'와 같은 태그가 더 쓸모있다.

2. 태그에 속해있는 글의 주제와 연관성의 기준은 무엇인가?
우선은 자신이 운영하는 블로그 또 는 사이트의 성향을 파악하고 있어야 한다. 태그를 작성하는데 내 블로그의 성향과 기준을 굳이 정의해야 하는 이유는 무엇인가? '성향'이라는 말을 '관심사'로 바꾸어 해석해도 좋다. 방문객이 친목 목적이 아닌이상 이유없이 방문해주지는 않는다. 대부분 내 블로그의 성향과 접속하는 방문자와 성향이 일치할 때 고유방문자가 발생하기 때문이다. 태그는 이러한 방문자에게 또 다른 포스트로의 연결을 유도하고, 결과적으로 더욱 많은 내용을 전달하는 것이 그 역할이다.

주로 다루는 소제는 무엇이며, 어떠한 태그가 인기태그가 될 것이라는 것쯤은 예상할 수 있어야 한다. 성향의 근거로 가장 쉽게 접근할 수 있는 통계자료는 카테고리가 될 수 있다. 수많은 카테고리 중 어느 곳에 가장 많은 글들이 보관되어있는지만 보아도 블로그의 성향을 어느정도 파악 할 수 있다. 카테고리를 바탕으로 연관성에 기준을 두어 표기규칙에 따라 태그를 작성해 나가는 것이다. 두번째로 거쳐야 하는 작업은 블로그내 키워드 검색이다. 이것은 작성한 글의 정확한 연관성을 제시하지는 않지만 카테고리와 무관하면서 연관되어 있는 글을 태그로 묶을 수 있도록 도와줄 것이다.

3. 태그의 범위와 키워드 선정은 어떻게 할 것인가?
태그를 작성하는데 있어서 서로를 이어줄만한 키워드를 고민할 필요가 있다. 리퍼러에 기록된 인기 검색어를 바탕으로 태그를 선정해도 된다. 올블로그 또는 이올린 과같은 블로그 메타사이트에 접속하여 어떠한 태그들이 있는지 살펴보는 것 또한 좋은 방법이다. 가장 쉬운 방법은 주제와 관련된 키워드 정보를 검색을 통해 수집하는 것이다. 예를 들어 ‘영화’와 관련된 포스트를 작성한다고 가정하고 필요한 정보를 수집한다. 장르, 국가, 감독, 배우, 제목 등의 정보를 수집했다. 그리고 카테고리는 영화로 분류되어 있다. 여기에서 '저 많은 양의 정보를 모두 태그로 기록할 것인가?'에 대한 기로에 서게된다. 자신의 블로그 성 향이 파악된 상황이라면 답은 금방 나온다. 연관성이 작은 순으로 나열해보자. 영화의 제목 > 배우 > 감독 > 국가 > 장르 > 영화 순이 되겠다. 자신의 블로그는 주로 컴퓨터에 대한 이야기를 다루지만 영화에 대한 포스트를 작성한 경우 태그는 영화, 장르명 더 욕심을 부리면 국가명 정도로 충분하다.

만약 영화를 주로 다루는 블로그라면 감독명, 배우명에서 심지어 영화제목까지도 범위를 확장해야 할 필요가 있다. 진주만과 관련된 포스트가 여러 건이 존재하는 경우 '진주만'이라는 태그를 조회함으로써 진주만과 관련된 다른 포스트를 조회할 수 있는 기회를 제공하기 때문이다.

3. 하나의 포스트만을 위해 존재하는 태그는 필요 없다?
앞서 예를 들었던 '진주만'처럼 최종핵심키워드인 영화제목 따위는 과연 쓸모없는 태그인가? 그렇지 않다. 태그를 입력 했느냐, 말았느냐에 따라 차이가 있을 수 있지만, 쓸모가 있고 없고는 판가름하기 힘들다. '진주만'이라는 키워드가 이슈가 되는 경우를 생각해보자. 포탈의 키워드 검색순위와 메타사이트에 '진주만'이라는 태그가 블랙리스트에 오르고 많은 이들의 입에서 오르내리는 경우가 될 수 있겠다. 이러한 경우에 ‘진주만’태그를 싱크 함으로써 더욱 많은 방문객을 확보할 수도 있다. 단, 충분한 사전조사 작업을 필요로한다.

5. 태그의 종류는 많을수록 좋은가?
만약, 컴퓨터 이 야기를 주로 다루는 블로그에서 영화에 대한 모든 정보를 태그로 입력했다면 어떤 상태가 될까? ‘제목까지 입력해 놓았다고 해서 손해 볼 것은 없지 않은가?’라는 생각이 들기도 한다. 하지만 손해를 보지 않는다고만은 할 수 없다. 이 태그들은 대부분 단일 태그로 구성되고 연관성 없는 태그가 목록에 가득히 존재하게 된다. 그리고 그것은 페이지 과부하를 초례하거나 원활한 출력이 이루어지지 않고, 많은 태그들 사이에서 정작 컴퓨터에 대한 태그로의 접근을 방해할 수 있다.

또 다른 문제는 트래픽 낭비로 이어진다는 것이다. 넉넉한 호스팅(1.5GB 트래픽)으로 이사한 후 한 번도 볼 수 없었던 트래픽 초과화면을 며칠 전에 최초로 접할 수 있었다. 주요 원인 중 하나는 검색봇의 횡포 (?)이다. 녀석은 새로운 링크를 보면 물불을 가리지 않고 달려든다. 우측 그래프에서 볼 수 있듯이 태그를 서비스 하던 기간과 하지 않던 기간의 차이가 확연히 드러난다. 블로그 또는 사이트가 주로 다루는 주제와 연관된 태그의 밀도측정은 필수불가결한 요소라 할 수 있겠다.

6. 중복된 뜻을 가진 태그는 어떻게 처리할 것인가?
중복된 뜻을 가진 태그는 방문객을 혼란에 빠지게 만든다. 예를들어 와이드LCD 제품 사용기에 대한 포스트를 작성하였다. 그리고 이에 속할 수 있는 태그를 나열해 보자.

LCD, 와이드LCD, 와이드, 모니터, LCD모니터, 출력장치, 하드웨어, 제조사, 사용기, 신제품, 신기술, 지름

이러한 경우 굵게 표시된 부분은 중복된 뜻을 가진 태그이다. 그리고 오렌지색으로 표시된 것은 두 단어가 조합된 경우이다. 적합과 부적합의 기준은 무엇이 될 수 있을까? 우선 사용 빈도로 구분하면 모니터 > LCD > LCD모니터 > 와이드 > 와이드LCD 순이 될 수 있다. 두 번째로 오렌지색의 중첩된 뜻을 가진 ‘와이드LCD’와 ‘LCD모니터’는 제외하고 세 번째로 자신의 관심사순으로 나열한다. 와이드 > LCD > 모니터 순으로 정리 할 수 있겠다. 블로그의 성향에 따라 와이드 LCD에 대하여 심층적으로 다루고 있다면 중첩된 뜻을 가진 '와이드LCD' 태그를 그대로 사용해도 무방하다. 이상은 자신의 규칙에 따르는 방법이지만 대세를 따라가는 방법도 있다. 앞서 말한 메타사이트에 접속하여 중복의 뜻을 가진 여러 태그들 중 어떠한 태그에 가장많은 글이 싱크되어 있는지 살펴보고 태그를 선정하는 것은 탁월한 것이다. 단, 자신의 태그 목록이 엉망이 되지 않도록 주의해야 한다.

7. 태그의 표기규칙은 어떻게 정할 것인가?
태그를 사용하는데 있어서 표준안은 없다. 자신만의 태그 입력기준을 정하고 그것에 충실히 따르면 된다. 먼저 블로그 성향을 파악하고, 입력범위를 정하고, 영문으로 표기할 것인지 한글로 표기할 것인지 등을 선정하여 자신만의 규칙에 따르면 그만이다. 그리고 철저한 관리를 필요로한다. 접근과정에 방해가 되는 태그라고 생각되면 가차없이 삭제하자.
728x90

'Information' 카테고리의 다른 글

클래식, W3C 유효성검사 통과 (Valid HTML4.01)  (0) 2007.05.25
ActiveX와 공인 인증에 대한 대안  (0) 2007.05.24
M/M(Man Month) 이해  (0) 2007.05.07
728x90
원문 : http://channy.tistory.com/136

지금까지 ActiveX와 공인 인증에 대한 문제에 대해 너무 많은 토론이 있었기 때문에 다들 문제 의식에는 공감을 하고 있을 것이다. (ActiveX에 대한 진실과 거짓말 II 참고)

사 실 이 문제는 꽤 뿌리가 깊다. 수 년 동안 계속되어온 소수 사용자 요구가  법적 소송이라는 방식으로 청구가 되어서야 문제를 인식하게 된 것은 때 늦은 감이 있다.  비 IE와 비 윈도우 사용자에게도 공인 인증을 사용할 수 있도록 해달라는 오픈 웹 활동이 이제는 우리 나라 공인 인증 전반에 대한 새로운 성찰을 요구 할 수 있게 된 것은 무척 기쁜 일이다.

그럼 이것을 해결하기 위한 대안은 무엇일까? 하나씩 살펴 보도록 하자. 현재 제기되는 가장 큰 문제는 아래 두 가지 이다.
  • 공인 인증을 위한 ActiveX 기술 사용 문제
  • 윈도우 자체 보안 문제
4 년 전만 하더라도 [2]번 문제는 존재하지 않았지만 지금은 키보드 해킹 방지, 스파이웨어 방지 프로그램이 모든 웹 사이트의 기본 사항이 될 정도로 문제가 커져 있다. 이것은 윈도우 OS 자체가 가지는 문제이기 때문에 장기적으로 MS가 계속 풀어가야할 과제이다.

[1]번을 범용 기술로 돌리더라도 [2]번 문제를 제기하는 사람이 많기 때문에 이 두 가지를 함께 살펴 봐야 한다.

[1] 공인 인증을 위한 ActiveX 기술 사용 문제

가 장 큰 문제는 현재 공인 인증 기술이 IE & 윈도우 사용자만 가능하다는 것이다. Firefox & 윈도우도 불가능 하다. 그 이유는 현재 공인 인증 기술이 SSL 기술을 기반으로 두고 있지만, 한국 자체 암호 알고리듬(SEED)을 강제하고 있고, 모든 암호 메시지에 전자 서명을 추가(Digital Signature)하도록 하고 있기 때문에 브라우저 내부 기술을 사용할 수 없다. 이를 위한 해결 방안은 다음과 같다.

(1) 단기- 플랫폼 독립적인 범용 플러그인 기술로 개발
대 표적인 방법이 자바 서명 애플릿이다. 자바 애플릿은 Java VM에서만 구동 되므로 안전하다. 간혹 소스 디컴파일에 대한 문제를 제기하는데 원래 PKI 기술 자체는 암호화를 기반으로 하고 있기 때문에 기본 기능에만 충실히 코드를 짜면 디컴파일 돼도 문제가 되지 않는다. UI상 좀 더 미려하게 하기 위해서는 Flash 기술을 접목해도 된다. 덴마크에서는 이미 간단한 기능이지만 자바 기반 공인인증 처리를 하고 있다.

사실 국내 공인 인증 암호화 규격에는 SEED와 DES가 함께 사용 가능하 다. 단지 보안 심사를 SEED만 하기 때문에 DES를 못쓰는 것 뿐이다. 만약 DES를 쓸 수 있다면 몇몇 주요 웹 브라우저에서도 플러그인 없이 가능하다. 예를 들어 IE CAPICOM과 Firefox의 crypto.signText 같은 것을 이용하는 방법이다. (하지만 이는 범용성이 떨어지는 단점이 있다.)

또 하나의 방법은 공인 인증용 독립 어플리케이션을 배포하는 것이다. 문제는 웹에서 해결 불가능한 것을 자꾸 웹에서 해결하려고 했던 데 있다. 과거에도 KT 월릿(Wallet) 프로그램이나 독립 프로그램으로 인터넷 뱅킹을 했었다. 모든 것을 웹으로 해결하려고 들지 말고 신한 은행 이지플러스 처럼 독립 프로그램을 제공하는 것도 검토해야 한다.

(2) 장기- 표준 SSL 기반 인증 및 서명 방법 개발
웹 브라우저에 몇 가지 기능이 추가 되면 범용 SSL 프로토콜을 써서 공인 인증이 가능하게 된다. 이를 위해서는 1) KISA루트 인증서 2) SEED 알고리듬 3) 전자서명 기능이 브라우저에 탑재 되어야 한다.

1)번의 경우 IE에 탑재되었고 Firefox에서 진행 중이다. 2)번의 경우 SEED가 2005년에 국제 표준이 되었기 때문에 연내에 윈도우와 OpenSSL(Firefox, Safari, Opera)에 탑재될 수 있을 것이다. 3)번의 경우가 가장 힘들다. 현재 몇 군데 표준 단체에 XML 전자서명을 통한 Web PKI 표준을 제정하도록 소수의 사람들이 함께 설득을 계속하고 있는 중이다.

하지만 실현이 되려면 꽤 많은 노력이 필요하다. 우리 나라 전자 서명법을 세계적으로 만들려면 KISA와 정부가 오히려 이런 데 정치적인 힘을 발휘해 주길 바란다.

(3) 장기- 리치 웹 어플리케이션 기술로 개발
현 재 글로벌 웹 기술은 리치 웹 어플리케이션으로 가고 있다. MS 비스타, 파이어폭스, 어도비 아폴로 플랫폼 등이 차세대 데스크톱 웹 어플리케이션 개발 플랫폼을 제공하기 위해 심혈을 기울이고 있다. 여기에 애플과 사파리 등이 WHATWG라는 표준활동을 통해 웹 표준으로도 리치 어플리케이션을 만들 수 있는 작업을 하고 있다.

글로벌 웹 기술의 변화는 플러그인에 있지 않다. 이점을 잘 인식하고 리치 웹 어플리케이션 기반 공인 인증 기술도 고민해야 한다.
 
[2] 윈도우 자체 보안 문제

공 인 인증 기반 체계과 별개로 인터넷으로 데이터를 도둑 맞는 스파이웨어 프로그램으로 생기는 보안 문제가 국내에서는 심각하게 대두 되어 있다. 스파이웨어에 대해 전 국민이 방지 프로그램을 설치하게 하는 창을 방패로 막으려 하지 말고 더 근본적인 방법을 도입해서 문제를 풀어야 한다.

(1) 단기 - 국내 사용자의 보안 수준 강화
- 윈도우 보안 수준 강화
우 리 나라 사람들은 전 세계 어디를 비교해 봐도 매우 교육 수준이 높다. 교육에 따라 얼마든지 보안 수준이 올라갈 수 있는 국민이다. IE의 보안 수준을 고급으로 올리도록 하고 윈도우 권한을 '일반 사용자'로 바꾸도록 사용자 교육을 강화할 필요가 있다.

국가에서 이를 권장하고 필요하다면 MS에 이야기 해서라도 한국어 버전에 보안에 대한 간단한 TIP을 나오게 하는 것도 가능할 것이다.

- 오프라인 인증 강화
공 인 인증만으로 인증이 다 됐다고 생각하는 건 큰 오산이다. 일반 SSL이든 공인 인증이든 PC의 보안이 뚫리면 끝이다. 지금까지 한 20개 정도가 조합되는 단순한 보안 카드에 거래를 의존해 왔다. 외국에서는 다양한 오프라인 인증 기기들이 존재한다.

단순한 보안 카드가 아니라 OTP(원타임패스워드) 같은 좀 더 복잡한 형태의 오프라인 인증기기의 사용을 늘일 필요가 있는 것이다. 특히 휴대폰이나 PMP 단말기 등에 인증 프로그램이 설치 될 수 있도록 지원할 필요가 있다.

- 데이터 해킹 보안 강화
키 보드 해킹 방지를 위해 스크린 키보드로 선택 하게 하거나 그림 문자를 통한 인증 수단도 함께 활용해야 한다. 스크린 키보드는 위치를 랜덤하게 표시하거나 그림 문자를 기계가 좀 더 해독하기 어렵도록 함으로서 보안은 충분히 강화된다.

- 개인 보안 수준 강화
가장 중요한 것이다. 스스로 보안은 스스로 지킨다는 의식을 가지도록 하는 게 좋다. 개인이 스스로 백신 프로그램을 구입 하여 설치하고 사용하도록 권장한다. 이게 SW 업계에도 이익이 된다.

특히 은행이나 금융권에서는 비 IE, 비 윈도우 사용자들 처럼 자신의 PC를 지킬 수 있다는 사람에 한해 계약을 통해 키보드 해킹 방지나 스파이웨어 방지 프로그램을 강제 설치 하지 않도록 할 필요가 있다.

(2) 장기 - 차세대 윈도우 OS나 대안 OS를 사용한다.
이건 말할 것도 없다. Vista를 사용하게 하거나 맥이나 리눅스 데스크톱을 사용하는 사용자가 늘어 나면 되는 것이다. 사실 어찌보면 이게 제일 중요하다.

-----
지금까지 현재 문제에 대한 다양한 해결 대안들을 살펴 보았다. 물론 이게 당장 해결 할 수 있는 것은 아니지만 장기적인 로드맵으로 꼭 해결 해야 될 걸로 본다.
728x90
728x90

프로젝트 제안서를 작성할 때 투입 인원의 개념으로 맨맨쓰라는 표현을 많이 씁니다. 맨먼쓰를 이해하기 전에 [작업 시간]과 [단위]에 대해 알 필요가 있습니다.

[작업 시간]은 자원이 작업에 투입되는 예정 시간을 뜻합니다. 1일 4시간 일할 예정이면 작업 시간이 4시간이라는 뜻입니다. 달력에서 하루의 [사용 가능한 작업 시간] 대비 [작업 시간]을 [단위]라고 합니다. 예를 들면 하루의 단위가 50%라면 달력 상에서 하루에 8시간 근무하기로 되어 있는데 4시간 업무가 배정되었다는 뜻입니다.

맨먼쓰(M/M, Man Month)는 엄밀히 men per month의 뜻입니다. 프로젝트에 투입되는 월 인원을 나타내는 숫자입니다. 프로젝트의 크기를 표현할때 주로 쓰입니다.

1 M/M 이면,
1명이 한달간 하면 끝낼수 있다,
2명이면 보름이면 끝낸다는 뜻입니다.

5 M/M 이면,
1명을 투입하면 5달 걸린다,
5명을 투입하면 한달걸린다는 뜻입니다.

각 사람의 능력은 동일하다는 전제하에 나오는 숫자입니다.

M/M는 투입되는 작업 시간의 양(How big)과 관련된 사항이며 [기간](How long)과는 다른 의미인 점을 이해할 필요가 있습니다.

출처 : Tong - I제로I님의 알아두면 좋은 자료통

728x90
728x90
가치 있는 사이트를 1년에 한번 선정해 수상하는「웨비(Webby) 상」
웹 사이트, 인터랙티브 광고, 모바일 미디어, 온라인 비디오 분야 등 70가지 가까운 부문에서 상이 선출된다.

웨비 상은 지난 1996년 음악인인 데이비드 보위와 심슨의 제작자 매트 그로닝, 버진 애틀랜틱의 리처드 회장이 참여하는「디지털 예술 및 과학 국제 아카데미」가 탄생시켰다.

Webby Nominees Site : http://www.webbyawards.com/webbys/current.php
728x90

'Information' 카테고리의 다른 글

M/M(Man Month) 이해  (0) 2007.05.07
Daum & NHN 매쉬업경진대회 수상작들  (0) 2007.05.03
악플대처법  (0) 2007.05.02
728x90
Daum과 NHN이 함께 한 매쉬업 경진대회가 끝이났다. 8개 작품이 수상을 했는데 사실 나머지 출품작들도 이만큼 훌륭했다. 다른 서비스들은 나중에 매쉬업 갤러리를 통해 소개하고 간단하게 몇 개 작품을 소개해 보고자 한다.

- 두빛나래'팀의 '올앰프'
올앰프는 노래 목록이나 가수명으로 손쉽게 원하는 음악과 뮤직비디오를 찾아주는 서비스다.
라스트FM의 음악재생 API와 네이버 블로그 검색 API를 결합했다.

- 전용우님의  'iShop'
네이버, Daum, 구글의 검색 결과 중 마음에 드는 URL을 곧바로 마우스로 드래그해 왼쪽 사이드바에 옮기면 자동으로
딜리셔스에 북마크하는 서비스.

- 신기배님의  '님아 어디 갈려구요?'
구글 지도를 기반으로 원하는 행선지를 입력하면 구글 지도와 다음과 네이버의 여행 블로그, 관련 상품을 찾아주는 서비스

- 서희만님의  'Lump of Thought!'(LOT, 생각이 자라나다)
플래시를 이용하여 네이버와 다음의 '연관 검색어'를 매개체로 하여 연관어들을 트리 및 생각 덩어리로 표현한 컨셉의 시각적 표현이 주효한 서비스

- Top-mashers'팀의 'Book Search2.0'
실제로 도서 검색 뿐만 아니라 쇼핑 검색까지  데스크톱 및 웹 서비스로 구현했다. 구현에 들어간 노력이 많은 들어간 서비스.

- 엄마친구아들'팀의  'LBS2.0 Simulator'
추론엔진인 '보쌈'과 네이버 지도 위에 Daum의 여행·숙박정보를 매시업하여  LBS와 연계해 지역별로 여행지나 숙박지 등의 정보를 찾아주는 위치정보 기반 추천서비스

- 손상모님의 대학 정보 서비스 'Miya'
구글맵, 플리커, 구글 AJAX 검색, 야후 날씨, 다음 및 네이버 웹문서·사전·블로그·카페·지도·여행 등 무려 10여개의 API를 결합해 전세계 대학정보를 입체적으로 구현한 서비스

- Boy's on TOP'팀의 '거침없이 글짓기'
영어 문장을 입력하면 구글의 검색 API를 이용해 구글 웹문서를 뒤져 가장 많이 등록된 표현을 기준으로 문장을 교정해주는 서비스. Naver와 Daum의 검색 결과를 통해 한국어 문장도 가능하다.

이번 대회를 통해 국내에 많은 개발자들과 지망생들이 아이디어 구현의 동기 부여도 받고 IT 업계의 신선한 자극을 계속 주었으면 하는 바램이 있다.

출처 : http://channy.tistory.com/151
728x90

'Information' 카테고리의 다른 글

인터넷의 아카데미상「웨비 상」수상작  (0) 2007.05.04
악플대처법  (0) 2007.05.02
핸드폰요금 절약 5가지  (0) 2007.04.30
728x90
728x90
728x90

핸드폰요금 절약 5가지


1. 할인받는 재미가 있다?! 자신에게 맞는 최적의 요금제 선택방법!

   정통부가 직접 운영하는 "휴대폰 최적 요금제 조회"를 이용해서
   나에게 가장 적합한 요금제를 찾아 할인률을 높여보자!!
   자세한 내용은 홈페이지 참조!  
http://010.ktoa.or.kr/optimize.jsp


2. 핸드폰 기본요금이 너무 아깝게 생각된다면 FreePcs를 이용하라!

   FreePcs는 국내 최저 기본요금제인 월 4500원(부가세별도)으로 이용이 가능하다.
   기본료가 저렴한 대신 통화료는 10초당 33원(부가세별도)이다.
   자세한 내용은 홈페이지 참조!   http://www.freepcs.co.kr/


3. 핸드폰 통화료가 너무 아깝게 생각된다면 가장저렴한 별정통신을 이용하라!
 
   통신사와 기본요금에 상관없이 국내에서 가장 저렴한 통화료 10초에9원(부가세포함)
   1만원으로 3시간5분을 통화할 수 있다. 의무사용없이 남은시간은 무제한 이월되는 장점이 있다.
   자세한 내용은 핸드폰 절약하기 홈페이지 참조!  
http://www.pcsdc.ze.to/


4. 무료문자 무제한 보내기!

   매일 09:00~18:00까지는 보내기닷컴에서 무제한 문자가 무료이다. 그외 시간은 네이트온을 이용하자.
   자세한 내용은 홈페이지 참조!  
http://www.bonegi.com/


5. 신용카드, 체크카드로 통신료 할인받자!

   각 신용카드사에서 발급하는 할인혜택을 꼼꼼히 살펴뵤면 휴대폰 요금을 할인해 주는 서비스가 하나
   씩은 있다. 여기서는 BC카드중 통신료 5%할인해주는 TNT카드를 소개한다.
   자세한 내용은 홈페이지 참조!
http://www.bccard.com/card/html/cardinfo/brand/tnt.jsp

728x90

'Information' 카테고리의 다른 글

악플대처법  (0) 2007.05.02
세컨드 라이프, 이벤트 통해 삼성 휴대폰 배포  (0) 2007.04.16
사이드쇼 지원되는 노트북PC W5Fe  (0) 2007.04.14
728x90
세컨드 라이프에 삼성전자의 이름을 딴 섬이 생겼다. 소프트뱅크 모바일과 삼성 전자는 12일, 「세컨드 라이프(Second Life)」에서 삼성도(島)를 공개했다.



세컨드 라이프가 공개한 삼성도의 모습

이 이벤트는 소프트뱅크 모바일 전용의 삼성 휴대폰을 위한 프로모션의 일부로 섬 안에 숨겨진 메시지를 해독하면 오리지널 아이템을 얻을 수 있는 추가 이벤트가 진행될 예정이다.

유저는 수많은 거대 휴대폰이 떠다니는 섬을 탐험해 자유롭게 이벤트에 참가할 수 있다. 거대 휴대폰에는 메시지들이 숨겨져 있어 섬 안의 수수께끼를 풀기위한 힌트가 포함되어 있다. 메시지를 해독하면 세컨드 라이프가 제공하는 오리지널 아이템을 얻을 수 있다.

섬의 중심에 있는 거대한 「소프트뱅크 스테이션」건물에서는 원하는 휴대폰을 손에 들고 슬라이드를 시험해 보거나 휴대폰의 기능을 시험해 볼 수 있다.

전시되어 있는 휴대폰은 유저들이 자유롭게 소유할 수 있다. 현재 제공되는 휴대폰 모델의 종류는 707 SC, 708 SC, 709 SC, 707SCII 등이다.

출처 : http://www.zdnet.co.kr/news/digital/0,39030978,39156845,00.htm
728x90

'Information' 카테고리의 다른 글

핸드폰요금 절약 5가지  (0) 2007.04.30
사이드쇼 지원되는 노트북PC W5Fe  (0) 2007.04.14
VISTA에서 Adminpak 설치하여 사용하기  (0) 2007.04.13
728x90
PC제조업체 아수스가 26일 ‘사이드쇼’ 기능을 내장한 W5Fe 노트북PC를 마이크로소프트사(MS)의 윈도우 비스타 체험관에서 공개한다고 밝혔다.

아수스 W5Fe 노트북은 ▲이메일 확인▲스케줄 및 주소록 체크▲이미지 보기▲음악 감상▲간단한 게임 실행 등의 작업을 노트북PC의 외부 LCD창에서 수행할 수 있다.

예를 들면 W5Fe 노트북을 사용하는 유저는 엘리베이터 안에서 오늘 있을 미팅 시간 및 일정을 사이드쇼 디스플레이 창을 통해 노트북을 열지 않고도 간편하게 확인할 수 있는 것.


아수스 W5Fe 노트북PC은 사이드쇼 기능의 빠르고 효율적인 동작을 위해 별도의 1기가바이트(GB) NAND 플래시 메모리를 장착하고 있고, 윈도우 비스타 운영체제와 연동돼 다양한 데이터들을 실시간으로 체크할 수 있다.

아수스가 국내에서 판매하는 모든 정품 노트북은 전 세계 2년 무상 서비스가 지원된다.

출처 : http://www.zdnet.co.kr/news/spotnews/digital/0,39040052,39154957,00.htm


▲ W5Fe

아수스 W5Fe 노트북은 사이드쇼(SideShow) 디스플레이를 탑재해 이메일 확인, 스케줄 및 주소록 체크, 이미지 보기, 음악 감상, 간단한 게임 실행(Solitaire) 등의 작업을 빠르게 수행할 수 있다. 별도의 1GB 낸드(NAND) 플래시 메모리를 장착해 윈도우즈 비스타(Windows Vista) 운영체제와 연동, 다양한 데이터들을 실시간으로 체크할 수 있다.

<아수스 W5Fe 노트북 사양>

  • CPU : 인텔® 코어™2 듀오 프로세서 T7200 프로세서
  • 운영체제 : 마이크로소프트 윈도우즈 비스타 홈 프리미엄
  • 메모리 : DDR2 667MHz 1.5GB 제공(최대 1.5GB 확장 가능)
  • 디스플레이 : 12.1" WXGA 컬러 샤인 디스플레이
  • 그래픽 향상기술 : 아수스 스플랜디드 인공지능 비디오 향상기술
  • HDD : 160GB / SATA 타입 / 5400rpm HDD 장착
  • 화상카메라 : 235도 회전, 130만 고해상도 웹캠 제공
  • 무선 네트워크 : 802.11a/b/g, 블루투스 V2.0+EDR
  • 인터페이스 : 3× USB, 1× IEEE1394, 1× TV-Out, 1× 카드 리더, 1×익스프레스 카드, 1× VGA
  • 크기 & 무게 : 30.5 × 22 ×3.1cm / 약 1.7kg (3셀 배터리 기준) / 6셀 배터리 제공
  • 서비스 : 전세계 2년 무상 서비스 제공

<사이드쇼(SideShow) 외부 디스플레이>

  • 디스플레이 : 2.8" QVGA TFT LCD
  • 플래시 : 1GB 낸드 플래시
출처 : http://www.buyking.com/news/2007/03/news200703201016527
728x90
728x90
이 문서는 VISTA에서  윈도우즈서버2003의 관리도구인 adminpak의 설치/사용에 관한 것입니다.

VISTA를 메인으로 사용하다보니 가장 큰 불편사항이 adminpak을 사용할수없다는것이었습니다.
Remote desktops으로 많은 데스크탑을 한번에 열어서 작업하면 정말 편리하죠..
원격데스크탑으로 창을 하나씩 열어서 작업하는것은 정말 불편합니다.
adminpak에는 도메인을 관리하는 관리자에게 유용한 툴이 많답니다.
하지만 VIASTA에서  이 adminpak을 설치해도 실행되지않더군요..  구글을 뒤지다 답을 찾았습니다.
"VISTA adminpak installation"으로 검색을 했더니 다음의 문서가 나오더군요..
* install-windows-server-2003-adminpak-administration-tools-pack-on-vista

제 노트북에서 실행하여 관리도구들을 실행한 모습입니다.
Remote Desktops와 Distribute File system 그리고 Active Directory users and computers가
비스타 데스크탑환경에서 실행되고있습니다.  보시다시피...
근데 묘하게 Active Directory users and computers에서 그룹정책을 보려고했는데 실패했습니다.
사용에 다소 제한이 있는듯합니다. 해결되면 추후 다시 이것에 대해 포스팅하도록 하죠..
사용자 삽입 이미지

실행방법은 간단합니다. 뭐 더복잡한 방법들도 있었습니다만.. 이것만으로 잘 되더군요
1단계. 일단 윈도우2003 sp1용 adminpak을 설치합니다.
2단계. 다음의 명령들을 배치파일로 만들어서 관리자권한으로 실행합니다.
그러면  adminpak으로 설치한 많은 관리도구들을 사용할수있습니다.
regsvr32 /s adprop.dll
regsvr32 /s azroles.dll
regsvr32 /s azroleui.dll
regsvr32 /s ccfg95.dll
regsvr32 /s certadm.dll
regsvr32 /s certmmc.dll
regsvr32 /s certpdef.dll
regsvr32 /s certtmpl.dll
regsvr32 /s certxds.dll
regsvr32 /s cladmwiz.dll
regsvr32 /s clcfgsrv.dll
regsvr32 /s clnetrex.dll
regsvr32 /s cluadmex.dll
regsvr32 /s cluadmmc.dll
regsvr32 /s cmproxy.dll
regsvr32 /s cmroute.dll
regsvr32 /s cmutoa.dll
regsvr32 /s cnet16.dll
regsvr32 /s debugex.dll
regsvr32 /s dfscore.dll
regsvr32 /s dfsgui.dll
regsvr32 /s dhcpsnap.dll
regsvr32 /s dnsmgr.dll
regsvr32 /s domadmin.dll
regsvr32 /s dsadmin.dll
regsvr32 /s dsuiwiz.dll
regsvr32 /s imadmui.dll
regsvr32 /s lrwizdll.dll
regsvr32 /s mprsnap.dll
regsvr32 /s msclus.dll
regsvr32 /s mstsmhst.dll
regsvr32 /s mstsmmc.dll
regsvr32 /s nntpadm.dll
regsvr32 /s nntpapi.dll
regsvr32 /s nntpsnap.dll
regsvr32 /s ntdsbsrv.dll
regsvr32 /s ntfrsapi.dll
regsvr32 /s rasuser.dll
regsvr32 /s rigpsnap.dll
regsvr32 /s rsadmin.dll
regsvr32 /s rscommon.dll
regsvr32 /s rsconn.dll
regsvr32 /s rsengps.dll
regsvr32 /s rsjob.dll
regsvr32 /s rsservps.dll
regsvr32 /s rsshell.dll
regsvr32 /s rssubps.dll
regsvr32 /s rtrfiltr.dll
regsvr32 /s schmmgmt.dll
regsvr32 /s tapisnap.dll
regsvr32 /s tsuserex.dll
regsvr32 /s uddi.mmc.dll
regsvr32 /s vsstskex.dll
regsvr32 /s w95inf16.dll
regsvr32 /s w95inf32.dll
regsvr32 /s winsevnt.dll
regsvr32 /s winsmon.dll
regsvr32 /s winsrpc.dll
regsvr32 /s winssnap.dll
regsvr32 /s ws03res.dll

출처 : 우키의 블로그
728x90
728x90
"웹2.0 시대에 소프트웨어로 성공하기 위해서는 수개월단위로 개발 사이클이 단축돼야 한다. SW업체의 성공포인트는 어떤 기술을 신속하게 적용할 수 있는 능력이다. 지금의 신기술은 빨리 적용한다고 해서 품질을 저해하지는 않는다고 단호하게 말하고 싶다."

지 난 24일 삼성동 코엑스에서 열린 자바 컨퍼런스에 기조연설차 방한한 맷 탐슨 썬마이크로시스텔즈 총괄 이사는 "웹2.0과 오픈소스의 확산으로 속도가 무엇보다 중요해졌다"면서 국내 자바 개발자들을 상대로 '개발생산성 향상'을 거듭 강조했다.

유사한 서비스를 쉽게 개발할 수 있는 상황에서 신속한  개발 능력은 개발자가 갖춰야할 필수조건이 됐다는 것이다.

탐슨 이사는 "썬은 전세계 개발자들이 신속하게 소프트웨어개발을 지원하기 위해 넷빈즈 개발 플랫폼을 공급하고 있다"면서 "한국 개발자들은 넷빈즈와 솔라리스 플랫폼에 기반해 다양한 혁신과 실험을 해볼 수 있을 것이다"고 목소리를 높였다.

그는 또 "개발자들이 자바를 기반으로 PHP와 루비 그리고 리치 인터넷 등을 쉽게 빠르게 개발할 수 있는 환경을 제공하겠다"면서 넷빈즈에 앞서있는 '이클립스'  개발 플랫폼과의 뜨거운 한판승부를 예고했다. 다음은 탐슨 이사와의 인터뷰 내용을 정리한 것이다.

오전에 가진 기조연설에서 강조한 것은 무엇이었나? 다시 한번 요약을 부탁한다.

웹2.0과 오픈소스 그리고 썬이 이를 돕기 위해 어떤일을 하고 있느냐를 강조했다. 자바와 각종 신기술을 결합해 쓰는 것에 대해서도 초점을 맞췄다. 웹2.0과 오픈소스가 확산되는 상황에서 소프트웨어로 성 공하기 위해서는 수개월 단위로 개발 사이클이 단축돼야 한다. SW 업체의 성공포인트는 특정 기술을 빠르게 적용할 수 있는 능력이다. 빨라지면 품질이 떨어질 것이란 우려가 있을 수 있으나 지금의 신기술은 빨리 적용한다고 해서 품질을 저해하지는 않는다고 단호하게 말하고 싶다. 썬은 이제 자바 플랫폼 전체를 오픈소스화했다. 이것은 개발자들이 다양한 실험을 신속하게 할 수 있도록 하기 위한 것이다.

▲오전 기조연설에서 F3란 기술에 대해 언급했다. 정확하게 어떤 것인지 궁금하다.

F3(form follows function)는 개발자 커뮤니티에는 말하고 있지만 공식 발표를 한 것은 아니다. F3솔루션은 개발자들이 다양한 기기에서 쓰일 수 있는 리치인터넷애플리케이션(RIA)을 쉽게 만들 수 있도록 해주자는 것이다. F3는 JVM상에서 돌아가며 루비와 자바 스크립트와 병행해 사용할 수 있다. 곧 공식 발표를 할 것이다. PHP보다 풍부한 인터페이스를 구현할 수 있음을 입증하겠다.

▲RIA의 경우 구글은 아작스 기반 웹서비스로, MS와 어도비는 데스크톱과 웹과의 융합을 표방하고 있다. F3가 갖고 있는 차이점은 무엇인가?

아작스는 매우 좋은 것이다. 그런데 자바 스크립트상에서만 돌아간다는 단점이 있다. 자바 스크립트의 경우 몇가지 문제가 있는데 우선 양질의 코드를 작성하기 어렵고 콤포넌트를 만든 후 재사용도 쉽지 않다. 아작스는 자바 스크립트 콤포넌트이기 때문에 이런 문제점들을 벗어날 수가 없다. 썬도 아작스를 지원하기 위한 툴깃을 내놓고 협업도 하고 있다. 그러나 기본적으로 썬은 루비와 아작스를 함께 쓰도록 하는 노력을 하고 있다.

리치 인터넷은 잠재력이 있다. 그러나 구현하는데 있어 정답은 무엇인가? 개인적으로는 휴대폰과 TV 그리고 데스크톱에 플래시와 플렉스를 적용시키려는 어도비가 MS보다는 나은것같다. 썬의 목표는 다양한 디바이스에서 JVM을 활용, 애플리케이션을 쉽고 빠르게 만들 수 있도록 하자는 것이다. 분명한 것은 F3를 통해 개발자들은 RIA를 쉽고 빠르게 구현할 수 있다는 것이다.

▲국내 자바 개발자는 IBM이 주도하는 이클립스 개발 플랫폼 사용 비중이 높다. 썬이 내놓은 신기술이 확산되려면 기본적으로 넷빈즈 개발 플랫폼와 솔라리스 사용자 기반이 확대되야 한다.  이게 쉽지는 않을 것 같다는 생각도 든다.

썬의 목표는 IBM을 대체하자는게 아니라 개발자들에게 선택의 폭을 넓혀주자는 것이다. 이렇게 되면 승자는 자연스럽게 판가름날 것이다. 한국에서 이클립스가 활발히 쓰이고 있다는 것은 인정한다. 그러나 중국과 브라질에 가면 넷빈즈가 앞서 있다. 모바일 솔루션 개발에서 넷빈즈가 유리하기 때문이다. 강조하건대 혁신을 얼마나 가능하게 하느냐 측면에서 넷빈즈는 이클립스보다 뛰어나다. F3나 루비 등과 같은 신기술을 JVM에 적용시키는데 있어 이클립스는 역부족이다. 썬이 이클립스에 가입하지 않은 것도 바로 혁신이 어렵기 때문이다. 솔직히 1년전에는 이런얘기못했는데 이제는 자신있게 말할 수 있다.

▲개발환경으로서 솔라리스가 리눅스보다 낫다고 강조했다. 구체적인 근거는 무엇인가.

-썬은 최근 SAMP를 선보였다. SAMP는 솔라리스, 아파치(웹서버),  '마이SQL'(MySQL: DBMS), 포스트그레SQL(DBMS), PHP(웹프로그래밍 언어)를 의미하는 것으로 '리눅스+AMP'의 대항마로 보면된다. SAMP는 런타임이 길게 보장되고 LAMP에서의 전환도 쉽다. 중요한 것은 LAMP보다 속도가 30~200% 정도 빠르다는 것이다.

▲웹2.0 시대에 어울리는 개발자의 조건은 무엇이라고 보나.

개발자를 꿈꾸는 대학생들에게 게임 개발을 해보라고 권하고 있다. 게임 개발은 개발은 물론 작가로서의 자질을 요구한다. 스토리를 알아야 한다는 얘기다.

원문 : http://delight.bloter.net/_news/8df42a45c1fe8f98



728x90
728x90
아래 글은 http://podcast.co.kr/2511377 에서 퍼왔으며 관련 댓글도 같이 포함되었습니다.


1. 10,000개 이상의 무료 폰트를 다운로드할 수 있는 better fonts
10,000 종류 이상의 무료 폰트를 샘플 테스트 후 다운로드할 수 있는 better fonts
왼쪽 사이드바에 샘플의 폰트가 표시되고 있고, 클릭하면 그 폰트의 문자 샘플이 오른쪽 사이드바에 표시됩니다.
간단하게 프리뷰를 보고 사이트 디자인에 필요한 폰트를 찾는데 편리합니다.

2. 1,3000개 이상의 무료 폰트를 검색할 수 있는 Search Free Fonts
25 개의 카테고리로 분류되고 있고 이외에도 폰트명이나 머리 글자로 검색이 가능.
무료 폰트 뿐만이 아니라 상용 폰트도 2만 3000개 이상 준비되어  검색이 가능하다.

3. 9800개의 프리 폰트 배포 사이트 Creamundo
9800개의 폰트를 무료로 다운로드할 수 있습니다. 프리뷰도 표시되므로 다운로드 전 어떤 폰트인지 확인할 수 있습니다. 다운로드 하려면 'DOWNLOAD THE FONT' 아래에 있는 플로피 디스크의 아이콘을 클릭하면 됩니다.

4. Download Free Fonts @ 1001 Fonts .com

5. Download fonts | dafont.com
자작 폰트를 사용자가 등록할 수 있는 기능이 있으며 때때로 상용 폰트가 올라오는 경우도 있습니다.

6. Download Free Fonts here at TypeNow.net

7. Typographic Collaboration | Typophile

8. Abstract Fonts

9. designfont
일본어 폰트도 함께 있으며 저작권이 있는 폰트도 있으니 사용에 유의하시기 바랍니다.

10. 기호, 그림 등의 폰트 DINGBATS을 무료로 다운로드할 수 있는 Dingbatdepot
무료 폰트로서 무료 다운로드할 수 있는 DINGBATS를 모은 사이트입니다.
동물의 실루엣, 음식의 일러스트, 공포영화의 분위기의 일러스트, 유명 기업 로고, 바코드등의 재미있는 폰트가 다수 다운로드할 수 있습니다. 추천합니다.

폰트 관련 보너스 팁
폰트 관리 툴 Linotype Font Explore X
맥과 PC에서 사용가능하다.

폰트를 무료 다운로드할 수 있는 1001 FREE FONT
맥과 PC에서 사용할 수 있는 폰트 모음

폰트 typography를 위한 뉴스 사이트 fontshop
독일, 베를린에 있는 폰트 판매 사이트 fontshop에서 제공하는 뉴스 블로그입니다.
typography, 폰트, 서적 등의 정보가 올라오고 있습니다. 고품질의 디자인, 타이포디자인을 소개하고 있습니다. 타이포그래퍼, 그래픽 디자이너, 웹디자이너에게 추천합니다.

  1.   monger님 댓글

    항상 좋은 정보 주시네요^^
    아래 사이트도 참고하세요~
    http://www.fontgarden.com/
    http://www.wazu.jp/
    http://www.freemacfonts.com/ Mac용..


출처 : http://blueb.net/blog/818
728x90
728x90
John-David Dalton씨는 Prototype.js를 압축하여 용량을 1/3 이하로 줄였습니다. 그의 패키지에는 1.4버전부터 1.5.1_rc2까지(1.5 파이널 포함) 버전별 압축파일이 각각 들어있습니다. 특히, 최근 배포된 1.5.1_rc2의 용량은 94kb로 무시못할 크기가 되어버렸습니다. 1.5.1_rc2의 압축된 버전(ultraCompressed) 용량은 26kb입니다. 압축된 파일을 인클루드하려면 아래와 같이 캐릭터셋을 "iso-8859-1"로 설정해야 합니다.

예제:
<script type="text/javascript" charset="iso-8859-1" src="prototype.js"></script>

패키지 다운로드는 구글 그룹스에서 하세요. 특정 브라우저에서 문제가 있을수 있다고 하는데, 무시하고 1.5.1_rc2의 ultraCompressed버전을 인클루드 해 보았습니다. 보시다시피 오류없이 잘 돌아갑니다.

출처 : http://firejune.com/1061
728x90

'Information' 카테고리의 다른 글

무료로 사용 가능한 오픈 폰트 사이트 모음 TOP 10  (0) 2007.04.10
인터넷 메일 MIME 규격  (0) 2007.04.03
자바스크립트 정리  (0) 2007.04.02
728x90

원문 : http://www.iwiz.pe.kr/bbs/zboard.php?id=java&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=38

 

. MIME

MIME(Multipurpose Internet Message Extension)은 말 그대로 Internet Message를 통해서 여러 가지 내용을 보낼 수 있도록 확장한 규격입니다.

한 글같은 2바이트 Non-ASCII 문자가 여러 메일 서버를 무사히 통과하기 위해서는 7비트 ASCII 문자로 일단 변환되어야 합니다. 물론, 요즘의 대부분의 메일 시스템은 보통 8비트의 Non-ASCII 문자들도 손상시키지 않고 통과시키만 (8bit clean이라 하죠...), 그렇지 않은 경우도 아직 꽤 많습니다. 때문에, 그냥 8비트인 상태로 보내면, 메시지가 올바로 간다고 보장할 수 없게 됩니다. 게다가 단순한 텍스트 뿐만이 아니라, 요즘에는 바이너리 파일도 메일에 첨부하는 경우가 많죠?

그런 것들을 위해서 MIME에서는 Message Body에 있는 내용의 형태, Encoding 방식, 각 부분의 연관 관계 등을 지정할 수 있는 규약을 정하고 있습니다.



2. MIME Header

MIME 형태를 지정하기 위해서 RFC822에서 정의된 Header Field 외에 몇 가지 Header Field가 새로 정의되었습니다. 이 Header들은 message의 Top Level Header 혹은 Message Body Part의 Header에 들어갑니다.

MIME-Version Header Field
Content-Type Header Field
Content-Transfer-Encoding Header Field
Content-Disposition Header Field
Content-ID Header Field
Content-Description Header Field

MIME-Version Header Field는 Message의 주 Header에 있게 됩니다.
Content-Type, Content-Transfer-Encoding Header Field는 Top Level Header에 있을 수도 있고, Body Part의 Header에 있을 수도 있습니다.
Content-Disposition Header Field는 Top Level Header에 쓰일 수도 있지만, 대부분의 경우에는 Body Part의 Header에 있게 됩니다.


1. MIME-Version 헤더 필드

MIME 규약에 따르는 Message는 이 Header를 반드시 가지고 있어야만 합니다. 필수라고 RFC에서는 강조하고 있지만, 이 Header FIeld를 가지고 처리할 수 있는 건 아무 것도 없습니다. 그래서 실제로는 이 Header Field가 빠진 메시지도 상당히 많습니다.

MIME-Version: 1.0

지금 현재 MIME 버전은 현재까지는 무조건 1.0 입니다. 이 헤더를 가지고 있으면, 이후의 모든 내용은 MIME의 규격을 준수한다는 것을 의미하게 됩니다. 물론 실제로 보장되지는 않습니다.
EBNF Form으로 구성하면 아래와 같이 됩니다.

version := "MIME-Version" ":" 1Digit "." 1Digit

아래의 세 가지 예 모두 동일하며, 문제 없는 형식입니다.

MIME-Version: 1.0 (prodeced by MetaSend Vx.x)
MIME-Version: (prodeced by MetaSend Vx.x) 1.0
MIME-Version: 1.(prodeced by MetaSend Vx.x)0



2. Content-Type 헤더 필드

메시지 본문 혹은 본문의 각 부분의 내용의 종류를 지정하는 헤더 필드입니다. 보통 MIME Type이라고 부르는 것들은 바로 이걸 말하죠. 이 헤더 필드의 문법은 아래와 같습니다.

content := "Content-Type" ":" type "/" subtype *(";" parameter)

"Content-Type:" 이라는 헤더 이름 다음에, "타입/서브타입"과 같은 형태로 지정합니다.
그리고 여기에 parameter를 붙이고 싶으면 세미콜론으로 구분하면서 계속 적어나가면 됩니다.

타입은 크게 두 가지로 나뉩니다.
첫번째는 Discrete-Type인데, 이 것은 그 자체로 어떤 의미를 가지고 있는 Content-Type이 됩니다. 예를 들어, Text라든지, Image 같은 것들이 여기에 해당됩니다.
각각의 Type은 여러 가지 Subtype을 가질 수 있습니다. 예를 들어서, Text의 경우에는, 일반 ASCII 텍스트를 나타내는, text/plain, text/html 등의 Subtype을 가집니다.
Discrete-Type에 해당되는 것들은 아래와 같습니다.

"text" / "image" / "audio" / "video" / "application" / extension-token

두 번째는 Composite-Type입니다. 이것은 Discrete-Type 혹은 Composite-Type의 개체 여러 개가 복합되어 만들어진 타입입니다. 이런... 재귀적인 설명이 되어 버렸군요. Composite-Type은 일단은 두 가지 입니다. 그 외에 확장된 타입을 둘 수 있다고 되어 있습니다. 이 중에서 MIME 규약이 점점 커지면서 다양한 서브 타입이 생겨나고 있는 것은 multipart 타입입니다.

"message" / "multipart"

Content-Type 헤더 필드가 없는 메시지도 많습니다. 이런 경우에는 어떻게 처리해야 할까요?
이 헤더가 없는 메시지는 MIME 규약이 생기기 전에 만들어진 메시지로 취급하면 됩니다. 즉, 단순한 ASCII 텍스트로만 이루어진 메시지로 처리하는 거죠...
아래가 Content-Type 헤더 필드가 없는 경우의 기본 Content-Type이 됩니다.

Content-Type: text/plain; charset=us-ascii

각 Content-Type에 대한 좀 더 자세한 내용은 다음에 설명하도록 하겠습니다.



3. Content-Transfer-Encoding 헤더 필드

이 헤더 필드는 메시지의 본문이나 본문의 각 부분이 어떤 방식으로 Encoding되었는지를 나타냅니다. 이 헤더 필드의 문법은 아래와 같습니다.

encoding := "Content-Transfer-Encoding" ":" mechanism

mechanism에는 다섯 가지가 있습니다.

"7bit" / "8bit" / "binary" / "quoted-printable" / "base64"

7bit, 8bit, binary를 먼저 보자면... 이 경우는 Encoding을 하지 않았다는 얘깁니다.

   7bit는 원래 ASCII 문자만 있다는 것을 의미하고,
   8bit는 8비트 문자들도 그래도 들어 있다는 것을 의미하고,
   binary는 8bit와 같은데, 한 줄의 길이의 제한이 없다는 것을 의미합니다. (안 쓰인다고 보면 됩니다).

물론, 한글을 7비트로 Encoding한 경우는 물론 Decoding이 필요합니다.
이 방식은 사라지고 있고, 요즘에는 한글은 base64로 Encoding하는 경우가 절대 다수이니까요.

그 다음에 특정한 알고리즘을 필요로 하는 두 개의 Encoding 방식이 있습니다.
Quoted-Printable하고 base64 Encoding이죠.

   Base64 Encoding은 간단히 말해서 3바이트의 데이타를 4바이트에 저장하는 겁니다. 24비트를 6비트씩 4개로 나누어서 따로 저장하고 각 바이트의 위쪽 두 비트를 0으로 하니까 무조건 ASCII 문자라는게 보장이 되는 거죠.
따라서 8비트 중에서 6비트만 사용하므로, 인코딩 결과로 나온 메시지는 모두 64가지의 Octet만을 가질 수 있게 됩니다. 그래서 Base64라고 부릅니다.
이 64개의 Octet는 ASCII와 같은 코드셋에도 독립적으로 설계되었습니다.
이 Encoding 방식의 장점이라고 하면, 원래의 데이타가 Encoding 후에 크기가 얼마가 될지 거의 정확하게 예측할 수 있다는 거죠. 약 33%정도가 늘어나죠. 또 다른 인코딩 방식에 비해 공간을 덜 차지하기 때문에, 효율적이라고 할 수 있습니다. 반면, Encoding을 하고 나면 원래 내용이 뭔지 도저히 알아볼 수 없다는 단점이 있죠.

   Quoted-Printable 방식은 ASCII 문자가 아닌 놈들만 "=XX" (X : 0...9, A...F)와 같은 모양으로 Encoding 하는 방식을 말합니다. 따라서 7Bit ASCII로 표현할 수 없는 문자는 한 바이트가 3바이트로 늘어나게 됩니다. 따라서, 이 방식은 크기가 최대 3배로 늘어날 수 있으니까 효율성 면에서는 거의 최악이라고 할 수 있습니다.

이 Encoding 방식은 영어 문화권에서 보면 나쁜 Encoding이 아닐 수 있습니다. 영어 문화권에서 만들어지는 텍스트는, 대부분의 문자가 7비트 ASCII 문자로 되어 있고, 그렇지 않은 문자가 훨씬 적습니다. 따라서, 이 방식으로 Encoding을 하면, 대부분의 글자가 Encoding이 되지 않고 일부분만이 Encoding이 됩니다.
그러니까, 일단 오히려 효율적일 수도 있고, 다양한 Decoding을 수행하지 못하는 MUA에서 메일을 보더라도, 대략적으로 내용을 파악할 수 있다는 거죠. 반면 한글 같이 거의가 Non-ASCII 문자인 Message나 바이너리 파일 같은 경우는 이 방식으로 Encoding 해봤자 좋은 점이 없습니다. 괜히 메모리나 디스크, 네트워크만 더 잡아먹을 뿐이지요.

정리하자면 Quoted-Printable Encoding은 Decoding이 안 되더라도 내용을 대략적으로 알아볼 수 있지만, 효율이 안 좋고, base64 Encoding은 효율이 좋지만, Decoding하기 전까지는 내용을 전혀 못 알아볼 수 없다는 겁니다.

그래서, 대부분의 ASCII 문자가 많은 텍스트나 HTML의 경우에는 Quoted-Printable로 Encoding 하는 경우가 많고, 한글이나 바이너리 파일은 거의 무조건 base64로 Encoding합니다.
이것은 그냥 그런 경우가 많이 있다는 것이고, 실제로 각 Body Part의 Encoding의 MUA 맘대로 (혹은 사용자의 선택으로) 하게 되겠죠.


4. Content-Disposition 헤더 필드

이 헤더 필드는 각각의 본문의 부분이 화면에 바로 보여야 하는지, 아니면 첨부된 파일로 보여서, 사용자가 따로 처리해야 하는지를 명시하기 위해서 사용됩니다. 문법은 아래와 같습니다.

disposition := "Content-Disposition" ":" disposition-type *(";" disposition-param)

disposition-type이 붙고 parameter가 붙을 수 있습니다.
disposition-type에는 두 가지가 있을 수 있습니다.

"inline" / "attachment"

inline 은 사용자가 메시지를 보려고 할 때, 무조건 화면에 나타나야 한다는 걸 말하고, attachment는 메시지의 주 본문과는 별도로 처리될 수 있다는 걸 표시합니다. 물론 요즘 Windows용 MUA같은 경우에는 첨부된 그림 파일 같은 건 바로 화면에 보여주죠? attachment는 반드시 따로 처리해야 하는게 아니라, 반드시 화면에 바로 나타낼 필요는 없다는 걸 알려주는 겁니다.

parameter는 아래와 같은 형식으로 만들 수 있습니다. attachment같은 경우에는 "filename" parameter를 지정하는 것이 일반적입니다.

disposition-param := "filename" "=" value
    / "creation-date" "=" quoted-date-time
    / "modification-date" "=" quoted-date-time
    / "read-date" "=" quoted-date-time
    / "size" "=" 1*Digit

이 헤더가 필요한 이유는 Content-Type만을 보고 이 메시지 덩어리가 inline인지, attachment 인지 판단하기 힘든 경우가 많기 때문입니다.
예 를 들어서, 어떤 사람이 텍스트로 메일을 열심히 쓴 다음에 참고할 만한 텍스트 파일을 첨부해서 메일로 보냈다고 합시다. 그러면 이 사람이 작성한 주 본문의 Content-Type은 text/plain이겠죠? 이 사람이 첨부한 파일의 Content-Type도 text/plain이겠죠?
그러면 메일을 받았을 때, 어느 부분이 진짜 주 본문인지 판단하기 힘들죠. 보통은 주 본문을 앞에 두니까, 별 상관없다고 할 수 있지만, 받은 메시지만 보고 판단할 방법은 없다는 겁니다.
어쨌든 보통의 MUA에서는 주 본문에 해당되는 부분에는 이 헤더를 굳이 설정하지 않고, attach에 해당되는 부분에는 이 헤더를 표기해 주는 경우가 많습니다.
MTA와는 전혀 관계없고, 순전히 MUA를 위해서 사용되는 Header Field라고 할 수 있습니다.



5. Content-ID, Content-Description 헤더 필드

이 두 헤더 필드의 문법은 아래와 같습니다.

id = "Content-ID" ":" "<" localpart @ domain ">"
description := "Content-Description" ":" *text

이 중 Content-ID와 같은 경우에는 평소에는 별로 중요하게 쓰이지 않지만, HTML Message 중 Embedded Image가 있는 경우에는 반드시 사용되는 중요한 Field입니다.
1. Content-Type의 종류들...

MIME 의 Content-Type으로 공식적으로 등록된 것들은 얼마나 될까요? 엄청나게 많겠죠? Windows 탐색기의 파일 타입만 보더라도, 매우 많은 타입을 볼 수 있지만, 많은 응용 프로그램들이 생겨나고 있으니, 갈수록 더 늘어나겠죠.

"Text" 타입

인터넷 텍스트 메시지의 기본적인 타입입니다. 여기에 포함되는 서브 타입들을 보면...

text/plain, text/html 등등...

"Text" 타입은 charset이라고 부르는 문자 집합을 지정하는 parameter를 가질 수 있습니다.
기본 값은 앞에서도 말씀드렸듯이 US-ASCII죠.
Content-Type이 지정되지 않은 메시지 본문은 text/plain으로 처리합니다. 모든 메시지 본문의 기본 Content-Type은...

text/plain; charset=US-ASCII

요 렇게 되는 거죠. charset에는 그밖에도 iso-8859-X (X : 1~10) 이라는 것이 있습니다. 한글을 비롯한 여러 국가에서 쓰이는 EUC (Extended Unix Characterset) 라는 것도 있죠. 한글 메세지의 실제로 많이 사용되는 표준 문자 집합은 EUC-KR라고 생각되네요.

"Image" 타입

이 타입은 GIF, JPEG 등의 이미지를 지원하기 위해서 처음 만들어졌습니다. 물론 Image에 해당되는 서브 타입도 아주 많지만, 거의 모든 곳에서 지원되는 타입이라면,
image/jpeg, image/gif

이 두 가지라고 할 수있겠네요.

"Audio" 타입

이 타입은 MUA가 동작하는 환경에서 이를 얼마나 지원하느냐가 문제겠죠? 그리고 Audio에 대해서는 특별한 표준이... 없습니다. MP3, Real Media 등과 같은 Audio 소스가 요즘에는 많지만, MIME에서는 공식적으로 사용하는 기본 규격은 8비트 PCM, 8KHz 규격입니다. -_-;

audio/basic

"Video" 타입

Vidoe 서브 타입도 Audio와 마찬가지로 MUA의 환경이 문제가 됩니다. 이 타입의 기본 서브타입은 MPEG으로 되어 있습니다.

video/mpeg

"Application" 타입

Application 타입은 다른 응용 프로그램이 이걸 처리해야 한다는 걸 의미합니다. 그래서 이 타입의 기본 동작은 사용자의 디스크에 저장하는게 되는 거죠. 여러 MUA에서 바로 이런 타입의 Content를 열 수 있는 기능을 지원하지만, 사실은 임시 공간에 파일을 저장하고 응용 프로그램을 부르는 방식이죠.

넘쳐나는 응용프로그램의 MIME Content-Type을 모두 인식하기란 사실상 힘들다고 볼 수 있습니다. 따라서 알 수 없는 파일의 기본 Content-Type은,

application/octet-stream

로 정의되고, 이 Content-Type에 대한 기본 동작은, "로컬 디스크에 저장"이 됩니다.

RFC에 언급되기로는 application/Postscript과 같은 서브타입이 있고, 보안 관련 이슈가 상당히 많지만, 별로 흥미가 없네요. ^^;

1. 기본 구조

"Multipart" 타입의 기본 구조를 보기 전에, Multipart 타입의 기본 서브 타입에 대해서 이야기를 해야겠네요.

Multipart Content-Type의 기본 Subtype은 "multipart/mixed"라는 서브 타입입니다. 각각의 부분은 연관관계가 없으며, 각 부분의 순서만 미미하게(?) 의미가 있는 거죠. 꼭 하나의 (특히 첫번째) 본문 부분이 inline 메시지고, 나머지는 attachment라는 보장은 없습니다. 또, 각각의 본문 부분도 multipart로 구성될 수 있습니다. 따라서 이론적으로 무한대의 중첩이 가능합니다. 실제로는 최대 세 단계 정도로 mulitpart가 구성되는 것이 일반적입니다. 어째서 세 단계까지인지는 이후에 설명하겠습니다.

맨 앞에서 메시지는 헤더와 본문으로 구성되고 둘의 구분은 NULL 라인으로 한다고 말씀드렸죠?
메 시지 본문은 단순히 라인의 집합의 형태로 평면적인 구성을 하고 있기 때문에, 여러 부분으로 나누기 위해서는 각 부분의 경계를 표시할 수 있는 표식이 필요하고, 이것이 Multipart Content-Type의 기본 Parameter가 됩니다. 이 Parameter를 그걸 boundary라 부릅니다.

기본 구조를 보면 아래와 같습니다.

Content-Type: multipart/mixed; boundary=gc0p4Jq0M2Yt08j34c0p

boundary 로 쓰일 수 있는 문자는 ASCII 문자 중에서 일부에 속합니다. 아래의 예는 올바른 boundary 구성이라고 볼 수 없습니다. 콜론이 들어가 있기 때문입니다. 콜론은 헤더 필드 이름과 필드 본문을 구분하기 위해서 사용되는 문자니까요.

Content-Type: multipart/mixed; boundary=gc0p4Jq0M:2Yt08j34c0p

그렇다고 완전히 틀린 건 아니고, 아래처럼 따옴표로 묶으면 적법한 boundary가 됩니다. 좀 애매한 기준이긴 합니다만, 실제로는 boundary를 Uniqueue하게 만들기 위해서 이런 식으로 쓰이는 경우도 많습니다.

Content-Type: multipart/mixed; "boundary=gc0p4Jq0M:2Yt08j34c0p"

boundary 는 메시지 안에 이런 형태가 나타나지 않도록 신중하게 만들어져야 합니다. 특히, 다음에 설명할 "message" Content-Type과 같이 메시지를 가지고 있는 본문 부분의 경우에 문제가 발생할 소지가 많기 때문이죠.

multipart로 구성된 메시지의 예를 하나 보죠.

From: Nathaniel Borenstein
To: Ned Freed
Date: Sun, 21 Mar 1993 23:56:48 -0800 (PST)
Subject: Sample message
MIME-Version: 1.0
Content-type: multipart/mixed; boundary="simple boundary"

This is the preamble. It is to be ignored, though it
is a handy place for composition agents to include an
explanatory note to non-MIME conformant readers.

--simple boundary

This is implicitly typed plain US-ASCII text.
It does NOT end with a linebreak.
--simple boundary
Content-type: text/plain; charset=us-ascii

This is explicitly typed plain US-ASCII text.
It DOES end with a linebreak.

--simple boundary--

This is the epilogue. It is also to be ignored.

보 면, 인자로 주어진 boundary에 두 가지 변형을 해서 boundary로 사용하고 있습니다. 첫번째는 앞에 "--"를 붙인 것입니다. 이것을 메시지 부분간의 실제 경계로 사용합니다. 그 담엔 앞 뒤에 "--"를 붙인 것이 있지요? 이건 multipart의 끝을 의미합니다.

일단 Content-Type이 multipart로 선언되면 첫번째 경계가 나타나기 전까지의 메시지는 "반드시" 무시해야 합니다. 그리고 경계가 나타나면 다음 경계가 나타나기 전까지의 부분을 하나의 본문 파트로 처리하면 됩니다. 그러다가 multipart의 끝을 나타내는 표식이 나타나면 실제 mulitpart 메시지가 끝난 걸로 처리합니다. 이후에 나타나는 모든 문자는 역시 "반드시" 무시해야 합니다.
뭐 생각보다 간단하다고 생각할 수도 있겠지만, 이 기본적인 구조를 지키지 않는 메일 시스템이 참 많습니다. boundary를 단순히 "mail-boundary"와 같이 표시하는 것들은 좀 문제를 많이 일으키죠. 또한 에필로그에 해당되는 경계를 제대로 넣어주지 않는 경우도 많이 있습니다.



2. "multipart" 타입의 각 서브 타입

이게 각각의 서브 타입들을 살펴보도록 하죠. 앞에서 본 기본 구조를 머리 속에 두고 각각의 서브 타입의 차이점들을 살펴보도록 하죠.

"Mixed" 서브 타입

앞 서 말씀드린 것과 같이 mulitpart 타입의 기본 서브타입입니다. 내용은 앞과 마찬가지고, 중요한 것은, 알 수 없는 multipart의 어떤 서브 타입이 나타나더라도 처리를 못해서는 안 된다는 겁니다. 알 수 없는 multipart 서브 타입는 이 multipart/mixed 서브 타입으로 처리하도록 되어 있습니다.

"Alternative" 서브 타입

이 타입은 형식상으로는 multipart/mixed 타입과 완전히 동일합니다. 다른 점은, 이 타입은 같은 내용에 대한 서로 다른 버전을 담고 있다는 것이죠. 이 메시지를 처리하는 쪽 즉, MUA에서는 자신의 환경에 맞는 가장 좋은 버전 하나만을 선택하면 됩니다.
보통은 가장 훌륭한 버전을 맨 뒤에 놓습니다. 어떤 생각해 보면, 가장 좋은 버전이 맨 앞에 있어야 하는 것 같기도 하지만, 이런 타입을 제대로 처리하지 못하는 MUA 환경을 생각할 때, 가장 단순하고 일반적인 타입이 맨 앞에 있어야 그나마 처리가 쉬워집니다.

예를 하나 보죠.

From: Nathaniel Borenstein
To: Ned Freed
Date: Mon, 22 Mar 1993 09:41:09 -0800 (PST)
Subject: Formatted text mail
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary=boundary42

--boundary42
Content-Type: text/plain; charset=us-ascii

... plain text version of message goes here ...

--boundary42
Content-Type: text/enriched

... RFC 1896 text/enriched version of same message goes here ...

--boundary42
Content-Type: application/x-whatever

... fanciest version of same message goes here ...

--boundary42--

각 각의 내용은 모두 같지만, 서로 다른 포맷을 가지는 내용을 이렇게 구분할 수 있겠죠. 이 타입을 사용하는 중요한 예는 바로 HTML 문서를 메일로 보내는 경우가 됩니다. MUA마다 HTML를 처리할 수 있는지 없는지가 달라지기 때문에, 앞부분에는 그냥 일반적인 텍스트 즉, text/plain을 넣고 그 뒤에 text/html을 넣는 겁니다.

"Digest" 서브 타입

이 서브 타입의 기본 문법은 "multipart/mixed"와 동일합니다. 다른 점은 multipart/mixed 타입에서, 각 부분의 기본 Content-Type이 text/plain인 것과는 달리 이 타입의 기본 Content-Type은 "message/rfc822"라는 겁니다.

message/rfc822라는 타입은 헤더를 포함한 메시지 자체를 나타냅니다.
즉, 메일 메시지를 캡슐화하고 있는 거라고 보면 됩니다. 보통 되돌아온 메일에 attach로 달려 있는 원래 메시지가 이 타입을 가지고 있습니다.

실제로 아직 Multipart-Digest 타입으로 된 메시지는 보지 못했습니다. 이 형태를 Multipart-Mixed 타입으로 처리해도 큰 문제는 없습니다.

예를 한 번 보죠.

From: Moderator-Address
To: Recipient-List
Date: Mon, 22 Mar 1994 13:34:51 +0000
Subject: Internet Digest, volume 42
MIME-Version: 1.0
Content-Type: multipart/digest; boundary="---- main boundary ----"

------ main boundary ----

...Introductory text or table of contents...

------ main boundary ----
Content-Type: multipart/digest;
boundary="---- next message ----"

------ next message ----

From: someone-else
Date: Fri, 26 Mar 1993 11:13:32 +0200
Subject: my opinion

...body goes here ...

------ next message ----

From: someone-else-again
Date: Fri, 26 Mar 1993 10:07:13 -0500
Subject: my different opinion

... another body goes here ...

------ next message ------

------ main boundary ------


"Parallel" 서브 타입

"multipart/mixed" 와 다른 점이라고 하자면, 이 타입에서는 각각의 본문 파트가, 하드웨어에 의하든 소프트웨어에 의하든 간에 병렬적으로 디스플레이가 가능해야 한다는 거죠. 예를 들어 프리젠테이션과 같이 텍스트와 이미지와 오디오가 동시에 나타나야 하는 경우를 들 수 있겠네요. 하지만, 상당히 플랫폼의 제약을 많이 받기 때문에, 실제로 사용되는 일은 거의 없다고 보면 되겠습니다.

"Report" 서브 타입

이 타입은 현재로는 메시지의 상태를 알리기 위한 것으로 사용되고 있습니다. 즉 되돌아오는 메일 등을 이 형태로 처리하게 됩니다. 좀 더 자세한 내용은 Notification Message에서 다루도록 하겠습니다.

이 타입은 어떤 본문 파트의 일부분으로는 사용될 수 없으며, "반드시" Top Level의 Content- Type으로만 쓰이도록 되어 있습니다. 그리고 이 메시지의 전체는 반드시 7비트 ASCII 문자로만 이루어져 있어야 합니다. (실제로는 8bit로 된 경우도 존재합니다.)

이 타입의 서브 파트는 크게 두 개 혹은 세 개이고, 이 순서로 나타나야 합니다. 세번째 Part는 없을 수도 있습니다.

첫번째 부분은 사람이 알아볼 수 있는 상태 설명 부분입니다. 보통 Content-Type이 지정되어 있지 않기 때문에, Content-Type을 text/plain으로 설정해서 보게 됩니다.

두번째 부분은 기계가 파싱해서 사용할 수 있는 상태 설명입니다. Content-Type은 "message/delivery-status"와 같은 형태로 나타납니다. 이 부분도 반드시 나타나야 합니다.

세 번째 부분은 선택 사항으로 원래 메시지 전체 혹은 일부분을 가지고 있습니다. 보통은 헤더에 문제가 있어서 메시지가 되돌아 오는 경우가 많기 때문에, RFC에서는 메시지 헤더만을 가지는 "text/rfc822" (실제로는 message/rfc822-headers가 더 많습니다) 타입을 권장하고 있습니다. 하지만, 요즘 같이 네트워크 용량이 풍부한 세상에서는 앞서 말씀드린 "message/rfc822" 타입으로 메시지 전체가 포함되는 것이 일반적입니다.


"Related" 서브 타입

이 타입이 multipart 타입 중에서 가장 어려운 타입이라고 볼 수 있겠네요. 이 타입은 각 본문 파트가 연관을 가지고 있다는 것을 말합니다. 그런데, 각 부분을 연결하는 방식이 응용 프로그램마다 천차만별일 수밖에 없기 때문에, 이 타입은 뭐라고 설명하기가 어렵네요.

하지만, 역시 이 타입이 중요한 이유는 HTML 문서를 메시지로 전달하기 위한 것입니다. HTML 문서에는 단순히 텍스트 뿐만이 아니라, 이미지 등의 많은 객체가 포함되어야 하는데, 거기에 바로 각 Content들을 Content-ID로 연결해서 사용하는 겁니다. 자세한 내용은 HTML 메시지에서 알아보도록 하죠.
1. "Message" 타입의 각 서브 타입

"RFC822" Subtype

앞서서 말씀드렸듯이 가장 간단하게 메일 메시지를 포함하고 있는 타입을 뜻합니다.
되돌아온 메시지에 가장 많이 포함된다고 말씀드렸죠?
"Partial" 서브 타입

메 일 시스템 용량이 아무리 빠방하다 하더라도, 어떤 큰 메시지라도 끄떡없이 보낼 수 있는 건 아닙니다. 한 번에 통과할 수 있는 메시지의 크기가 여러 가지 이유로 제한이 생기기 마련이죠. 그래서, 뭔가 큰 메시지를 보내기 위해서는 여러 개의 메시지로 잘라서 보내고 받는 쪽에서 합쳐서 봐어 합니다. 그것을 위한 타입입니다.

그래서, 각각의 메시지에 몇 번째 조각이며, 전체는 몇 조각으로 되어 있는지를 표시합니다. 물론 같은 메시지의 조각임을 나타내기 위해서 id라는 parameter를 사용합니다. 아래의 예를 보죠.

3조각 메시지의 두번째 조각
Content-Type: Message/Partial; number=2; total=3;
    id="oc=jpbe0M2Yt4s@thumper.bellcore.com"
혹은,
Content-Type: Message/Partial;
    id="oc=jpbe0M2Yt4s@thumper.bellcore.com";
    number=2

3조각 메시지의 세번째 조각 - 반드시 전체 조각수를 가지고 있어서, 자신이 마지막 조각임을 알려야 합니다.
Content-Type: Message/Partial; number=3; total=3;
    id="oc=jpbe0M2Yt4s@thumper.bellcore.com"

그렇다고 메시지를 조각낼 때, 아무렇게나 조각낼 수 있는 건 아니고, 몇 가지 원칙이 있습니다.

   일단 메시지는 "반드시" 라인이 끝나는 지점에서만 잘려야 합니다.
   각 메시지 마다 Content-*, Subject, Message-ID, Encrypted, MIME-Version를 제외한 모든 헤더 필드가 덧붙여져야 합니다.
   메시지가 합쳐질 때는, 헤더 중 Content-*, Subject, Message-ID, Encrypted, MIME-Version만이 살아남고, 나머지는 무시됩니다.
   두번째 조각 이후의 헤더 필드는 깡그리 무시됩니다.

어쨌든 쉽지 않은 모양이네요...


"External-Body" 서브 타입

이 타입은 실제 내용이 메시지 내부에 있는게 아니라 외부에 있다고 알리는 건데요. 그 외부 소스의 형태가 메일, FTP, HTTP, 로칼 디스크 등 워낙 다양하기 때문에, 사용하기도 어렵고, 설명하긴 더 힘드네요. ^^;
1. 헤더 필드의 확장

일단, 문법을 좀 보죠.

encoded-word := "=?" charset "?" encoding "?" encoded-text "?="

좀 복잡하죠? 간단히 쓰자면
=? (문자집합) ? (Encoding 방식) ? (인코딩된 문자열) ?=

이 렇게 되는 거죠. 여기서 문자집합은 앞서서 말씀드린 US-ASCII, ISO-8859-1, EUC-KR 등이 되는 겁니다. Encoding 방식은 그 문자들을 어떻게 Encoding했는가를 나타내구요. 각각의 지정된 내용을 ?로 구분하고 양쪽에 =?, ?=로 덮어 싸는 거죠. 물론, 여기서 문자 집합이나 Encoding에 대한 지정 방식은 대소문자를 구분하지 않습니다.



2. Encoding

여기에 사용되는 Encoding 방식은 두 가지가 있습니다.

"B" Encoding
이 방식은 말 그대로 base64 Encoding을 이용하는 겁니다. (RFC2045)

"Q" Encoding
이 방식은 Quoted-Printable과 유사한 Encoding입니다. 물론, 기본적으로는 Quoted-Printable과 같지만 몇 가지가 다르죠. 차이점을 보자면...

   "="은 "=3D"으로 SPACE는 "=20"으로 처리합니다. (16진수의 A~F는 대문자여야 합니다)
   16진수로 20은 반드시 "_"로 대치합니다. EBCDIC 코드에서는 20이 스페이스가 아니지만, 역시 무조건 "_"로 대치해야 합니다.



3. 실제 Encoding 예

아래의 예들을 보면서 실제로 사용시에 주의해야 될 점들을 살펴보죠.

Encoding된 형태 나타날 형태
(=?ISO-8849-1?Q?a?=)
     -> 당연하죠?
(a)
(=?ISO-8849-1?Q?a?= b)
     -> 역시...
(a b)
(=?ISO-8849-1?Q?a?= =?ISO-8849-1?Q?b?=)
     -> Encoding된 부분 사이의 LWSP는 없는 걸로 처리합니다.
(ab)
(=?ISO-8849-1?Q?a?=    =?ISO-8849-1?Q?a?=)
     -> LWSP가 몇 개이든 상관없습니다.
(ab)
(=?ISO-8849-1?Q?a?=
   =?ISO-8849-1?Q?a?=)
     -> CRLF도 마찬가지로 LWSP의 일부분으로 처리합니다.
(ab)
(=?ISO-8849-1?Q?a_b?=)
     -> "_"는 16진수로 20이고 ASCII 코드에서는 SPACE죠.
(a b)
(=?ISO-8849-1?Q?a?= =?ISO-8849-1?Q?_b?=)
     -> 역시 앞서 설명과 같습니다. 재확인...
(a b)
728x90

'Information' 카테고리의 다른 글

1/3로 크기로 압축된 Prototype.js  (0) 2007.04.05
자바스크립트 정리  (0) 2007.04.02
세컨드라이프 사용 용어  (0) 2007.03.31
728x90
window-------------frame    ---form-----------texarea      navigator-----plugin
           --------document-----------layer       ---test                  -----mimetype
           --------location        ---link        ---fileupload
           --------history         ---image       ---password
                                   ---area        ---hidden
                                   ---anchor      ---submit
                                   ---applet      ---reset
                                   ---plugin      ---radio
                                                  ---checkbox
                                                  ---button
                                                  ---select--------------option

#########################
개체(Object) : 개체라는 말은 상당히 추상적이다. 이 개념을 알려면 "객체지향"을 공부해야 한다. 이 과에서 의미한 개체는 HTML 문서, 브라우저 윈도우, 날짜/시간과 같은 것을 의미하며 일반적으로 개체는 그 개체가 할 수 있는 일을 정의한 메소드와 그 개체의 특징을 나타내는 속성으로 구성된다.
###  date : Date는 시스템의 날짜와 시간을 얻기 위한 개체이다. 이 개체를 생성하는 방법은 다음과 같다 :

Nameofobject = new Date();
###  document : 이것은 해당 자바스크립트를 포함하고 있는 HTML 문서를 참조할 수 있는 개체를 의미한다.
###  location : Location은 특정 URL을 지징하는 개체이다. 다음과 같은 형식으로 사용된다:

parent.location='index.html'
(location이란 속성도 있는데 사용법이 서로 틀리다는 것을 기억하기 바란다.)
###  window : window는 브라우저 화면을 참조할 수 있는 개체이다.

#########################
메소드(Method) : 메소드는 어떤 개체로 하여금 어떻게 행동할지를 알려주는 하나의 명령을 의미한다.
alert() : alert는 window 개체 또는 하이퍼텍스트 링크내에서 대화 상자를 만들기 위해 사용되는 메소드이다. alert문의 괄호 안에 있는 텍스트를 대화 상자에 보여주고 OK 버튼이 함께 제공되며 사용자가 계속 진행하기 위해서는 이 버튼을 눌러야만 한다.
getMonth() : Date 개체의 메소드로 현재 월을 0~11 사이의 숫자로 반환한다.
getDate() : Date 개체의 메소드로 현재 날짜를 1~31 사이의 숫자로 반환한다.
getYear() : Date 개체의 메소드로 현재 연도를 0~99 사이의 숫자로 반환한다. (인터넷 익스플로러 5 이상에서는 4자리 숫자를 반환한다)
getFullYear() : Date 개체의 메소드로 현재 연도를 네자리 숫자로 반환한다. (넷스케이프 4.0 이상, 인터넷 익스플로러 3.x 이상에서 사용할 수 있다)
getDay() : Date 개체의 메소드로 현재 요일을 1~7 사이의 숫자로 반환한다.
getHours() : Date 개체의 메소드로 현재 시간을 0~23 사이의 숫자로 반환한다.
getMinutes() : Date 개체의 메소드로 현재 분을 0~59 사이의 숫자로 반환한다.
getSeconds() : Date 개체의 메소드로 현재 시간을 0~59 사이의 숫자로 반환한다.

Write() : Write 메소드는 Document 개체가 웹 페이지 상에 텍스트를 표시할 수 있도록 해주는 메소드이다.


#########################
속성(Properties) : 속성은 개체의 한 특징 또는 그 개체의 일부를 의미한다. 예를 들어 브라우저 윈도우의 상태 표시줄은 window 개체의 속성이며 windows.status로 참조된다. (표시형식 : 개체이름.속성이름)

bgColor : bgColor는 document 개체의 속성으로 HTML 문서의 배경색을 의미한다.
parent : parent는 특별히 프레임과 함께 자주 사용되는 속성으로 특정 프레임을 가리킬 때 사용된다. 만일 프레임 밖에서 사용된다면 브라우저 전체 윈도우를 가리키게 된다.
status : status는 window 개체의 속성으로 브라우저 화면의 왼쪽 하단에 위치한 상태 표시줄을 의미한다.


#########################
에러(Error) : 에러 또는 오류 메시지 창은 스크립트 안에 뭔가 문제가 있을 경우 발생한다. 크게 두 가지 종류가 있는데 구문(Syntax) 오류와 런타임(RunTIme) 오류이다.
구문 오류(Syntax Error) : 스크립트 안에 잘못된 철자가 있거나 컴퓨터가 인식하기 어려운 텍스트가 있을 경우, 자바스크립트 문법에 어긋난 경우 발생한다.
런타임 오류(Run-Time Error) : 런타임 오류는 잘못된 자바스크립트 명령어를 사용했을 때 발생한다.


#########################
이벤트 핸들러(Event Handlers) : 이벤트 핸들러는 HTML 코드에 내장되는 자바스크립트 명령어다. 사용자와 웹 페이지 사이의 상호 작용을 위해 HTML 코드와 함께 사용된다.
onBlur : onBlur는 사용자가 select, text, textarea 폼 요소에 있다가 그 요소에서 벗어나게 될 때 발생하는 이벤트 핸들러이다. 즉, 사용자가 그 아이템에 대한 포커스를 잃을 때 발생한다.
onChange : onChange는 사용자가 select, text, textarea 폼 요소에 있는 텍스트를 변경한 후 그 요소를 떠날 때 발생하게 된다.
onClick : onClick은 사용자가 링크와 같은 오브젝트를 클릭할 때 발생한다.
onFocus : onFocus는 사용자가 select, text, textarea 폼 요소를 선택할 때 발생한다. 즉 사용자가 그 폼 요소에 포커스를 맞출 때 발생한다.
onLoad : onLoad는 웹 페이지가 열릴 때 발생하는 이벤트로 HTML의 BODY 태그 안에서 사용된다.
onMouseOver : onMouseOver는 사용자가 링크 위에 마우스를 올려 놓았을 때 발생하는 이벤트 핸들러이다.
onSelect : onSelect는 사용자가 text, textarea 폼 요소에 있는 텍스트의 일부 또는 전체를 선택할 때 발생한다.
onSubmit : onSubmit은 submit 버튼 폼 요소를 사용자가 틀릭할 때 발생한다.
onUnLoad : onUnload는 사용자가 웹 페이지를 떠날 때 발생하는 이벤트로 HTML의 BODY 태그 안에서 사용된다.

#########################
주석(Comment) : 주석은 더블 슬래쉬(//)로 표시한다. 주석 처리하고 싶은 텍스트의 왼쪽 옆에 "//" 표시를 해주면 된다. "//"는 // 표시의 오른 쪽에 있는 라인 전체를 주석 처리하는 것이다. 만일 주석 처리하고 싶은 줄이 여러 줄이라면 // 대신 시작을 "/*"로 끝을 "*/"로 막아 주면 된다. 즉, /*와 */ 사이에 있는 모든 내용이 주석 처리 된다는 것이다.

#########################
컴마(comma : ",") : 자바스크립트 이벤트 핸들러를 동시에 여러 개 사용하고자 할 때 컴마(,)를 사용한다.



###################################################################################
window.alert('내용');//경고창
prompt('내용',초기값);//입력값 받기
confirm('내용');//확인,취소
print();//현 윈도우를 인쇄하고자 할 때


parseInt(변수); 소수점자리 그냥 버림
parseFloat(변수);
Math.ceil(변수); 소수점자리없앤정수(소수점자리 값 올림)
Math.floor(변수); 소수점자리없앤정수(소수점자리 값 내림)
Math.round(변수); 소수점자리없앤정수(소수점자리 값 반올림)


var test;
var myArray = new Array();
var myArray = new Array(5);
var myArray = new Array('1','2','5','4','3');
myArray[0] = '1';
myArray[0][0] = '1';


if(비교값1){처리내용1}elseif(비교값2){처리내용2}else{비교값3};
논리연산자 && (AND), || (OR), ! (NOT)
연산기호 ==,<,>,<=,>=,!=
switch (비교내용) {
 case '1':
  처리내용1; break;
 case '2':
  처리내용2; break;
 default:
  처리내용3; break;
}



function 함수명(초기값){ 처리내용; 리턴값; }
return 반환값;


for(i=0;i<5;i++){처리내용}
while(i<5){처리내용};


isNaN(변수); -> 숫자 false 문자 true


length -> 문자열의 길이
myArray.length; -> 변수길이
myArray.sort();
var myString = new String("나는 String 개체입니다");
var lengthOfString = myString.length;
charAt(위치값) -> 문자열에서 한문자 선택
charCodeAt(위치값) -> 문자열에 한문자 코드값
myString = String.fromCharCode(65,66,67); -> 문자 코드를 문자열로 변환 (ABC)
indexOf('앞부분 부터 찾을문자');
lastIndexOf('뒷부분 부터 찾을 문자') -> 문자열의 위치를 반환, 없을 경우 -1반환
substr(시작위치,복사할문자수); -> 문자열의 일부분 복사하기
substring(시작위치,끝위치);
myDate.toString(); -> 숫자를 문자열로 반환
myString.toLowerCase(); -> 문자열의 소문자 변환
myString.toUpperCase(); -> 문자열의 대문자 변환


Math.PI 파이값
Math.floor((Math.random() *  6) + 1); -> 1~6사이에 난수를 발생한다.
Math.pow(제곱근, 변수) -> 제곱 Math.pow(4,2) = 16
Math.abs(변수); -> 절대값


concat() -> var TestArray = TestA.concat(TestB); TesTA와 TestB에 배열을 결합
slice() -> var slicedArray = TestA.slice(1,3); TestA에 인덱스1에서 부터 인덱스 3까지를 가져온다.
join() -> var TestString = TestA.join("<br>"); TestA를 문자열로 변환 1<br>2<br>5<br>4<br>3...
sort() -> TestA.sort(); 배열을 순서대로 정렬
reverse() -> TestA.reverse(); 배열을 역순으로 정렬



var myDate = new Date();
var myDate = new Date(949278000000);
var myDate = new Date("1 jan 2003");
var myDate = new Date(2000,0,31,15,35,20,20); 2000년 1월 31일 35분 20초 20밀리
getDate() -> myDate.getDate(); 날짜를 반환
getDay() -> myDate.getDay(); 요일을 정수로 반환
getMonth() -> myDate.getMonth(); 월을 정수로 반환
getFullYear() -> myDate.getFullYear; 년을 네 자리 수로 반환
setDate() -> myDate.setDate(27); 날짜를 설정
setMonth() -> myDate.Month(1); 월을 설정
setFullYear() -> myDate.setFullYear(2003); 년을 설정
myDate.getHours(); 시간
myDate.getMinutes(); 분
myDate.getSeconds(); 초
myDate.getMilliseconds; 밀리



window.location;
window.location.replace(URL);
window.location.href(URL);
window.location.reload();

window.history; window.history.go(-1); window.history.go(1); window.history.go(3);

window.navigator

window.screen;
window.screen.height;//화면 높이
window.screen.width; //화면 너비
window.screen.colorDepth;//사용가능한 색상수
window.screen.pixelDepth;//한 픽셀당 비트수


window.document;
window.document.bgColor = "skyblue";
window.document.write('내용');
window.document.forms[인덱스]
window.document.form1.length;
window.document.images[이름명]
window.document.images[이름명].src = "값.gif"
window.document.images[이름명].value = "처리이름"
window.document.links[인덱스]
window.document.links[인덱스].onclick = "이름명";

window.defaultStatus = '하이' -> 상태 표시줄 메시지-항상 보여주기 위한 상태표시줄 메시지

window.status = '하이' -> 상태 표시줄 메시지


onLoad="처리내용";//웹페이지 열때//body,frameset(여러개의 프레임의 경우)
onunload="처리내용";//웹페이지 닫을때//body,frameset
onresize="처리내용";//윈도우나 프레임의 크기를 바꾸었을 때

onclick="처리내용";//클릭했을 때
onmouseup="처리내용";//마우스 버튼을 눌렀다 놓았을 때
onmousedown="처리내용";//마우스 버튼을 눌렀을 때
onmouseover="처리내용";//링크 위로 마우스가 지나갔을 때
onmouseout="처리내용";//마우스가 링크나 특정 영역 안에 있다가 나갔을 때
onmousemove="처리내용";//마우스를 움직였을 때
onmouseup="처리내용";//마우스 버튼을 눌렀다 놓았을 때

onfocus="처리내용";//포커스를 맞출 때 발생한다.
onblur="처리내용";//포커스를 잃을 때
onreset="처리내용";//입력 양식에서 취소reset시켰을 때
onsubmit="처리내용";//submit버튼을 누를 때
onselect="처리내용";//텍스트를 블럭 지정할때
onchange="처리내용";//내용이 바뀔때

onkeydown="처리내용";//키를 입력했을 때
onkeypress="처리내용";//키를 눌렀을 때
onkeyup="처리내용";//키를 눌렀다 놓았을 때


window 객체의 메소드
blur();//특정 객체의 포커스 없애기
click();//입력 양식이나 링크를 마우스로 클릭했을 때
focus(); -> txtAge.focus();//특정 개체에 포커스가 가도록 만들기
select(); -> txtAge.select();//입력 양식의 한 필드 블록 지정했을 때

onabort -> 이미지의 로딩을 취소할 때 발생한다.
onerror -> 페이지를 로딩하면서 오류가 생길 때 발생한다.
//이미지나 문서가 전송되는 도중에 네트웍이 끊어지거나 시스템이 다운되는 등의 여러가지 이유로 에러가 생겼을 때


**********************************************************************************************
**********************************************************************************************
Button 개체
이벤트 - onblur, onclick, onfocus, onmousedown, onmouseup
프로퍼티 - form, name, type, value
메서드 - blur(), click(), focus()

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
CheckBox 개체
이벤트 - onblur, onclick, onfocus
프로퍼티 - checked, defaultChecked, form, name, type, value

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
document 개체//body,head,title태그 안
이벤트 - onclick, ondblclick, onkeydown, onkeypress, onkeyup, onmousedown, onmouseup
프로퍼티
- alinkColor(링크를 클릭했을 때 나타나는 색), vlinkColor(이전에 방문했던 링크를 표시하는 색),linkColor(문서에서 링크를 표시하는 색), links(문서에 있는 링크들의 배열)
-anchors (문서에 있는 표식들의 배열), applets(문서에 있는 자바애플릿의 배열),embeds(문서에 있는 플러그인들의 배열), form_name, forms(문서에 있는 입력양식들의 배열), images(문서에 있는 이미지들의 배열) ->.length로 배열 [0]...
-bgColor, fgColor(문서의 전경색),cookie(클라이언트의 pc에 저장된 정보), domain(현재 문서의 도메인 이름), lastModified(문서가 마지막으로 수정된 날짜), referrer(링크로 현재 문서에 왔을 때 이전 문서의 url위치), title(문서의 제목), URL(문서의 URL주소)
메서드 - close()(문서에 데이타를 출력하는 것을 마무리), open()(문서에 데이타를 출력하기 위해 준비시키는 것), write()(문서에 데이타 출력), writeln()(문서에 데이터 출력(줄바꾸기 포함))

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
history 개체
프로퍼티 - length
메서드 - back(), forward(), go()

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
img 개체
이벤트 - onabort, onerror, onload
프로퍼티 - border, complete, height , hspace, lowsrc, name, src, vspace, width
**********************************************************************************************
**********************************************************************************************
window.document.form1.textarea1.value;
window.document.form1.radio1[인덱스].checked = true;
window.document.form1.radio1[인덱스].checked = false;
window.document.form1[인덱스].type == "checkbox"; -> form1에 checkbox형인 체크박스

var myNewOption = new Option("TheText","TheValue","TheTest");
document.form1.selectObject.option[0] = myNewOption; -> 항목설정
document.form1.selectObject.option[0] = null; -> 항목제거
document.form1.selectObject.options[2].text == 수요일;
document.form1.selectObject.options[2] == null;
form1.secondDay.options[form1.secondDay.selectedIndex].value
form1.firstDay.options[nowDate.getDate() - 1].selected = true;

secondDate.valueOf(); -> 1970년 1월 1일부터 date개체에 저장한 시각까지의 시간을 밀리초 단위로 반환

window.name -> 프레임의 윈도우 객체 이름
window.parent; -> 프레임의 부모의 윈도우가 가지고 있는 window개체에 접근//프레임에서 현재프레임의 상위 프레임
window.parent.location.href -> 현재윈도우의 부모의 주소
var formobject = window.parent.parent.fraMenu.document.form1;
formobject.choosePage.selectedIndex = linkIndex;

window.top; -> 최상위 프레임에 접근(현재 프레임의)
window.parent.parent.fraMenu.document.form1.choosePage.selectedIndex = linkIndex;
window.top.fraMenu.document.form1.choosePage.selectedIndex = linkIndex;
window.top.location.relace("myPagename.htm"); -> 최상위 페이지 수정
return window.top.addPage(window.location.href);

window.self; -> 현재 window 개체의 참조를 반환

window.open("파일명","target","width=크기,height=크기,left=위치,top=위치, directories=yn,copyHistory=yn,location=yn,resizable=yn,scrollbars=yn,status=yn,toolbar=yn"); -> 새창열기
width=크기 -> 새윈도우의 폭
height=크기 -> 새윈도우의 높이
left=위치 -> 윈도우의 위치를 왼쪽 끝을 기준
top=위치 -> 윈도우의 위치를 위쪽 끝을 기준
directories=yn -> 디렉토리 버튼을 보여준다. (연결)익스플로러 연결도구모음, 익스플로러 전용yew||no
copyHistory=yn -> 윈도우의 히스토리를 복사
location=yn -> 주소 입력창
resizable=yn -> 사용자가 윈도우의 크기를 조정 유무
scrollbars=yn -> 스크롤바 사용 유무
status=yn -> 상태 표시줄
toolbar=yn -> 툴바

window.close; -> 창닫기

window.opener; -> 기존 윈도우의 window 개체의 참조를 반환한다.//open()메소드로 윈도우를 열였을 때 호출한 윈도우
window.opener.document.bgcolor = "RED";
window.opener.document.form1.text1.value;

newWindow.resizeTo(350,200);
newWindow.moveTo(100,400);

newWindow.resizeBy(100,200);
newWindow.moveBy(20,50);

var myString = "A,B,C";
var myTextArray = myString.split(','); -> myTextArray[0]="A",myTextArray[1]="B",myTextArray[2]="C"

var myString = "본 행사는 5월 21일에 개최합니다";
var myCleanedUpString = myString.replace("5월","6월"); -> 본 행사는 6월 21일에 개최합니다

var myString = "1234567890";
alert (myString.search("7")); -> 6을 출력;

var myString = "1997, 1998, 1999, 2000, 2001, 2002";
myMatchArray = myString.match("2000");
alert(mymatchArray.length); -> myMatchArray = ('2000','2000','2001','2002')

RegExp() -> 정규식 생성자
var myRegExp =new RegExp("\\b'|'\\b");
/검색내용/gi -> g 전체를 검색, i 대소문자 구분하지 않음
\d -> 0부터 9사이의 숫자
\D -> 숫자가 아닌 모든 문자
\w -> A-Z,a-z,0-9,언더스코어 문자_와 같은 모든 단어문자
\W -> 단어 문자가 아닌 모든 문자
\s -> 탭,개행문자,캐리지 리턴, 폼 피드,수직 탭등 모든 공백 문자
\S -> 공백 문자가 아닌 모든 문자
.  -> 모든 단일 문자
[...] -> 중괄호 안에 있는 모든 문자중의 하나
[^...] -> 중괄호 안의 문자를 제외한 모든 문자
1-880-888-5474와 일치하는 정규식 -> /\d-\d\d\d-\d\d\d-\d\d\d\d/

{n} -> n개의 앞 요소와 일치한다.
{n,} -> n개 이상의 앞 요소와 일치한다.
{n,m} -> n개 이상 m개 이하의 앞 요소와 일치한다.
? -> 0개나 1개의 앞 요소와 일치한다.
+ -> 1개 이상의 앞 요소와 일치한다.
* -> 0개 이상의 앞 요소와 일치한다.
1-880-888-5474와 일치하는 정규식 -> /\d-\d{3}-\d{3}-\d{4}/

처음 /와 마지막 /는 이 사이에 있는 문자가 정규식임을 자바스크립트에게 알려준다.

/Paula?/ -> a가 있을수도 있고 없을 수도 있다.

^ -> 맨처음
$ -> 마지막
\b -> 단어 경계에 일치
\B -> 단어 경계가 아닌 위치에 일치

var myRegExp = /(\d{4}/g;
myString = myString.replace(myRegExp,"the year $1") -> the year 1999, the year 2000,...

한번실행후 끝
window.setTimeout("처리내용",시간); -> myTimerID = window.setTimeout("alert('시간 끝')",3000); 3초후 실행,고유한 식별아이디 반환
clearTimeout(myTimerID);

일정 시간 간격을 두고 연속적으로 실행
myTimerID = setInterval("myFunction()",5000);
clearInterval(myTimerID);

document.body.scrollWidth / 10; -> 윈도우의 내부 폭을 픽셀 단위로 알아내기

document.cookie = "UserName=홍길동;expires=Tue, 28 Dec 2010 00:00:00;";
var expireDate =new Date();
expdate.setTime(expireDate.getTime() + 1000 * 3600 * 24 * 30); // 30일
expireDate.setMonth(expireDate.getMonth()+6); -> 만기일 설정
document.cookie = "UserName=홍홍홍;expires=" + expireDate.toGMTString() + ";";
document.cookie = "UserName=홍홍홍;expires=" + expireDate.toGMTString() + ";path=/mystore;"; <- /mystore 디렉토리에서도 접근 가능

escape(변수);
unescape(변수);

setCookie("Name","Bob","","");
setCookie("Age","101","","");
alert(document.cookie);

var expireDate =new Date();
expireDate.setMonth(expireDate.getMonth()+12); -> 만기일 설정
setCookie("Name","Bob","/mystore",expireDate.toGMTString());


--동적 HTML--
<div id="div1">내용</div>
<p id="mypara">단락</p>
document.all["mypara"];
mypara.innerText="hi~~~~~~~~~~";
mypara.style.color='red';

mypara.style.left = 값+"px";
mypara.innerHTML; -> 인라인수준
div1.outerHTML; -> 블록수준

beforeBegin -> 시작 태그 바로 앞
afterBegin  -> 태그 바로 다음
beforeEnd   -> 종료 태그 바로 앞
afterEnd    -> 종료 태그 바로 다음
div1.insertAdjacentHTML("beforeBegin","<BR>");

이벤트
event.screenX
event.screenY
event.button -> 0 안누름 1 왼쪽누름 2 오른쪽누름 3 왼쪽오른쪽누름 4 가운데 누름 5왼쪽가운데누름 6오른쪽가운데누름 7 버튼3개다누름

fromElement, srcElement, toElement

var xPos = parseInt( srcElement.offsetLeft );
var yPos = parseInt( srcElement.offsetTop );
srcElement.width;
srcElement.tagName;
srcElement.RollOver; -> <TD ID="WoodOak" RollOver Rollout CLASS="TDMenu"....>
srcElement.backgroundColor = "blue";
menuToHide.contains(event.toElement)

<LAYER> -> 페이지 내 레이어에 포함되지 않은 컨텐츠 '앞'에 보이지 않는 사각형의 화면 공간을 만든다.
<ILAYER> -> 상대 위치로 지정하며 위치를 바꿀 수 있는 인라인 레이어를 생성한다.

<LAYER ID="myLayer1" LEFT="100" TOP="250">
 <H3>Layer에 있는 컨텐츠</H3>
 <P>Layer에 있는 단락</P>
</LAYER>

<ILAYER ID="myLayer1" LEFT="100" TOP="250">
 <H3>ILayer에 있는 컨텐츠</H3>
 <P>ILayer에 있는 단락</P>
</ILAYER>

자바스크립트에서의 참조법은 document 개체를 통해서 레이어의 ID를 쓰면된다.
document.myLayer1.left = 200;
document.myLayer1.top = 200;
document.myILayer1.bgColor = "red";
myLayer1.MoveTo(200,150); -> 인자에서 지정한 화면의 한 지점으로 태그를 이동
myLayer1.Moveby(200,150); -> 넘겨받은 인자만큼 태그를 이동

<LAYER ID="myLayer1" LEFT="100" TOP="250" Z-INDEX="1"> -> 레이어의 순서는 각자의 Z-INDEX 속성에서 결정한다. 기본값 0
myLayer1.zIndex=1;//레이어의 순서 지정
myLayer1.moveAbove(myLayer2);  //레이어를 위로 이동
myLayer2.moveBelow(myLayer1);  //레이어를 아래로 이동

DOM개체
Node -> 도큐먼트 내의 모든 노드는 자신만의 Node개체를 가지고 있다.
NodeList -> 이 개체는 모든 Node개체의 목록이다.
NamedNodepMap -> 이 개체는 인덱스가 아니라 이름으로 모든 Node개체에 접근할 수 있도록 한다.

document.getElementById(idvalue) -> 요소의 ID속성의 값을 넘겨받았을 때 요소의 참조(노드)를 반환한다.
<h1 id="heading1">제목입니다</h1>
<script language="javascript">
 var H1Element = document.getElementById("heading1");
 H1Element.style.fontFamily="궁서체";
</script>
 -> 제목의 폰트가 궁서체로 변경됨

<script language="javascript">
 var TDElement0 = document.getElementByTagName("TD").item(0);
 var TDElement1 = document.getElementByTagName("TD").item(1);
 TDElement0.style.fontFamily="바탕체";
 TDElement1.style.fontFamily="바탕체";
</script>
 -> 따옴표 안에 "< >" 없이 쓴다. <TD>

document.documentElement.tagName; -> 요소의 태그명을 설정하거나 반환 (최상위 HTML>

Node 개체의 프로퍼티
firstChild -> 요소의 첫번째 자식 노드를 반환
lastChild -> 요소의 마지막 자식 노드를 반환
previousSibling ->
어떤 요소에서 현재 자식 노드와 같은 수준에 있는 이전 자식 노드를 반환
nextSibling -> 어떤 요소에서 현재 자식 노드와 같은 수준에 있는 다음 자식 노드를 반환
ownerDocument -> 노드를 포함하고 있는 도큐먼트의 루트 노드를 반환
parentNode -> 트리 구조에서 현재 노드를 포함하고 있는 요소를 반환
nodeName -> 노드의 이름을 반환
nodeType -> 노드의 형식을 숫자로 반환
nodeValue -> 노드의 값을 평범한 텍스트의 형태로 설정
<script language="javascript">
 var H1Element = document.getElementById("heading1");
 H1Element.style.fontFamily="궁서체";
 var PElement = H1Element.nextSibling;
 PElement.style.fontFamily="궁서체";
</script>

Node 개체의 메서드
appendChild(new node) -> 자식 노드의 목록의 끝에 새로운 node 개체를 추가한다.
cloneNode(child option) -> 인자로 제공한 node 개체와 똑같은 새로운 node 개체를 만든다. 이때 선택 사항으로 모든 자식 노드를 포함할 수도 있다.
hasChildNodes() -> 어떤 노드가 자식 노드를 가지고 있을 경우 true를 반환한다.
insertBefore(new node, current node) -> 자식 노드의 목록에서 현재 노드로 지정한 노드 앞에 새로운 node 개체를 추가한다.
removeChild(child node) -> node 개체의 자식 노드 목록에서 하나의 자식 노드를 제거한다.
replaceChild(new child, old child) -> 예전 자식 node 개체를 새로운 자식 node 개체로 바꾼다.

document 개체의 메서드
createElement(element name) -> 지정한 이름으로 요소 노드를 만든다.
createTextNode(text) -> 지정한 이름으로 텍스트 노드를 만든다.
CreateAttribute(attribute name) -> 지정한 이름으로 속성 노드를 만든다.

var newText;
var newElem;

newText = document.createTextNode("제목입니다")
newElem = document.createElement("H1")
newElem.appendChild(newText)
document.body.appendChild(newElem)

newText = document.createTextNode("단락에 있는 텍스트입니다")
newElem = document.createElement("P")
newElem.appendChild(newText)
document.body.appendChild(newElem)

Element 개체의 메서드(속성을 얻고 설정하기)
getAttribute(attribute name) -> 속성의 값을 반환한다.
setAttribute(attribute name, value) -> 속성의 값을 설정한다.
removeAttribute(attribute name) -> 속성의 값을 삭제하고 기본값으로 수정한다.

newElem.setAttribute("align","center");
newElem.getAttribute("align");

event 개체의 프로퍼티
bubbles -> 이벤트가 하나의 요소에서 다른 요소로 제어권을 넘겨줄 수 있는지의 여부를 알려준다.
cancelable -> 이벤트가 자신의 기본 작업을 취소할 수 있는지의 여부를 알려준다.
currentTarget -> 이벤트가 현재 이벤트 흐름의 어떤 단계에 있는지 알려준다.
eventPhase -> 이벤트가 현재 이벤트 흐름의 어떤 단계에 있는지 알려준다.
type -> 이벤트의 이름을 알려준다.

mouse 이벤트 개체의 프로퍼티
altKey -> 이벤트가 발생했을 때 Alt키가 눌렸는지의 여부를 알려준다.
button -> 어떤 마우스 버튼이 눌렸는지를 알려준다.
clientX -> 이벤트가 발생했을 때 브라우저 윈도우에서 마우스 포인터가 위치한 지점의 수평 좌표를 알려준다.
clientY -> 이벤트가 발생했을 때 브라우저 윈도우에서 마우스 포인터가 위치한 지점의 수직 좌표를 알려준다.
ctrlKey -> 이벤트가 발생했을 때 Ctrl키가 눌렸는지의 여부를 알려준다.
metaKey -> 이벤트가 발생했을 때 메타키가 눌렸는지의 여부를 알려준다.
screenX -> 이벤트가 발생했을 때 브라우저 윈도우에서 마우스 포인터의 화면 좌표의 원점에 상대적인 수평 좌표 위치를 알려준다.
screenY -> 이벤트가 발생했을 때 브라우저 윈도우에서 마우스 포인터의 화면 좌표의 원점에 상대적인 수직 좌표 위치를 알려준다.
shiftKey -> 이벤트가 발생했을 때 Shift키가 눌렸는지의 여부를 알려준다.


페이지에 AtiveX 컨트롤을 추가할려면 <OBJECT>태그를 써야 한다. <OBJECT> 태그에는 모든 컨트롤에 공통적인 2가지 중요한 속성이 있는데, 이는 CLASSID와 CODEBASE이다. CLASSID 속성은 컨트롤의 제작자가 컴파일 할 때 부여한 고유한 식별자이며, CODEBASE 속성은 ActiveX컨트롤을 찾을수 있는 URL을 가지고 있다.


바로 이러한 문제점 들 때문에 상속된 하위객체에 접근을 하기
위해서는 상속정의된 프로퍼티로 접근을 하는게 애러를 방지 한다는 것입니다.
즉, test_form.children[0] 혹은 test_form.lastChild 로 접근을 하면 콘트롤 할 수 있다는 것이죠...
이때 모든 윈도우 하위객체는 대부분 collection 에 all 프로퍼티와 element 객체에 하위구성요소에 대한 인서턴스 참조값들을
저장하게 되는데 이것으로 액세스 하면 문제 발생을 줄일 수
있다는 것입니다. 물론 글로벌 참조프로퍼티인 id 는 되도록이면
하위객체에 잘 사용하지 말고 window 객체 바로 밑 일 경우
this 로 접근이 가능하도록 사용을 하면 문제 해결에 도움이
될 듯 합니다.
그럼...


function debug(testNode) {
 var aa;
     for(key in testNode)
     {
         inputValue = testNode[key];
  aa += key + " : " + inputValue + "\r\n";
     }
 window.clipboardData.setData('Text', aa);
 alert('복사완료');
}

function debug2(testNode) {
 window.clipboardData.setData('Text', eval("document.all."+testNode+".outerHTML"));
 alert('복사완료');
}




-----------------------
 모든 마우스 이벤트 
-----------------------
onkeydown처럼 마우스를 눌렀을때는 onMouseDown이벤트가 발생합니다.
그외의 이벤트로는

onClick - 클릭했을때
onMouseOver - 마우스 포인터를 객체 위로 옮겼을 때 (꼭 누르지 않아도 됩니다)
onMouseOut - 마우스 포인터를 객체에서 다른곳으로 옮길때
onmouseup
oncontextmenu
onrowexit
onbeforepaste
onactivate
onmousemove
onmove
onselectstart
oncontrolselect
onkeypress
oncut
onrowenter
onmousedown
onpaste
onreadystatechange
onbeforedeactivate
onkeydown
onlosecapture
ondrag
ondragstart
oncellchange
onfilterchange
onrowsinserted
ondatasetcomplete
onmousewheel
ondragenter
onblur
onresizeend
onerrorupdate
onbeforecopy
ondblclick
onkeyup
onresizestart
onmouseover
onmouseleave
onmoveend
onresize
ondrop
onpage
onrowsdelete
onfocusout
ondatasetchanged
ondeactivate
onpropertychange
ondragover
onhelp
ondragend
onbeforeeditfocus
onfocus
onscroll
onbeforeactivate
onbeforecut
onclick
oncopy
onfocusin
onbeforeupdate
ondataavailable
onmovestart
onmouseout
onmouseenter
onlayoutcomplete
onafterupdate
ondragleave
onbeforeunload
onafterprint
onbeforeprint
onload
onselect
onunload


등등이 있습니다. 이것들 중 몇개는 모질라에서는 되지 않고 또 모질라에서만 되는 것들도 있습니다.

출처 : http://blog.naver.com/swtgm?Redirect=Log&logNo=140034422537

728x90

'Information' 카테고리의 다른 글

인터넷 메일 MIME 규격  (0) 2007.04.03
세컨드라이프 사용 용어  (0) 2007.03.31
세컨드 라이프 기본 조작(1)  (0) 2007.03.31
728x90
세컨드 라이프내에서 만나는 사용자들은 이름이나 외양에 명시되어 있지 않은 한 어떤 나라에서 액세스 했는지 알 수 없다. 그 때문에 채팅이나 IM에서는 영어를 사용하는 경우가 많다.
 
세컨드 라이프내에서 자주 사용되고 있는 말을 아래에 정리해 보았다. 다만 이러한 말의 일부에는 영어권의 젊은이가 채팅 등에서 사용하는 은어적인 것도 포함. 그 때문에 그 내용이나 용법은 항상 변화한다. 그러나 상대가 말하는 것의 이해를 보조하는 역할 참조는 될 것이다.


출처 : ZDNet
728x90

'Information' 카테고리의 다른 글

자바스크립트 정리  (0) 2007.04.02
세컨드 라이프 기본 조작(1)  (0) 2007.03.31
세컨드라이프 주요(?)장소  (0) 2007.03.31
728x90
계정 생성  
세컨드 라이프는 이 서비스의 공식 사이트에서 계정 등록을 하고 아바타(Avatar)를 제작하는 것부터 시작된다. 계정 등록은 무료이며 필요 사항을 입력하기만 하면 된다.
 
사용자 등록이 끝나면 세컨드 라이프 클라이언트를 다운로드할 수 있다. 다운로드한 클라이언트를 인스톨하여 기동시키면 드디어 세컨드 라이프의 3D세계로 들어가게 된다.

사용자 인터페이스  
세컨드 라이프 클라이언트를 최초로 기동시키면 아래의 그림과 같은 사용자 인터페이스에 오리엔테이션 섬 공화국(Orientation Island Public)이라 불리는 섬에 도착한 자신의 아바타(Avatar)가 표시된다.



이 섬에서는 아바타의 기본적인 조작 방법이 오리엔테이션 된다. 지면에 그려진 화살표에 따라 아바타를 이동시키면 조작 방법을 배울 수 있는 포인트가 나온다. 각 포인트에「클릭하시오(Click Me)」라고 쓰여진 부분을 클릭하면 조작에 대한 설명이 표시된다(유감스럽게도 영어로 쓰여져 있다).

보행  
이 섬에서 오리엔테이션 되는 순으로 조작 방법을 설명하겠다. 우선은 아바타를 걷게 할 필요가 있다. 아바타의 보행에는 다음의 키를 사용한다.



주의:WASD 키를 사용하는 경우, 화면 아래 Chat 버튼을 눌러 채팅 기능을 일시적으로 정지해야 한다.

외양의 변경  
아바타의 외양은 용이하게 변경할 수 있다. 오리엔테이션 섬의 최초 포인트에서는 외양의 변경 방법이 소개되고 있다.


현재의 아바타를 위 사진에서 보이는 남성이나 여성의 외양으로 변경한다. 어느 쪽인지 인물을 클릭하면 화면 오른쪽 상단에 메시지가 표시된다

메시지내의 Keep 버튼을 클릭한다. 그리고 화면 왼쪽 하단에 있는 Inventory 버튼을 클릭한다. Inventory(목록)란 각 사용자가 취득한 아이템이 보존되고 있는 장소.

방 금전 Keep 버튼을 클릭해 취득한 것은 선택한 인물의 체형(shape)이나 피부(skin), 그리고 복장 등의 외양이다. 이렇게 취득한 외양은 Inventory의 My Inventory 폴더 안에 생성되는「Male Outfit 3」(남성) 또는「Female Outfit 3」(여성)이라는 폴더에 넣을 수 있다.


이 외양으로 아바타를 변경하기 전에 현재의 외양이 들어있는 폴더가 Inventory의 My Inventory 폴더 안에 있는 Clothing 폴더에 보존되고 있는지를 확인한다. 만약 보존되어 있지 않은 경우나 현재의 외양을 보존하고 싶은 경우에는 다음의「외양 보존, 수정, 갈아 입기」를 먼저 읽어 보면 된다.
 


현재 외양의 보존에 대해 확인했다면 취득한 외양으로 아바타를 변경한다. 변경은「Male Outfit 3」(또는「Female Outfit 3」) 폴더를 아바타에 드롭하기만 하면 된다. 원래의 외양으로 되돌리려면 Inventory의 My Inventory 폴더 안에 있는 Clothing 폴더내 원모양의 폴더를 아바타에 드롭하면 된다.

Inventory의 Library 폴더(My Inventory 폴더가 아니란 점에 주의) 안에 있는 Clothing 폴더에는 사용자 등록시에 선택이 가능했던 다른 외양이 보존되고 있다. 이러한 외양을 시험해 보는 것이 가능. 또 폴더 안에 있는 체형 및 피부, 그리고 옷만 드롭해주면 개별적으로 변경할 수도 있다.

외양의 보존, 수정, 갈아 입기  
다음은 아바타의 외양을 수정하는 방법.

자신의 아바타상에서 마우스를 오른쪽 클릭(Mac의 경우는 코맨드 키를 누르면서 클릭)하면 둥근 메뉴가 표시된다. 이 메뉴는 파이 메뉴(Pie Menu)라고 불린다. 메뉴에서 Appearance를 클릭하면 외양을 수정하는 모드.
 
Appearance 모드와 Make Outfit 버튼
외양을 수정하기 전에 현재의 외양을 보존하는 것을 추천한다. 외양의 보존에는 Make Outfit 버튼을 클릭한다.
 


Make Outfit 버튼을 클릭하면 Make New Outfit 대화창이 열린다. 이 박스에 있는 Body Parts, Clothes, Attachment로 선택할 수 있는 항목을 클릭해 체크한다. Folder name 필드에 적당한 이름을 입력해 Save 버튼을 누른다.

이것으로 현재의 외양은 Folder name 필드에 입력한 이름의 폴더 안에 보존되었다. 이 폴더는 전항 같이 Inventory의 My Inventory 폴더 안에 있는 Clothing 폴더 안에 생성.
 
Appearance에서는 아바타의 체형이나 얼굴 등을 수정할 수 있다. 만약 수정에 실패해도 보존되어 있는 외양이 들어있는 폴더를 아바타에 드롭하면 원래대로 되돌릴 수 있다.
 
다만 외양의 수정에 대해서는 세컨드 라이프내에서 아바타를 유료 또는 무료로 손에 넣는 것이 가능하기 때문에 처음부터 그다지 정교하게 수정할 필요는 없다.

Make Outfit에는 외양의 보존 이외에도 편리한 사용법이 있다. Make New Outfit 대화창의 Clothes와 Attachment로 선택할 수 있는 항목을 체크해 폴더를 생성하면 현재의 복장이 보존된다.
 


이와 같이 복장의 정보를 폴더 안에 정리해 보존해 두면 갈아 입기가 용이하게 된다. 어느A 복장으로부터 다른 복장에 상황에 따라 갈아 입는 경우, 각각의 복장의 폴더를 아바타에 드롭 하는 것만으로 끝난다.

채팅과 IM
다른 사용자와 대화하는 방법으로서 문자에 의한 채팅이 있다. 채팅을 하려면 화면 왼쪽 하단에 있는 텍스트 필드에 문자를 입력하고 Enter 키를 누른다. 텍스트 필드가 표시 안 된 경우는 Chat 버튼을 클릭.
 
채팅으로 수신된 문자는 화면 왼쪽 하단에 표시된다. 채팅으로 발신한 문자는 주위에 있는 사용자가 읽을 수 있다. 채팅으로 수신된 문자는 잠시 후에 화면 왼쪽 하단에서부터 없어진다. 없어진 문자를 다시 읽고 싶은 경우, 텍스트 필드의 옆에 있는 History 버튼을 클릭. 그러면 대화창이 표시되고 지금까지 수신된 문자를 읽을 수 있다.
 
채팅으로 발신한 문자는 20 m이내에 있는 사용자라면 누구나 읽을 수 있다. 만약 특정 상대만 읽게 하고 싶다면 IM을 사용하는 것이 좋다.

IM을 보내려면 수신 상대의 아바타상에서 파이 메뉴가 표시되도록 한다. 파이 메뉴에서 Send IM을 클릭하면 IM발신용 대화창이 표시된다. 여기에 입력하여 발신한 메시지는 상대의 사용자 인터페이스상에서만 표시된다.

시점 조정과 마우스 룩 모드  
멀리 있는 것을 확대 표시하는 등의 카메라(시점) 컨트롤이 가능하다.
 
확대 표시할 대상물 위에서 Alt 키(Mac의 경우는 Option 키)를 누르면 커서가 화살표에서 확대경으로 변한다. 이대로 마우스를 클릭해 앞으로 움직여주면 확대, 뒤로 움직여주면 대상물이 축소된다.

또 이 상태에서 마우스를 좌우로 움직이면 대상물을 중심으로 시점이 좌우로 선회한다. 예를 들면 자신의 아바타 대상물에서 시점을 좌우로 선회시키면 언제나 등밖에 볼 수 없었던 자신의 아바타 정면을 볼 수 있다.

Alt 키와 Ctrl 키(Mac의 경우는 Option 키와 Control 키)를 누르면서 마우스를 좌우로 움직여도 같은 효과를 얻을 수 있다. 이 상태에서 마우스를 앞뒤로 움직이면 시점을 위아래로 선회시킬 수 있다. 사진에서는 마우스를 뒤로 움직여 시점을 아바타 위로 이동시키고 있다.
 
Alt 키와 Ctrl 키, 그리고 Shift 키(Mac의 경우는 Option 키와 Control 키, 그리고 Shift 키)를 누른 상태에서 마우스를 상하 좌우로 움직이면 시점 또한 상하 좌우로 이동할 수 있다.

왼쪽이 보통 시점 모드. 오른쪽이 마우스 룩 모드

시점을 보통 위치로 되돌리려면 Esc 키를 누르거나 아바타를 걷게 해주면 된다. 보통 시점이란 아바타의 배후에 놓여 있는 3인칭 시점. 그리고 아바타의 시점에 카메라 둔 상태(1인칭 시점)를 마우스 룩 모드(Mouse Look Mode)라고 한다.

마우스 룩 모드로 전환하려면 채팅 기능을 정지한 상태에서 M키를 누른다. 또 스크롤 휠이 첨부된 일부 마우스에서는 휠을 돌려 계속 확대하면 자동으로 바뀐다. 보통 시점 위치로 되돌리려면 Esc 키를 누른다.

사물의 이동  


커서를 이동시키고 싶은 사물(object) 위에 두고 마우스를 누른 채 움직이면 물건을 이동할 수 있다. 이 상태에서 Ctrl 키(Mac의 경우는 Control 키)를 누르고 마우스를 이용하여 물건을 들어 올릴 수도 있다.

비행  
걷는 것보다 빨리 먼 곳으로 이동하고 싶은 경우, 아바타는 날 수 있다. PgUp 키 또는 E키를 누르면 된다. 그리고 PgDn 키 또는 C키를 누르면 비행을 멈춘다. 비행중 방향 전환 방법은 보행중 것과 같다.

텔레포트와 검색 기능
더 멀리 이동하고 싶은 경우는 텔레포트(순간이동). 예를 들면 오리엔테이션 섬에서 세컨드 라이프내에 있는 CNET Networks의 오피스로 이동하는 경 텔레포트를 사용하면 한순간 이동이 가능하다.

왼쪽 상단에 입력 텍스트 필드가 있고 왼쪽 하단에 Teleport 버튼이 있다.

화면 아래에 있는 Search 버튼을 클릭하면 검색 화면이 표시된다. Places 탭을 선택해「CNET」을 입력하고 Search 버튼을 클릭한다. 검색 결과「CNet Networks Office」가 표시된다. 검색 화면 오른쪽 하단의 Teleport 버튼을 클릭하면 CNET Networks의 오피스로 텔레포트.

미니 맵 & 맵
앞서 설명한 Search 기능과 함께 세컨드 라이프내 이동에 필요한 툴로서 미니 맵(Mini-Map)과 맵(Map)이 있다.

화 면 오른쪽 상단에 표시되는 미니 맵은 현재 주위의 모습을 나타낸다. 노란 점이 자신의 아바타. 노란 점을 정점으로 하는 얇은 회색 삼각형은 시야. 녹색 점은 자신의 아바타와 같은 고도에 있는 다른 아바타. 녹색의 T자는 자신의 아바타보다 높은 고도에 있는 아바타이며 녹색의 역T자는 낮은 고도에 있는 아바타를 나타낸다.
 
맵은 미니 맵을 더블 클릭 하든지 화면 아래의 맵 버튼을 클릭하면 표시되는데 미니 맵보다 광범위하게 장소를 표시한다. 맵을 사용해 텔레포트도 가능.
 
Reasion을 입력해 Search 버튼을 클릭하는 부분(위의 동그라미), Location을 입력하는 부분(아래의 동그라미)

예를 들면 세컨드 라이프내에 있는 CNET Networks의 오피스(Millions of Us 227, 30, 38)에 텔레포트 하는 경우, 우선, Region로서 Millions of Us를 입력해 Search 버튼을 클릭한다. Location에 227, 30, 38이라는 좌표를 입력해 Teleport 버튼을 클릭하면 목적의 장소에 텔레포트 할 수 있다.

그 외 조작  
앉기

CNET Networks의 오피스에 있는 의자에 앉으려면 의자상에서 파이 메뉴를 표시시킨다. 메뉴에 있는 Sit Here를 클릭하면 앉을 수 있다. 의자에서 일어서려면 화면 아래에 표시되는 Stand Up버튼을 클릭.

친구 리스트의 추가
세 컨드 라이프안에서 뜻이 맞는 사용자를 찾아내면 그 사용자를 친구 리스트에 추가할 수 있다. 추가하고 싶은 사용자의 아바타상에서 파이 메뉴를 표시시킨다. Add Friend를 클릭하면 친구 리스트의 추가 수락을 얻기 위한 메시지가 상대에게 발신된다. 만약 상대가 추가를 수락하면 친구 리스트에 추가.

친구 리스트를 표시하고 화면 아래의 Friends 버튼을 클릭한다. Friends 대화창에서 사용자명을 클릭한 후 IM버튼을 클릭하면 그 사용자에게 IM을 발신할 수 있다.

경계 표지의 제작
마 음에 드는 장소를 찾아내면 그 장소에 언제라도 돌아올 수 있도록 경계표지를 제작해 둔다. 화면상에 있는 메뉴에서 World>Create Landmark Here를 선택하면 이 장소의 정보가 Inventory의 My Inventory 폴더 안에 있는 Landmarks 폴더에 경계표지로서 보존된다. 다른 장소에서 이 장소로 텔레포트 하려면 Landmark 폴더 안에 있는 경계표지를 더블 클릭 해 표시되는 메시지에서 Teleport 버튼을 클릭.
 
태양 상태도 변경할 수 있다. 태양 상태는 일출부터 일몰까지 시시각각 변한다. 밤이 되어 화면이 어두운 경우, 태양 상태를 강제로 변경할 수 있다. 화면상에 있는 메뉴에서 World>Force Sun을 선택한다. 상태의 종류는 Sunrise(일출), Noon(낮), Sunset(일몰), Midnight(밤).

물건의 입수
물건을 자신의 Inventory에 넣으려면 우선 대상물 위에서 파이 메뉴를 표시시킨다. 금액의 지불(0 린덴달러도 포함)이 필요한 경우에는 Buy, 그 이외의 경우에는 Take가 표시되는데 그것을 클릭한다.

Buy가 표시되었을 경우, 금액의 지불을 확인하는 대화창이 표시된다. 그 대화창에서 Buy 버튼을 클릭하면 금액이 지불되고(0 린덴달러의 경우는 지불이 발생하지 않는다) 물건이 Inventory에 들어간다. Inventory에 새롭게 추가된 것이 어디에 들어갔는지 모르는 경우는 Inventory의 Recent Items 탭을 보면 확인할 수 있다.
 
몇 벌의 양복이 패키지화 된 것 등을 개봉할 경우, 파이 메뉴의 Open을 사용. 만약 패키지를 Inventory에 입수했다면 한 번 그 패키지를 Inventory에서부터 지면에 드래그하여 꺼낸다. 꺼낸 패키지상에서 파이 메뉴를 표시해 Open을 클릭하면 패키지내의 물건이 Inventory에 추가된다. 지면에 꺼낸 패키지는 Take 하여 Inventory에 되돌리는 것도 잊지 말아야 한다.

출처 : ZDNet
728x90
728x90
세컨드 라이프(Second Life)에서는 각 사용자가 자유롭게 목적지를 찾아내고 가고 싶은 장소를 선택할 수 있다. 반대로 말하면 세컨드 라이프를 이용하기 시작한 잠시 후에 어디로 가면 좋을지 어찌할 바를 모르는 일도 있을 수 있다.

그러한 초보 사용자를 위해 공통 통화 린덴 달러를 사용하지 않아도 즐길 수 있는 장소를 선택해보았다.

Search나 Map 대화상자를 사용해 이동할 수 있도록 장소의 이름과 함께 괄호안에는 지역명과 좌표도 나타내었다.




우선은 NAGAYA(Juho 89, 165, 62). 일본인 사용자 대부분이 모이는 장소로서 알려져 있다. 여기서 정보교환을 해보면 어떨까.



The Bazaar(Stillman 148, 87, 23). 아바타(Avatar)에 변화를 주기 위해 옷 등의 무료 아이템을 찾아 보자. 화면에 보이는 입방체 등에 아이템이 패키지화. 이 패키지 위에서 파이 메뉴를 표시시켜(무료 아이템이지만) Buy등을 선택해 얻을 수 있다.



FREEBIE WAREHOUSE(Burns 95, 148, 79). 여기도 무료 아이템이 많이 있다. 여기에서는 총기도 얻을 수 있지만 세컨드 라이프안에서는 특정 장소(다음 설명을 참조)를 제외하고 총기 사용을 금지하고 있다.



Linden Combat Sandbox Rausch(Rausch 101, 107, 101). 여기에서는 총기의 사용이 허가되고 있다. 화면상에는 하트 아이콘과 함께 숫자로 라이프 포인트가 표시. 이 값이 0이 되면 Home으로 지정되어 있는 장소로 텔레포트 돼버린다. 화면의 노란 기둥으로 둘러싸여 있는 장소는 세이프 존(비전투 지역).



SANCTUARY ROCK(Sanctuary Rock 156, 55, 55). 하드록•헤비메탈계 클럽. 텔레포트 후 도착한 장소는 화면과 같다. 화면 중앙에 있는 신호위에서 파이 메뉴를 표시시켜 Teleport를 선택하면•••(다음 설명에 계속)



•••클럽안에 들어갈 수 있다. 무대에서 춤추려면 댄스용 애니메이션을 로딩해야 한다. 화면 안쪽 스테이지 양쪽 측면에 나무모양의 원형 물체가 보이는가. 이 물체상에서 파이 메뉴를 표시시켜 Touch를 클릭하면 로딩된다(엑세스량이 많을 때는 시간이 걸린다).

춤추는 것을 멈추려면 같은 물체상에서 Touch를 재차 클릭한다. 음악이 들리지 않는 경우에는 Edit>Preferences에서 Preferences 창을 열어 Audio & Video 탭의 Play Streaming Music When Available에 체크한다. 화면아래에 Play 버튼이 표시되는데 클릭하면 음악이 들린다.



Bad Girls(Badlands 2, 2, 0). 이쪽은 힙합계 클럽. 텔레포트 후 도착한 장소에서 조금 걸어가면 입구가 있다. 춤추려면 무대 위에 있는「69」라고 쓰여진 부분에서 파이 메뉴를 표시해 Touch를 선택한다. 앞서 설명한 SANCTUARY ROCK도 그렇지만 춤추는 것보다 춤추면서 주변 사용자와 채팅하는 것을 주로 즐긴다.



Nakiska Ski Club(Nakiska 216, 50, 131). 판과 스톡을 입수하려면 텔레포트 후 도착한 장소의 뒷편에 있는「Touch desk to get free skis」라고 쓰여진 보드를 클릭해 화면 오른쪽 위에 표시되는 메시지에서 Keep 버튼을 클릭한다.



Abbotts Aerodrome(Abbotts 160, 152, 71). 텔레포트 후 도착한 장소에 놓여 있는 지도를 사용해 스카이 다이빙용 데크로 이동한다. 데크에서 무료 낙하산을 얻을 수 있다. 입수한 낙하산을 아바타(Avatar)에 장착시켜 스카이 다이빙용 포드(화면 오른쪽 아래에 있는 의자)에 앉아 표시되는 메시지에 따라 조작하고 하늘로 향한다. 특정 고도까지 낙하하면 낙하산이 자동으로 펼쳐진다.



NISSAN(Nissan 26, 131, 27).「자동차 자동 판매기」에서부터「니산 센트라(Nissan Sentra)」를 입수하여 시승해볼 수 있다. 입수하려면 암호화된 패스워드를 자판기에 입력해야 하는데•••(다음 설명에 계속)



•••자판기 정면에 있는 사진의 화장실이 힌트.



Reuters(Reuters 127, 99, 25). 로히터통신(Reuters)의 세컨드 라이프 지국. 건물 입구에 있는「Click here to receive your own free persona news HUD」라고 쓰여진 보드(화면에서는 로히터의 기가 내려진 걸 볼 수 있다)에서 얻을 수 있는 디바이스를 사용하면 로히터가 전달하는 뉴스를 화면상에 표시시킬 수 있다.



디바이스를 화면에 가져와 보았다.



CNET Network Office(Millions of Us 227, 30, 38). 씨넷(CNET)의 세컨드 라이프 오피스. 여기에서는 정기적으로 IT업계의 유명인에 대한 공개 인터뷰를 실시한다. 인터뷰 내용은 씨넷의 인터뷰 기사로서 게재된다. 일반 독자도 오피스를 방문해 질문할 수 있다는 점이 특징.

출처 : ZDNet
728x90

'Information' 카테고리의 다른 글

세컨드 라이프 기본 조작(1)  (0) 2007.03.31
세컨드 라이프 초보일지(Second Life) 뭘하지??  (0) 2007.03.31
office2007 메뉴찾기  (0) 2007.03.31
728x90

세컨드라이프에 접속했을 때, 사람들이 느끼는 당혹감은 가지각색일 것이다.


게임도 아닌 것이.. 미니홈피도 아닌 것이..

그렇다고 정보교환을 위한 Comm의 창구도 아닌 것이..

이전까지 나왔던 컨텐츠의 형태와는 꽤나 다른 독특한 형태의 것이 세컨드 라이프인 것이다.


 그냥.. 세컨드 라이프는 세컨드 라이프다.. 라는 생각으로 느껴야 할 것이다.

새로운 것이기 때문이다. 자신의 틀에 맞출려고 할 때마다 당신의 세컨드 라이프는 작아질 것이다. (사실.. 접속할 때 마다.. 내가 느끼는 부분이다..ㅡㅜ 이걸 내가 계속 해야 하나..하는..)


각설하고, 일단 홈페이지 회원가입을 하고, 접속을 하게 되면 오리엔테이션 아일랜드 일 것이다.

내가 갔던 곳은 네가지 테마로 이뤄진 곳이었는데, 이상하게 다시 찾아 갈려니 은근 어렵다..

원래는 그곳을 수료해야지 본토로 갈 수 있는 패스포트를 준다고 안내를 받았으나,

수료했는지 아닌지는 모르겠다..ㅡㅡ;;

뭐, 일단 돌아다니고 살아가는데 어려움이 없으니 그냥..


기본적인 과정을 수려하고 나면, 여기저기 기웃거리게 된다. Map기능을 사용하기도 하고, Search 기능을 사용하기 한다. 여기서부터 고민이 시작된다.


과연 어디를 갈 것인가????


세컨드라이프는 갈 곳도 많고 할 일도 많다.

하지만 이 '많다'라는 것이 발목을 붙잡는다. 너무 많아서 헤매게 된다. 방황을 하다보면 다시 같은 생각이 들 것이다. (이걸 내가 계속 해야 하나????)

자유도가 높다는 것은 장점이 되지만, 가이드라인조차 없는 환경은 초보자에게 매우 가혹한 환경으로 다가온다. 조금만 더 인내심을 가지고 버텨보자.

Web 2.0 환경의 기본적인 특성상 많은 자유도를 부여하지만, 이 자유도로 부터 혜택 받기 위해서는 상당한 수준의 '능동성'이 있어야 한다는 것을 명심해야 한다.

능동적인 사용을 위해서 '배워야' 할 것이다. 학습만이 살길~!

성공적인 세컨드 라이프를 위해. ^^;;


오리엔테이션을 수료한 초보자들에게 추천할 곳이 몇 군데 있다. (물론 필자도 초보자이다.)


첫번째 장소는 바로 이곳 New Citizen Incoporated(NCI)내의 New Citizen Plaza이다.


http://slurl.com/secondlife/Kuula/57/181/29

위의 링크를 통해 쉽게 접근할 수 있다.



 
 
이곳에서는 물건을 만들 수 있는 Sandbox와 이를 위한 몇가지 강좌와 정보게시판 등이 있고,
또한 Snapshot뒤로 보이듯이 무료로 가질 수 있는 물건들이 진열되어 있다. 필자의 선그라스도 여기서 얻은 것이다. (잘 찾아보면 자전거도 있다.. 멋지지 않은가??? 자전거라니.. )
초반에 의상이라든지 또한 Appearance의 bodypart에 대한 고민을 한번에 해결할 수 있다.
 
초기에 사람들이 많다는 이유로 mature(?)된 동네에 가서 세컨드 라이프에 대한 회의감을 느꼈던 필자로서는 상당히 신선한 느낌을 받았었다. (음.. 아직 희망은 있군.. 정도의)
꼭 한번 가보시길~!
 
* mature에 대해서는 따로 설명을 할 것이다. 음.. 좀 난감한 곳이다.
 
두번째는 Hanja Welcome Area이다.
그냥 지도 상에서 어디를 갈까 보다가, Hangeul이라는 동네가 있길래 가봤는데, 친절한 Brand를 만난 곳이다.
 

 
(사진 속 날개 달고 있는 사람이 Brand Trilam)
 
 
아무래도 시차의 문제로 인해서 꼭 이 사람을 볼 수 있을지는 모르겠지만, Brand는 Second life Guide라는 Tag를 달고 있었다. 관찰해보니 나처럼 헤매는 초보자들에게 이런 저런 설명을 해주는 일을 하고 있었다. (이런 사람이 다 있었군.. 호오~)
가볼 만한 곳의 리스트와 한국 사람에게 소개할 수 있는 뭔가를 달라고 하니 세컨드 라이프 FAQ를 주었다. (notecard의 형태로.. notecard는 그 자체로 저장할 수 있는 문서로 설명이나 안내, 광고 등을 담고 있는 그 용도가 광범위한 text저장형태다.)
 
혹시 관심이 있으신 분은 꼭 brand를 만나보기 바란다. 그가 주는 가볼만한 곳 목록은 꽤 유용한다. (링크를 걸수 없어서 올릴수가 없다..ㅡㅜ)
 
그리고 이 장소는 brand뿐 아니라 꽤 많은 사람들이 어슬렁대는 곳이다. 그리고 대화가 빈번하게 일어난다. 대화를 통해 친구를 만드는 것도 꽤 의미있는 일일 것이다.
 
^^
 
What's your Second Life?

출처 : http://blog.naver.com/cshan96?Redirect=Log&logNo=80035266099
728x90

'Information' 카테고리의 다른 글

세컨드라이프 주요(?)장소  (0) 2007.03.31
office2007 메뉴찾기  (0) 2007.03.31
청약 가점제  (0) 2007.03.30

+ Recent posts