20091224 :: CSS3 선택자 명세

CSS는3 명세는 아직 개발 중인 규격이므로 아래의 선택자 명세는 최종 버전에서는 변경되거나 추가/ 삭제될 소지가 다분합니다. 또한 브라우저에 따라 표준 규격에 명시된다해도 지원되지 않는 경우도 있을 수 있습니다.

1. 유니버셜 셀렉터

용법 :

*

뜻 :

모든 요소 [2]

2. 타입 셀렉터

용법

E (타입명=태그명을 그대로 기술)

뜻:

E 타입의 요소

3. 속성 선택자

용법 :

E[foo]

뜻 :

foo 속성을 가진 E 타입의 요소 [2]

3.1. E[foo="bar"]

foo 라는 속성을 가지며, 그 속성값이 “bar”인 요소 [2]

3.2. E[foo~="bar"]

foo라는 속성을 가지며 그 속성값 중 공백으로 분리된 단어에 “bar”가 있는 요소[2]

3.3. E[foo^="bar"]

foo라는 속성을 가지며, 그 속성 값이 “bar”로 시작하는 요소[3]

3.4. E[foo$="bar"]

foo라는 속성을 가지며, 그 속성 값이 “bar”로 끝나는 요소[3]

3.5. E[foo*="bar"]

foo라는 속성을 가지며, 그 속성 값 중 “bar”라는 문자열이 있는 요소 [3]

3.6. E[foo|="en"]

foo라는 속성을 가지며, 그 속성 값에 하이픈으로 결합된 문자열이며, 그 중 “en”으로 시작하는 부분이 있는 경우 (예 : foo = “input-enabled” 와 같이)

3.7.  E:root

문서의 root 엘레먼트 (html 요소)

3.8. E:nth-child(n)

상위 요소의 n 번째 하위 요소. img:nth-child(3)은 상위 요소에 대한 하위 요소중에서 3번째를 의미한다. 즉 img:nth-chlid(3)은 div 하위에  p > p > img > p 순으로 요소가 나타날 때 적용될 수 있다.

3.9. E:nth-last-child(n)

상위 요소의 뒤에서 n 번째 하위 요소.

3.10. E:nth-of-type(n)

동일한 타입(테그 종류) 중에서 순서를 매겨 표시한다. 즉 동일한 상위요소 아래에 이미지가 3개 있는 경우, 이중 2번째 이미지라면 img:nth-of-type(2)라고 서술한다.

3.11. E:nth-last-of-type(n)

동일한 타입 중에서 뒤에서 부터 순서를 매겨 선택한다.

3.12. E:first-child

상위 요소에 대해 처음으로 나타나는 경우 li:first-child는 ul / ol 의 하위 중 첫 번째 리스트 목록만을 선택한다.

3.13 E:last-child

상위 요소에 대해 마지막으로 나타나는 경우

3.14 E:first-of-type

상위 요소에 대해 처음으로 나타나는 해당 태그의 경우. 예를 들어 본문 중 첫 링크를 특별히 표시하고자 할 때 사용한다.

3.15. E:last-of-type

상위 요소에 대해 마지막으로 나타나는 해당 태그.

3.16. E:only-chlild

상위 요소가 단 1개의 하위 요소를 가질 때만 선택됨.

3.17. E:only-of-type

상위 요소에 속한 하위 태그가 동일 태그가 1개만 들어있는 경우에 선택됨. (only-child는 종류에 무관하게 단 한 개의 하위 요소가 있는 경우에만 해당함)

3.18. E:empty

선택된 요소가 하위 요소를 가지지 않을 경우 (이 경우 텍스트 노드도 존재하지 않아야 한다.)

3.19. E:link

택된 요소가 링크이고, 해당 링크에 아직 방문한 적이 없는 경우.

3.20. E:visited

선택된 요소가 링크이고, 해당 링크에 방문한 적이 있는 경우.

3.21. E:active

사용자의 특정 행동에 의해 활성화된 경우

3.22. E:hover

사용자의 특정 행동에 의해 마우스포인터가 올려진 경우 (모든 요소에 대해 적용)

3.23. E:focus

사용자 행동에 의해 탭 포커스를 가지게 된 경우 (모든 요소에 대해 적용)

3.24. E:target

참조 URI의 타겟이 된 요소

3.25. E:lang(fr)

프랑스어로 언어 속성 (lang)을 가지는 요소. 언어 속성은 별도의 스펙 문서를 참고할 것.

3.26. E:enabled / E: disabled

요소의 상태값에 따라 선택함. 주로 form 의 하위 요소들에 사용

3.27. E:check

체크된 요소. 특히 라디오버튼이나 체크박스에 적용됨

3.28. E::first-line

포맷팅된 단락의 첫번 째 줄

3.29. E::first-letter

포맷팅된 단락의 첫번 째 글자

3.30. E::before

E요소 앞에서 새로 생성된 콘텐트에 대해 선택

3.31. E::after

E요소 뒤에 새로 생성된 콘텐트에 대해 선택

3.32. E.warning

E요소 중 클래스 속성이 ‘warning’ 인 요소

3.33. E#myid

요소 중  id 속성이 ‘myid’인 요소

3.34. E:not(s)

요소 중 s 선택자에 의해 선택이 제외되는 요소

3.34. E F

E의 하위 어딘가에서 나타나는 F 요소

3.35. E > F

E의 바로 하위에서만 나타나는 F 요소. CSS2에서부터 적용되며, 이를 사용할 경우 ul > li 로 선택하면, ul li ul li의 2중 구조 메뉴의 하위 메뉴들은 선택을 받지 않는다.

3.36. E + F

E의 바로 앞에 나타나는 F 요소

3.37. E ~ F

E의 앞 어딘가에서 나타나는 F 요소

20091222 :: 사진 – 틸트를 이용해 미니어처처럼 표현되다.

* 피드를 구독하시는 분들 께는 죄송하지만 DB 서버를 변경하면서 어제 올린 글이 날라가는 바람에 새로 작성했습니다. 크게 중요한 포스트는 아니지만 그래도 사진들이 이쁘니까 왠지 있어보이는 마음… 이해해 주실거죠?

사실 뭐 좀 뒷북이기는 합니다. 사실 얼마전에 여러 포스트를 통해서 꽤나 알려진 사진들이거든요. 대략 아래에서 볼 수 있는 것들이지요.

미니어처로 아주 정교하게 만든 것같은 해안 도시의 모습입니다. 매우 사실적이기는 한데 약간 색감도 독특한 듯 하고, 그런 느낌이네요.

경기장의 모습입니다. 주위 건물의 조명 하나 하나에 아주 작아보이는 자동차들과 헤드라이트 불빛들이 인상적이네요.

이번에는 도회적인 느낌이 아닌 인삼밭(?) 같은 분위기가 나는 곳입니다.

*글 새로 쓰는 김에 이미지 한 두 개 더 추가합니다.

예상은 하셨겠지만, 위 사진들은 미니어처를 찍은 것이 아니라 실제 풍경을 카메라로 담은 것입니다. 일반 카메라가 아닌 렌즈가 틸트되는 장치를 사용하여 찍은 것이라고 하네요. 틸트(tilt)는 말 그대로 바퀴달린 의자나 자동차 의자처럼 ‘젖혀지는’ 렌즈입니다. 위키피디아에서 뽑아온 사진은 아래와 같습니다. 카메라가 부서진 것이 아니라, 특정한 각도를 바라보도록 조정이 가능합니다.

이러한 틸트 렌즈를 사용하면 실제 화상이 필름(혹은 CCD)에 맺힐 때 두 면이 평행을 이루지 못하기 때문에 화면의 중앙부를 제외하면 초점이 극적으로 심하게 흐트러지는 효과를 얻을 수 있습니다. 동일한 거리에 있는 물체라하더라도 화상 자체의 미세한 거리가 카메라 내부에서 발생한 덕분에 초점이 맞는 부분의 디테일이 극적으로 부각되어 보이는 것이지요.

예전에 유니클로 (혹은 유니클락)의 홈페이지가 이런 느낌의 사진을 연속촬영하여 고속 재생하는 화면을 보여주어 상당히 매료된 적이 있었습니다. (보신 분이 있으시면 기억 나실지도 모르겠네요) 처음에는 CG로 구성한 줄 알았는데 이런 장비를 사용하여 촬영하는 것이더군요. 웹에서 이런 틸트-시프트1 기법을 사용하는 사진을 찾아보면 일본 사진이 많이 있습니다. 저 장비를 일본 사람이 개발한 건지, 아니면 이런 사진의 느낌이 주는 인공적인 느낌을 일본 사람들이 좋아해서 그런지는 모르겠습니다. (꽤 시가지가 오래전 느낌이 나는 사진들도 있더라구요)

상당히 독특한 느낌을 주는 사진들이 많이 있지만, 요즘처럼 추운 날씨에는 따뜻한 볕을 쬐며 코코아 한 잔 들고서 이런 사진들만 하염 없이 바라봤으면 좋겠네요.

사진 출처 : http://www.widelec.org
tilt – action camera : http://en.wikipedia.org/wiki/Tilt-shift_photography

  1. 시프트는 렌즈 자체의 위치를 평행하게 움직이는 다른 기법이라고 합니다만, 보통은 이런 카메라를 틸트-시프트라고 부르더군요

20091215 :: Grub2로 업그레이드 하기

사실 이런 내용은 본 블로그의 분점(중 하나)인 ‘숩의 문제해결 레시피’에 올려야 마땅하겠지만, 문제 해결을 못하고 OS를 재설치한 관계로 -_-;; 그냥 본점에 올리게 되었습니다. 본 포스트의 주요 내용은 우분투 위키의 내용을 참고했습니다. (원문 : http://wiki.ubuntu.com/Grub2)

GRUB 란?

리눅스를 한 번도 설치해 본 경험이 없는 사람이라면 들어본 적이 없는 프로그램입니다. grub는 GRand Unified Bootloader의 줄인말로,  초기 부팅 시에 운영체제 (혹은 운영 체제의 커널)을 선택하여 부팅하게 도와주는 멀티 부트 로더입니다. 현재 grub2는 우분투 9.10 버전을 새로 설치하면 기본으로 설치됩니다. 엄밀히는 아직 2가 아니라 1.97 베타4 정도가 됩니다. (2009년 12월 현재)

Grub2 설치하기 (업그레이드)

윈도우가 설치된 머신에서 우분투를 설치하면 grub는 자동으로 설치됩니다. 제 경우에는 우분투 9.04 버전에서 9.10으로 업그레이드를 했는데, 왠지 이 경우에는 grub2로의 업그레이드는 포함이 되지 않았습니다. grub2로의 업그레이드를 위해서는 아래의 과정을 거쳐야 합니다. 초보자에게는 두렵기 그지 없는 존재인 ‘터미널’을 사용합니다. 터미널을 열고 다음의 명령을 실행합니다.

sudo apt-get install grub2

sudo를 통해 시스템의 깊은 곳(?!)을 건드리는 명령을 수행하면, ‘당신이 진짜 su가 맞냐’며 비밀 번호를 물어봅니다. 비밀 번호를 입력해 주시면 되겠습니다.그럼 뭔가 몇 가지 파일을 내려 받고 설치하게 됩니다. 설치 과정에서 몇 가지를 물어보게 됩니다.

  • grub-pc 설정과 관련하여 텍스트 기반으로 보여지는 대화상자가 보입니다. OK를 선택해주면 됩니다.
  • 체인로드가 어쩌구하는 부분을 물어봅니다. ‘Chainload from menu.lst’ –> ‘YES’
  • 다음은 커맨드 라인에서 무슨 명령어를 입력해 보라고 합니다. 그냥 엔터를 누릅니다.

이렇게 해서 설치과정이 끝난 것처럼 보입니다. 하지만 다가 아닙니다. 다시 아래 명령을 바로 입력해 줍니다.

sudo upgrade-from-grub-legacy

여기서 중요한 것이 있습니다. 설치된 하드 디스크를 보여주면서 어디에 grub를 설치할 것인지 물어봅니다. 보통은 (hd,0) /dev/sda가 부팅되는 파티션입니다. 제 경우에는 boot 플래그가 있는 하드 디스크 파티션이 이것 뿐이라 그런지 하나 밖에 표시가 안되더군요. 스페이스바를 눌러서 선택을 하고 엔터를 입력하여 계속 진행합니다. 만약, 마냥 설레기만 해서 그냥 엔터를 눌렀다면 나중에 다시 좀 귀찮게 손을 봐야 합니다.

sudo grub-install

를 입력해서 grub 설치를 완전히 완료합니다. 이제 기존의 설정 파일이나 그런 것들은 전혀 쓸모가 없으니 지워도 상관 없습니다… 라고하지만 혹시 모르니 기존 설정 파일은 잘 보관해 둡니다.

sudo mv /boot/grub/menu.lst /boot/grub/menu.lst.backup

Grub2의 설정들

grub 이전 버전과 달리 grub2는 (이제 익숙해지려고하니)  menu.lst 파일을 더 이상 사용하지 않습니다. 하지만 다른 파일들을 여전히 동일한 폴더에 보관하고 이를 사용합니다. 대표적인 파일은 /boot/grub/ 디렉터리에 있는 grub.cfg 파일입니다. 중요한 것은 이 파일은 결코 수동으로 편집해서는 안된다고 합니다. “update-grub” 명령을 통해서 변경 내용을 적용해야 하며, 이 파일은 다른 grub 설정 파일들을 변경/생성하는 근간이 된다고 하네요.

설정을 변경하기 위해서는 이제, 다른 파일을 편집해야 합니다. 이 파일은 다른 곳에 있는데, /etc/default/grub 라는 파일입니다.

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUB_CMDLINE_LINUX=""

# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entrys
#GRUB_DISABLE_LINUX_RECOVERY="true"

재밌는 것은 디폴트 엔트리 값을 숫자가 아닌 엔트리 이름으로 지정할 수 있다는 것입니다. 커널을 업데이트 받거나해서 메뉴의 개수가 바뀌면 번호값이 따라 바뀌지 못해서 그 때마다 menu.lst 파일을 수정해야 했던 (혹은 몰라서 그랬을 수도 있음, 충분히.) 경험은 더 이상 없을 듯 하네요.

라이브 시디에서 Grub2 복구하기

참고로 저는 설치가 완료되기 전에 귀신에 홀린 듯이 menu.lst 파일을 삭제한 관계로 아예 부팅이 되지 못했습니다. 아래 내용을 좀 미리 알게되었더라면 그러지 않아도 됐을텐데요 엉엉. 아무튼 여기서는 /etc/default/grub 파일의 설정을 어떻게 해야하는지 안다는 전제하에 설명을 해 두었네요. 당연히 파일을 날려 먹었다는 답이 없다는 이야깁니다. 평소에 백업을 잘 해두거나  /home 디렉터리를 다른 안전한 파티션에 두고서 아예 새로 설치하는게 가장 맘편하고 깔끔할 수 있겠다는 생각이 듭니다. 저처럼 대책없이 백업도 안하고 슥슥 잘도 파일들을 지우는 습성은 안 가지시는게 좋아요 ㅠㅠ

우선 grub 복구를 위해서는 라이브 시디가 필요합니다. 미리 하나 구워두는 건 정말 중요한 듯 하네요. 라이브 시디로 부팅한 후 터미널을 엽니다.

sudo fdisk -l

위와 같이 입력하면 어떤 디스크 장치들이 있는지 파티션 목록을 뽑아줍니다. 이 때 리눅스가 설치된 파티션이 나옵니다. 잘 눈여겨봐 둡니다. 제 경우에는 /dev/sda5네요

sudo mount /dev/sda5 /mnt

혹, /boot 디렉터리를 다른 파티션에 만들어 두고 사용중이시라면 이것도 마운트해 줍니다. 이 때에는 윗 부분과 바뀌면 큰일 난다고 합니다. fdisk -l 의 결과를 확인하고 확인하고 또 확인해야 합니다.

sudo mount /dev/sda7 /mnt/boot

이제 남은 장치들을 마저 마운트합니다.

sudo mount –bind /dev /mnt/dev

이제 루트 디렉터리를 변경합니다.

sudo chroot /mnt

이제 기존 리눅스가 설치된 파티션이 루트로 마운트 되었으니, 그냥 설정을 수정한다 생각하고 작업합니다. vi 나 nano를 통해  /etc/default/grub 파일을 편집합니다.

vi /etc/default/grub 혹은 nano /etc/default/grub

설정을 복구하였으면, 이제 변경된 설정이 적용되도록 합니다. 위에서 봤던 명령으로요.

update-grub

이제 MBR에 grub를 재설치합니다.

grub-install /dev/sda

만약 에러가 난다면 굴하지 않고, –recheck 옵션을 써서 다시 시도합니다.

grub-install –recheck /dev/sda (위에서 오류가 난 경우에만)

다 되었습니다. ctrl+D를 눌러 chroot 상태를 빠져나옵니다. 이제 마운트한 장치들을 마운트 해제하고 시스템을 다시 시작합니다.

sudo umount /mnt/dev && sudo umount /mnt

오늘의 교훈 -  vi 를 쓰면 정신 건강에 정말 안 좋은지 요즘 많은 영문 매뉴얼은 nano를 공식 추천한다.

20091214 :: 모질라 썬더버드3으로 업그레이드!!

브라우저 전쟁의 틈바구니

구글의 바쁜 행보로 미루어 보건데, 이제 확장 기능 갤러리도 베타 오픈(구글에게만 베타이고…)하였으니 구글 크롬은 이제 4.x대 버전을 정식으로 릴리즈 할 기세로 보입니다. 이에 올 연말에는 파이어폭스 3.6 (재밌는 CSS 및 대단한 몇 몇 API를 내장한)가 출시될 계획이라고도 하니 당분간 브라우저 업그레이드를 하는 재미도 쏠쏠할 듯 합니다. 이런 추세속에서 조금은 뜬금 없지만 모질라 썬더버드가 그 새로운 버전으로 돌아왔습니다. 사실 일반 사용자들의 대다수는 국내 포털이 제공하는 웹메일을 많이 쓰고 있고, 특별히 메일 클라이언트를 사용하는 일은 업무 때문에 아웃룩을 사용하는 분이 대다수라, 국내 사용자들 중에서는 (적어도 윈도 사용자 층에서) 아웃룩외의 전용 메일 클라이언트를 사용하는 경우는 좀 드문 듯 합니다. 저 같은 경우에는 처음에는 아웃룩을 쓰다가, 그 어마어마한 덩치(?)와 더불어 편지함의 갯수나 편지의 양이 많아지면 감당 못할만큼 느려지는 문제 때문에 (오피스 전체를 다시 깔아도 메일함을 입수-import-하게되면 또 느려지더군요) 결국 아웃룩 사용을 포기하고 썬더버드로 돌아왔습니다. (엄밀히 말하면 돌아온 셈입니다. 썬더버드는 예전에 따로 사용했던 적이 있거든요)

메일 클라이언트 쓰시나요?

사실, 메일 클라이언트의 기능은 거기서 거기라해도 과언이 아닙니다. 결국 메일을 받는 프로토콜은 POP아니면 IMAP이고, 메일을 보내는 프로토콜은 SMTP인데, 이러한 프로토콜과 관련된 기능 면에서는 서버에서 지원하는 기능이 어느 수준이냐에 좌우되기 때문에 대부분의 메일 클라이언트는 ‘메일 기능’과 관련해서는 대동소이 하다고 볼 수 있습니다. 그러다보니 어지간한 업무용 PC에는 MS오피스가 설치되면서 함께 설치되는 MS아웃룩이 기본으로 설치되게 되고, 그래서 자체적인 메일/메시지 전송시스템을 사용하지 않는 회사라면 거의 대부분이 업무용 메일로 아웃룩을 사용합니다.

이러한 상황에서 썬더버드와 같은 ‘비주류’ 메일 클라이언트를 쓰기란 사실 쉬운일이 아닙니다. 특히나 ‘익숙한 것’만 쓰려고 하는 국내 사용자들이 더더욱 별도의 메일클라이언트를 사용할 확률은 줄어든다고 볼 수 있습니다. 제 경우에는 앞에서도 말씀드렸지만 편지함 폴더-이 것은 하나의 메일 보관함 파일과 매칭됩니다-가 크기가 커지면 그 동작 속도가 무시무시할 만큼 느려지는 문제 때문이었습니다. 게다가 전 개인적으로 컨버전스니 올인원이니 하는 것들을 그다지 좋아하지 않습니다. 이 기능 저 기능 다 집어 넣다보니 덩치도 큰데, 그러한 기능 중에 한가지만 쓸 때에도 무거운 본체를 실행시켜야 하거나, 메일 클라이언트 같은 경우에는 거의 하루 종일 띄워 놓고 있어야 하다보니 부담스러운 것이 사실이지요.

썬더버드3의 달라진 점

썬더버드2 까지만 해도 사실 사용하는 방법은 아웃룩과 다를바가 전혀 없습니다. 아웃룩에서도 기본적인 POP 기능과 IMAP 기능을 지원하고 있고, 썬더버드가 이러한 기능들을 그에 못지 않게 지원하고 있지요. 사실 아웃룩을 쓰면서 이해할 수 없던 점 중 하나는 메일 규칙 설정 부분입니다. XP에 기본으로 번들되는 아웃룩 익스프레스보다도 메일 규칙을 정하는 레벨이 너무 대충입니다. 덕분에 훨씬 많은 개수의 메일 규칙을 만들어서 사용하는 것이 꽤나 불편했거든요. 썬더버드의 메시지 규칙은 다행히도 이것보다는 좋은 편입니다. 아웃룩이 조건 간의 AND 연산 밖에는 지원하지 않은 점을 고려한다면 훨씬 나은 편이라 할 수 있지요. 게다가 쓰지도 않을 확률이 다분히 큰 일정 관리라든가 하는 기능을 제거해서 훨씬 가볍습니다. 아, 물론 파이어폭스와 한 세트였던 메일클라이언트니만큼 확장기능이나 테마를 가져다 쓰는 것도 얼마든지 가능합니다. (중복 메일 제거 기능 같은 경우에는 필수입니다 ㅋ)

썬더버드3는 성능면이라든지 하는 부분에서는 그다지 큰 발전이 없습니다. (도입에서도 말씀드렸지만, 메일 클라이언트의 성능/기능은 메일 서버의 영향을 많이 받습니다.) 대신에 UI가 대폭 개선되었고, 사용자 설정 부분도 매우 좋아졌지요. 그럼 그 중에 몇 가지만 살펴 보도록 하겠습니다.

썬더버드3의 사용과 설치

설치

썬더버드2를 사용하고 있었다면 메뉴의 도움말에서 업데이트를 할 수 있습니다. 그렇지 않다면 Thunderbird3 으로 검색하여 다운로드 받습니다. 참고로, 썬더버드2까지는 mozilla.org에서 배포하였지만 썬더버드3으로 올라오면서 홈페이지 도메인이 mozillamessaging.com으로 변경되었습니다. 이곳에서 다운로드 받을 수 있습니다. (영문 페이지지만, 접근한 브라우저의 운영체제와 언어로케일에 따라 자동으로 한국어 버전을 다운로드하게 됩니다. 걱정마세요)

<클릭하면 썬더버드 홈페이지로 이동합니다>

그럼 설치를 진행하면 됩니다. 윈도우 버전의 경우에는 설치파일을 실행만하면 됩니다. 리눅스 버전의 경우에는 적당한 디렉터리에 압축을 풀고, thunderbird 디렉터리 내의 thunderbird 파일을 실행하면됩니다.

전 이미 설치를 해둔 상태라, 포터블 버전을 설치했습니다. 포터블버전은 portableapps.com 에서 배포하고 있습니다. 이 버전으로도 지속적인 업데이트가 가능하니 포터블 버전을 설치해서 쓰는 것도 개인적으로 추천합니다. 특히 윈도우에서는 메일 폴더나 각종 설정이 윈도우의 사용자 프로필 폴더 깊숙한 곳으로 숨어버리는 습성들이 있어서  그다지 추천하지는 않습니다.

처음실행

설치가 끝났으면 썬더버드3을 실행합니다. 썬더버드를 처음 실행하면 사용자 프로필을 생성합니다. 이 때 등록된 계정이 하나도 없기 때문에 계정을 먼저 만드는 마법사를 만나게 됩니다.

먼저 사용자의 이름과 메일 주소를 입력합니다. 이 때, 이름은 메일을 보낼 때 보낸 사람의 이름으로 표시됩니다. 업무 메일 등 공식적인 용도로 사용한다면 본명이나 영문명을 그대로 쓰는 것이 좋습니다. (물론 당연히 이는 추후에 계정 설정에서 수정이 가능합니다.)

사용자 계정의 자동설정

저는 제 gmail 주소를 입력했습니다. 썬더버드 3은 써보면 써 볼 수록 gmail에 최적화 되어 있다는 느낌을 받게 됩니다.

메일 계정 정보는 단지 메일 주소와 패스워드만을 입력했을 뿐인데, 메일 주소로부터 서버를 자동으로 찾고, gmail인 경우에는 위와 같이 자동으로 IMAP 가능 여부를 판독하고 포트 설정까지 자동으로 해 줍니다. 만일 메일서버가 IMAP를 지원하지 않는다면 자동으로 pop로 서버 이름을 변경하여 재시도하게 됩니다. 서버 이름은 몇 가지 많이 쓰이는 단어들을 가지고 있는 듯 하고, 조금 시간이 걸리지만 이것 저것 시도하면서 왠만한 경우에는 자신의 계정에 맞는 서버를 찾아서 자동으로 설정을 잡아줍니다. 만일 회사 내부의 자체 메일 서버를 사용하는 경우라면 보안 설정 및 포트 넘버를 못 찾는 경우가 생깁니다. 이 경우에만 수동으로 입력하면 됩니다. 혹은 중간에 이를 취소하고 바로 수동 지정을 시작할 수 있습니다.

아래는 이와 별개로 제 회사 계정을 사용해서 자동으로 메일 설정을 잡은 경우입니다. 보내는 메일을 제대로 잡지 못했습니다만, 이건 저희 회사 메일 서버가 보안 접속을 허용하지 않아서 그런 거라고 보여집니다. -_-;

메일 설정이 끝났다면 계정 생성 버튼을 눌러 계정 생성을 완료합니다. 자동으로 메일을 불러오기 시작합니다. IMAP를 사용하기 때문에 서버의 폴더 구조를 그대로 가져옵니다. 따라서 별도의 폴더를 생성할 필요는 없습니다. (물론 이것은 썬더버드의 기능이 아니라 IMAP를 지원하는 메일 서버라면 뭐라도 이렇게 될 겁니다.)

메일함이나 메일 리스트, 메일 본문을 볼 수 있는 화면은 사실 아웃룩과 큰 차이를 보이지 않습니다. 그리고 메일 폴더의 정렬 방식이나 노출 방식은 ‘마이그레이션 관리자’에서 바꿀 수 있습니다. 또한 IMAP 메시지 전체를 내려받아 동기화하는 것도 가능합니다. 이렇게되면 Gmail에 있는 모든 메일을 내 컴퓨터의 하드 디스크로 내려받아 폴더만 백업한다면 손쉽게 메일 백업이 가능해집니다. (Cool!)

마이그레이션 관리자

마이그레이션 관리자는 다음의 기능들을 관리하도록 해줍니다.

  1. IMAP 메시지 동기화 – 동기화한 메시지는 모두 하드디스크로 다운로드됩니다. 제 경우에는 Gmail에 현재 4기가 이상의 메일이 저장되어 있어서 쉽사리 다운로드하기가 힙듭니다. 이는 세부 설정을 통해 폴더별로 따로 따로 다운로드 받을 수 있긴 합니다. 내년이 되고 지금 하고 있는 프로젝트가 끝나면 프로젝트별로 폴더를 내려받아 백업 받아 두어야겠지요.
  2. 새 툴바 사용 – 썬더버드3의 툴바는 상당히 간소해진 모양입니다. 회신/삭제 등의 메일 메시지와 관련된 툴바 버튼은 상위 툴바에서 메시지 헤더 쪽으로 위치를 옮겼습니다. 개인적으로 새 UI가 Gmail 에서 사용되는 UI와 비슷해서 선호하는 편입니다. 이 것이 마음에 들지 않는다면 고전적인 툴바로 돌아갈 수 있습니다.
  3. 스마트 폴더 – 스마트 폴더는 하나의 프로필에서 메일 계정이 여러 개인 경우 ‘받은 편지함’을 통합하여 사용할 수 있도록 합니다. 역시나 받은 편지함을 일일이 다른 폴더들로 옮겨주는 작업을 하고 있다면, 헷갈릴 수 있다는 문제는 있지만 이 경우에는 메시지 필터를 사용할 것을 강력하게 권장합니다. 그러나 전 그냥 예전 폴더 구조가 좋습니다.

탭 브라우징 지원

이런 설정의 간편함 외에도 썬더버드3는 2에 비해 다양한 형태의 사용자 UI개선이 있었습니다. 우선, 탭 브라우징이 적용되어 있다는 것이지요. 메일 리스트에서 더블 클릭한 메일은 새 탭으로 뜹니다. 뿐만 아니라 마우스 휠로 메시지들을 클릭하면 여러 개의 탭에 각각 메일이 보입니다. 이는 여러 메일의 내용을 각각 비교/참고해야 할 경우에는 상당히 편리하고 유용해 보입니다. 또한 메일 본문을 미리보는 우측 하단 창은, 리스트에서 여러 개의 메일을 선택(shift/Ctrl 클릭)하면 각 메일의 본문 압 부분만 요약하여 보여줍니다.

썬더버드3의 편의 기능

앞서 이야기한 탭 브라우징의 경우에는 정말 강력한 편의 기능이라 할 수 있겠습니다. 특히 프로젝트 말미나 문제가 될만한 이슈가 터진 경우에 이런 저런 히스토리를 정리해볼 필요가 있을 경우에는 상당히 편리하게 사용할 수 있겠더군요. (최근까지는 브라우저를 창마다 띄워놓고 각각 보는 만행으로 해결..) 게다가 서버 설정을 메일 주소만 입력하여 자동으로 맞춰주는 경우도 정말 편리합니다.

그리고 첨부파일을 빼먹고 메일을 발송하는 사고(?)를 미연에 방지할 수 있는 기능이 추가되었습니다. Gmail 실험실에서 제공하는 기능과 유사한데, 보다 지능적입니다. 지메일이 제공하는 기능은 첨부파일 이름을 명시해야 감지하는 반면에, 썬더버드3에서는 특정 단어를 입력해두면 첨부파일이 첨부되지 않은 경우에 경고를 보여줍니다. “첨부한” ,”검토” 등의 단어를 등록해주면 좋을 듯 하네요.

그리고 메시지에 태그를 지원합니다. 물론 이는 ‘플래그’라는 이름으로 아웃룩에서도 지원했습니다만, 제한된 갯수가 아니라 사용자가 얼마든지 추가할 수 있으며, 하나의 메시지에 두 개 이상의 태그를 붙이는 것도 가능합니다. (음 아웃룩에서도 이러한 기능은 지원이 안된 걸로 알고 있습니다. 다만 색이 다른 플래그를 하나만 달 수 있는 걸로 기억합니다만, 제가 사용하던 버전이 2003이었으니 이 후에 개선됐는지도 모르겠네요)

주소록 수집 기능도 꽤나 쓸만합니다. 자신이 메일을 보낸 대상은 기본적으로 주소록에 추가됩니다. 나중에 그 사람에게 다시 메일을 쓰려고 할 때는 자동 완성 등으로 쉽게 입력할 수 있는 등의 편의성이 있지요. 이에 대해서는 ‘빠뜨린 사람은 없는지’, ‘그 철수가 이 철수 맞는지’ 등과 같이 gmail에서 지원하는 기능이 지원되면 좋겠다는 생각이 듭니다만, 왠지 부가 기능으로 구현되지 않을까 싶습니다. (무슨 기능인 고 하니, 특히 업무 메일에는 A라는 사람에게 보내는 메일을 평소에 B라는 사람에게도 같이 보냈다면, A를 받는 사람으로 입력한 경우에 B의 이름을 추천해주는 기능입니다. 또는 동명 이인의 경우에 이름외에 메일 주소를 비교하여, 동명이인이 있음을 경고해주는 기능입니다. 꽤 재밌습니다.)

메일 사용시 몇 가지 팁

끝으로, 썬더버드에 관심이 있든 없든간에 몇 가지 메일 사용시의 팁을 알려 드릴까 합니다. 상당히 기본적인 내용이기는한데, 뭐 그래도 생각난 김에 소개해 드립니다.

수신인의 이름을 쓰자

메일을 보낼 때  anyname@mail.com 과 같이 주소만 쓰는 것이 아니라 다음과 같이 홍길동<anyname@mail.com> 의 형태로 “사람이름 <메일주소>”와 같이 씁니다. 그러면 메일 서버는 자동으로 꺽쇠 괄호안의 메일 주소만을 인식하여 메일을 보내게 되고, 받는 측에서는 받는 사람 란에 메일 주소가 아닌 자신의 이름이 보여지게 됩니다. 이는 클라이언트의 특별한 기능이 아니라 메일 프로토콜들이 원래 지원하는 기능이라, 모든 메일 서비스의 종류에 상관없이 쓸 수 있습니다. 만약, 수신인 주소를 자동으로 저장하는 기능을 지원하는 메일 서비스를 사용한다면, 나중에는 사람이름만으로도 메일을 보낼 수 있습니다. (주소를 찾기 위해 주소록을 뒤적거리지 않아도 된다는 이야기입니다.)

메일을 지운 뒤에는 메일함을 압축하자

메일 서버는 물론이고 아웃룩과 같은 메일 클라이언트는 개별 메일 하나 하나를 파일로 저장하는 것이 아니라, 메일함 하나를 하나의 파일로 보관하게 됩니다. 이 파일 속에 여러 개의 파일을 일렬로 붙여 넣는 것이지요. 용도별로 메일을 분류하기 위해 다른 편지함을 만들어 메일을 분산시키게 되면 메일의 총 용량은 동일하지만 하드 디스크의 크기는 거의 2배로 낭비될 수가 있습니다. 이는 메일을 추가로 수신하여 메일함의 크기가 커진 뒤에 메일을 삭제하거나 옮기게 되면 메일함 파일은 그 내용이 공백문자로 메워질 뿐 그 크기가 그대로 남기 때문입니다. 그래서 ‘편지함 압축’을 종종 수행해 줘야 합니다. 이 ‘편지함 압축’은 실제 데이터를 압축하는 것이 아니라,  그 메일함 내의 빈 공간을 없애는 일종의 조각모음과 같은 기능이라 생각하면 됩니다. 메일을 지우고 옮기는 동작을 자주 수행한다면 종종 해줄 필요가 있습니다.

아웃룩 익스프레스는 가급적 사용하지 말자

아웃룩 익스프레스를 업무용 메일로 사용하는 분들이 종종 있습니다. 이런 분들이 메일을 받으면 – 첨부파일이 있는 경우에 메일이 winmail.dat의 형태로 변경되어 수신됩니다. 이 winmail.dat을 열어보기 위해서는 해당 메일을 아웃룩 익스프레스로만 열어야 합니다. 심지어는 일반 오피스 아웃룩으로도 해당 메일을 열어볼 수가 없습니다. 이는 메일을 패키지 하는 방식의 문제로, 아웃룩 익스프레스를 사용하지 않는 것 외에는 방법이 없습니다. 물론 메일을 수신하는 측에서는 별도의 유틸리티를 사용해서 해당 메일의 본문과 첨부파일을 추출할 수 있습니다만, 이는 알집으로 압축한 파일을 보내는 것과 마찬가지로 상대방에게 민폐를 끼치는 습관입니다. (이런 분들이 계신다면 썬더버드로 갈아타실 것을 강력하게 추천해 드립니다. 썬더버드는 사용중인 다른 메일 클라이언트를 발견하면 해당 클라이언트의 메일과 주소록 등의 정보를 모두 반입하여 사용환경을 구성해 줍니다.)

IMAP와 POP?

메일 서버가 메일을 내려보내주는 프로토콜의 방식입니다. POP의 경우에는 메일 전체를 파일 데이터의 형태로 클라이언트로 내려보냅니다. 역시 설정에 따라 파일을 내려보낸 다음에 서버에 그대로 남겨둘 수도 지울 수도 있습니다. 즉 우체국에 사서함을 만들어 놓고 우체국에 들릴 때마다 메일을 한 아름씩 안아 오는 것을 상상하시면 됩니다. IMAP는 이와 다르게 집에서 우체국의 사서함을 바로 액세스 하는 방식입니다. 즉 컴퓨터마다 폴더를 새로 만드는 것이 아니라, 폴더 구조를 우체국에 만들어 놓고, 실제 데이터는 모두 우체국에 두는 것이지요. 마치 인터넷 게시판과 같이 사용자는 먼저 모든 메일의 ‘제목’을 내려 받아, 어떤 메일이 있는지 확인한 후 본문을 보고자하는 메일을 선택하면 그 때마다 필요한 메일 본문을 다운로드 받는 방식입니다. 이는 여러 군데서 각각 다른 컴퓨터를 통해 메일에 접근하는 경우에 메일함 관리를 매우 편하게 만들어 주는 효과가 있습니다만, 메일을 검색하거나 하는 작업에서 약간의 속도저하등 문제가 있을 수 있습니다. (물론 그래서 메일 전체가 아닌 헤더만 내려 받아 동기화하는 방법을 사용하는 것도 효과적일 수 있습니다.)

오늘은 여기까지, 다음에 또 기회가 된다면 메일 클라이언트의 고급팁(?)을 또 소개해 드리도록 하겠습니다.

20091212 :: 구글 크롬 확장 기능의 본격화

구글 크롬 확장 사용

구글 크롬이 미끈하고 슬림하게 등장하였을 때, 저를 비롯한 많은 구글빠(비하의 의미로 쓴 표현은 아닙니다)들이 ‘역시 구글’을 연발했더랬습니다. 아 그렇지만 무언가 허전한 이 느낌은 뭘까요. 바로 파이어폭스를 주구 장창 (개인적으로는 파이어폭스를 7년째 사용하고 있습니다;;;) 사용하면서 손에 익었던 마우스제스처를 비롯한 확장 기능이 없다는 점이었습니다. 확장 기능, 확장 기능, 확장 기능. 차가운 밤 바람이 볼을 스칠 때 촉촉한 눈을 들어 별을 바라보며 세 번을 뇌아려 봅니다. 하지만 확장이 덕지 덕지 붙어서 무거워지는 구글 크롬 브라우저는 더 이상 구글 크롬 브라우저가 아닐 것 같았습니다. 하지만 구글은 공식적으로 크롬의 확장 기능을 넣을 거라는 발표를 했고, ‘어찌됐건 기다려 보자’고 생각했지요.

변종의 등장

하지만 많은 구글빠들은 기다릴 수가 없었습니다. 구글이 넉살좋게 ‘기다려보라’며 거드름을 피우는 동안 사람들은 구글 크롬의 모태가 되는 오픈소스 브라우저 ‘크로미움’에 눈길을 돌리기 시작했습니다. 그래서 크로미움의 소스를 가져다가, 확장 기능을 아예 넣어버린 변종들이 속속 등장하기 시작했습니다. 솔직히 말하자면 그 변종들이 구글 크롬 자체를 뜯어고쳤는지, 크로미움의 소스를 사용했는지는 저로선 관심이 없었습니다. 네 그런 변종들은 더 이상 ‘구글 크롬’이 아니었기 때문입니다.

그러는 와중에 꿋꿋이 “오리지널”만을 고집하며 사용하다보니, 점점 익숙해지기 시작합니다. 마우스제스쳐는 그저 ‘중독’이었을 뿐, 없어도 살만하다는 사실을 다시 깨닫기 시작합니다. 여전히 웹페이지의 반짝이는 광고들은 거슬립니다만, 이미지나 플래시를 없애버리는 자바 스크립트를 북마크바에 등록해 놓고 과감하게 다 없애 버리고 홀가분한 마음으로 텍스트에 집중하는 웹 서핑 습관을 배웁니다.

새로운 문이 열리다, 베타 채널

그러던 와중에 드디어 우리에게도 기회가 옵니다. 테마 – 사실 테마라고 해봤자 구글 크롬은 웹 페이지 영역을 제외한 영역이 정말 적어서 좀 아리송… – 를 바꿀 수 있는 버전이 베타 버전으로 등장합니다. 구글 크롬의 경우에는 이런 기능들이 개발채널이나 베타 채널에 등재된 이후 정말 빠르게 안정화 버전에 적용이 되기 시작합니다. (아무래도 크롬OS와 관련하여 버전업을 급격히 진행했을 것으로 추측됩니다) 얼씨구나, 이제 개발채널을 사용하면 리눅스에서도 크로미움이 아닌 구글 크롬을 사용할 수 있습니다. 그리고 “그런데, 그것이 실제로 일어났습니다.”가 되었습니다. 구글 크롬이 확장 기능을 지원하는 버전을 드디어 내 놓았습니다. 소문도 빠르지, 사람들은 벌써 이런 저런 확장을 만들어서 내 놓고 있더군요. 아, 그런데 왠지 또 신뢰가 가지 않습니다. 어차피 확장 기능은 외부 인력들이 대부분 만들텐데, 아이콘이 별로 안 이쁜 거 같습니다. 게다가 플러그인 검색 사이트의 디자인도 마음에 안들고, 뭐 좀 그렇습니다. 조금 기다려 보도록 합니다.

그러던 와중에 Adsweep이 발표됩니다. 시작 옵션에 이상한 파라미터를 넣어야 하지만 상관 없습니다. 광고가 좀 줄어드니 살만해 집니다. 그러다가 언제부턴가 그냥 기본으로 확장 기능을 인식하고 설치가 가능해 집니다. 그리고 곧, 최고, 최강의 완소 확장인 Xmarks가 구글 크롬용 확장 기능을 발표합니다. 눈물이 납니다.  암호를 동기화할 수 없지만 크롬에 내장된 병신같은 북마크 동기화 기능보다는 훨씬 낫습니다. 광고도 일종의 정보니까 그냥 몇 개 정도는 좀 보면 됩니다. 그런데 버전업을 계속하다 보니 리눅스에서 뜨는 구글 크롬의 스피드가 미칠 듯이 빠른 것 같습니다. 아이콘 클릭하고 1초도 안돼서 뜨는 것 같습니다. 이런 맙소사, 우분투 리눅스 최고 주력 어플리케이션이 지뢰찾기보다 웹브라우저가 더 빨리 뜹니다. (여기서도 구글 크롬 OS 생각이 납니다.) 이 때쯤 우분투 리눅스에 서울 남산체를 설치합니다. 이제는 윈도XP에서 나눔 고딕을 된 화면을 보면 눈이 아픕니다. 그렇다고 윈도에서 서울 폰트를 쓰니 마음이 아픕니다. 뭔 글자 렌더링이 이렇게 거지 같을 수가 없습니다.

구글 크롬 확장 갤러리 오픈

그리고, 드디어 구글 크롬 확장의 서막이 열렸습니다. 몇 일전 업데이트 후에는 크롬 확장을 추가한다고 하는 페이지가 휑하니 ‘확장 모집’ 이런 분위기였는데, 지금은 완전 그랜드 오픈입니다.

이렇게 많이 쌓아두고 한 번에 오픈할 줄은 정말 몰랐습니다. 아무리 빨라도 이것 저것 덕지 덕지 붙이는 건 싫어서 조심스럽게 하나 하나 골라 봅니다. 아, 그런데 눈도 아프고 졸립네요. (지금은 새벽 세시 반입니다) 확장 쇼핑은 아무래도 내일 해야 할 것 같네요.  오늘은 왠지 좋은 꿈을 꿀 것 같은 기분입니다.

여러분도 좋은 밤 되세요. 그럼 안녕

ps. 현재 사용 중인 크롬 확장

참고로, 현재 사용중인 파이어폭스 확장

  • Xmarks Bookmark Sync
  • Adblock Plus
  • Fire gesture
  • Forecast fox
  • LightSMS

구글 크롬 채널 변경 도구 2.0 : http://chromium.googlecode.com/files/chromechannel-2.0.exe
[다운로드 > 실행 > Dev 선택 후 저장 > 구글 크롬 실행하여 'Google Chrome 정보' 선택하여 업데이트 확인]