Media Log


개발자들은 스타일에 관한 이야기를 하는 것을 좋아합니다. 이 문제는 마치 "무엇이 진정한 하나의 에디터일까"에 대한 이야기처럼 자주 입에 오르내립니다. 마치 이견이 있는 것처럼 말이죠. 답은 이맥스입니다. - Effective STL에서 컨테이너들의 범위 멤버 함수를 사용하는 것은 단일 요소 멤버 함수를 사용하는 것보다 모든 면에서 좋기 때문에 이견이 있을 수가 없다는 것을 설명하면서.
나는 비록 Vim을 더 좋아하지만 스캇 마이어스의 이 말을 듣고 이맥스를 배우고 싶다는 욕구가 미친듯이 몰려왔었던 때가 있었다. 비록 실패로 끝나고 말았지만.
유닉스.리눅스 프로그래밍 필수 유틸리티 - 8점
백창우 지음/한빛미디어

이 책은 2004년도에 1판이 발행되었고, 최근에 2판이 나왔다.
외국에는 1/E, 2/E 처럼 1판 2판이라고 표기하는데, 국내 출판사들은 개정판이라는 용어를 좋아하는 것 같다.
개정판이 뭐지? 2판이라는 말과 뭐가 다르지? 하고 문득 궁금해서 사전을 찾아보았다.
기존 내용이 수정된 것 뿐만이 아니라 subversion 처럼 완전히 새로운 장들이 추가되었는데도 개정판이라고 하는 것은 좀 이상해 보인다.
내가 출판사 사장이면 개정판이란 말은 쓰지 않고 항상 2판 3판 이라는 용어를 사용하겠다. 기든 아니든 그게 장사하는데 더 낫지 않겠는가. 크크.

편집기인 vim 부터 시작해서 make, gcc, gdb, 그리고 형상관리툴인 svn과 cvs까지도 다루어 주므로 리눅스에서 프로그래밍을 시작하는 사람들에게는 필수이자 안성맞춤인 책이라 할 수 있겠다.

vim 챕터는 별로 기대를 하지 않았는데, 꽤 괜찮았다. 다른 책들과는 다르게 딱딱하고 형식적이지 않고 실제로 많이 쓰이는 ctags나 cscope 같은 외부툴과 몇가지 유용한 플러그인들을 함께 소개해주어서 아주 좋았다. 1판이 나왔을 때보다 지금은 좋은 플러그인이 훨씬 많이 나왔는데, 이런 것들을 좀 찾아보고 개정판에 실어주었다면 두말할 나위 없이 더 좋았을 것이다.

책 전체적으로는 도구의 여러 옵션들과 그것들을 이해하기 위해 알고 있어야 할 기본 지식을 따로 설명해주므로 누구든지 읽을 수 있도록 구성되어 있다.
하지만 저자가 OS도 만드는 등 임베디드 쪽에서 많이 일을 해서 그런지 임베디드 리눅스에 치중된 내용을 너무 많이 다루는 것 같은 느낌이 강하게 든다.
사실 리눅스 개발자 중에는 임베디드 개발자도 많지만 일반적인 서버 개발자도 그만큼이나 많지 않은가. 이런 사람들은 필요한 내용들만을 잘 골라내서 읽어야 할 것이다.

시간이 많이 흐른만큼 애플리케이션들도 많은 변화가 있었는데, 개정판에서는 이런 것들이 많이 반영되지 않은 것 같아서 아쉽다. 우분투 사용자를 배려해서 우분투에서의 설치 방법 또한 제공해주는 것은 좋았는데 우분투 버전이 7.04인가 그랬다. 맙소사. 2010년 책인데.
또한 CVS 같은 구식 툴은 과감하게 제거해버리고 svn에 git를 추가해서 설명해줬으면 더 좋았을 것 같다. 최근에는 아주 많이 사용되고 있는 cmake 도 2판에서는 꼭 설명되었어야 할 도구인데 빠져있는 것이 참 아쉽다.

마지막으로 이 책의 표지는 참으로 맘에 안든다.
예전에, 도서관에서나 회사에서 이 책의 1판 표지를 보면 항상 책 내용을 훑어보고 싶도록 나를 이끌었었는데, 이번 개정판은 내용은 전판보다 보강되었을지 몰라도, 워드나 엑셀의 표지에나 어울릴법한 아동틱한 표지로 만들어버렸다. 최근에 한빛미디어에서 나오는 책들은 대부분 이런 아동틱한 밝은 디자인의 표지인데, 개인적으로 이런 표지의 책들을 보면 별로 배울 것이 많이 담겨있지 않을 것 같아 꺼려지게 된다.

그럼 멋진 표지를 가진 책은 무엇이냐고?
지금 딱 생각나는 책이 하나있는데 바로 이런 책이다.
원서가 더 멋있긴 하지만 한글판도 참 잘 나온 것 같다. 하드커버로 나온게 좀 싫었지만.



이 사이트에서는 위 스크린샷처럼 CPU들의 성능을 벤치마킹해서 성능 점수를 기준으로 정렬해서 보여준다.

성능에 대한 수치는 절대 수치이기 때문에, 앞으로 더 좋은 제품이 나와도 기존 값은 변하지 않을 것이므로 이전에 가지고 있던 머신과 수치를 비교해보는 것도 재밌다.

예전에는 바보같게도 데이터를 이미지로 올려서 원하는 제품을 찾기가 너무 힘이 들었는데, 언제부턴가 텍스트로 정보를 올려주기 시작했다.

다음은 내가 위 사이트를 보고 가격대 성능비가 가장 좋은 CPU를 고르는 방법이다.

  1. 위 페이지에 들어간다.
  2. Ctrl + A를 눌러서 전체 복사한다.
  3. Vim 에디터에 붙여 넣는다.
  4. :set ts=48
  5. /$\d\d\.


물론 맨 위에 발견된 제품이 가장 좋다.
나는 10만원 정도의 CPU를 선호하기 때문에 위처럼 찾아봤다.

컴퓨터를 사기 전에는 꼭 한번 이 곳을 둘러보고 사는 것이 좋지 않겠는가?

'에세이' 카테고리의 다른 글

한빛 리더스 2기 모집  (0) 2010.11.10
최고의 미드, 24시  (10) 2010.09.24
자판기 동전 교환의 비밀  (7) 2010.08.19
예스24에서 중고책 팔기  (2) 2010.05.27
김상형씨의 구인 광고  (2) 2010.05.13

Vim 7.3 released!

2010. 8. 16. 12:50 | Softwares
오랜 기다림 끝에 Vim 7.3릴리즈 되었다.
새로 추가된 기능은 다음과 같으며 수많은 버그들이 수정되었다고 한다.

The most notable additions since 7.2: 
- Persistent undo and undo for reload 
- Blowfish encryption, encryption of the swap file 
- Conceal text 
- Lua interface 
- Python 3 interface 

Enjoy Vim!
원래 파이어폭스는 내가 가장 좋아하던 브라우저였는데, 크롬 개발자 버전 4.0이 나올 때부터 쯤인가 조금씩 조금씩 크롬을 더 많이 사용하기 시작했다. 그래서 이제는 항상 크롬만 쓰는데, 미친듯이 빠른 이 속도는 어느 브라우저도 따라올 수가 없다.

크롬이 3.0부턴가 확장 플러그인을 지원 하면서부터 많은 플러그인들이 개발되기 시작했다.
내가 가장 좋아하는 것은 vimium인데 vim의 키 바인딩으로 브라우징 할 수 있도록 해준다.

vim을 좋아하는 사람이라면 누구라도 좋아할 수 밖에 없을 것이다.

  • 현재 페이지에서 링크 따라가기.
  • 새 탭으로 링크 따라가기.
  • 위 아래로 이동. 앞 뒤 탭으로 이동. 앞 뒤 페이지 등으로 이동.
  • 탭 닫기. 닫은 탭 다시 복구하기.
  • 빠른 검색.

자주 쓰는 이런 기능들을 모두 키보드로 조작할 수 있다. vim이 그렇듯이 처음쓰면 어색하지만 점점 편리해질 것이다.




잘 만들어진 프로그램은 어디에 가져다 붙혀도 척척 잘 들러붙나보다.

VS2010에서는 VC개발자들에게 큰 변화가 있었는데, 그것은 단연 C++0x이다.
하지만 그만큼이나 욕심나는 것은 아주 쉽게 vim을 붙여서 쓸 수 있다는 것이다.

vsvim이라는 프로젝트가 있는데, 마이크로소프트에서 일하는 누군가가 혼자서 만들었으며 VS2010을 사용한다면 갤러리에서 무료로 다운받아서 쉽게 사용해볼 수 있다. 꼭 VS2010이상을 사용해야만 한다.

충돌나는 키들이 꽤 많기 때문에 자신의 선호에 맞게 잘 정리해줘야 할 것이다.


요새는 오픈소스 애플리케이션을 많이 쓰고 있다.
최근 1년여 동안 내가 그동안 잘 사용했던 많은 애플리케이션들을 오픈소스 애플리케이션으로 대치했다.

하나씩 그 이유와 장단점을 살펴보면,

Internet Explorer -> Firefox
나는 2.0.0.x 부터인가 Firefox를 썼던 것 같은데, 그 때는 탭기능 하나만을 좋아했다. 익스플로러에서는 Ctrl 키를 누르고 하이퍼링크를 클릭해야 탭으로 열리고 그렇지 않으면 새창으로 열리는 경우가 많았던 것 같은데, 파이어폭스는 언제나 새탭으로 잘 열려서 그게 좋았다.

그 때 까지만 해도 익스플로러랑 파이어폭스를 반반씩 사용했었는데,
3.0 부터는 확실히 파이어폭스만을 쓰기 시작했다.

내가 파이어폭스 3.0 에서 가장 좋아하는 기능은 비밀번호 저장기능이다. 대화상자 형식으로 비밀 번호 저장 여부를 물어보지 않고, 사용자의 페이지이동을 방해하지 않은채 위에서 살짝 내려왔다가 쏙 들어가는 그 기능 때문에 익스플로러를 쓸 수가 없다.
비밀번호가 정확히 기억나지 않을 때 비밀번호를 입력한 후에 어떤 대화상자가 떠서 이 비밀번호를 저장하겠습니까 하고 물어보는 것은 아주 사용자를 고민되고 짜증스럽게 만들어준다. 파이어폭스는 비밀번호를 입력한 후에 로그인이 성공해서 다음 페이지로 넘어가는걸 눈으로 확인하고 나서 Remember 버튼을 누를 수 있다.
또 다른 좋아하는 이유 중 하나는 주소창 이다.
자주 가는 페이지 순으로 저장해놓는 것도 마음에 들고,
http://google.com/groups 와 http://groups.google.com 같이 햇갈리는 주소에 대해서 고민하지 않고 groups라고 입력하면 이전에 갔었던 기록에서 찾아서 나타내주는 이 기능이 아주 맘에 든다.

Editplus, Ultraedit -> gVim
vim으로 에디터를 바꾸게된 결정적인 이유는 로그파일을 살펴볼 때 원하는 문자열에 하이라이팅을 시켜놓고 쉽게 찾아볼 수 있기 때문이었다.
서버 로그를 볼 때 여러 쓰레드가 섞여서 적어 놓은 파일을 보고 있자면 눈알이 빠질 것만 같은데, 이럴 때 쓰레드 번호에 쉽게 하이라이팅 시켜놓고 해당 쓰레드의 코드 실행을 편하게 볼 수 있어서 좋았다.
한번 vim을 쓰다보니깐 크랙 버전을 구해 Editplus나 울트라 에디트를 설치하는게 너무나 귀찮아져버렸다. 또 커다란 파일을 다룰 때의 퍼포먼스나 편리한 검색 기능들이 다른 에디터로 돌아가지 못하게 만들어버렸다.

아웃룩 리더기 -> 구글 리더기
오픈 소스는 아니지만 어쨌든.
나는 RSS를 구독할 때 아웃룩에 있는 리더 기능을 사용했었는데,
집과 회사에서 동기화가 안되는게 가장 견디기 힘들었다.
그래서 나는 웹기반 서비스 중에 구글 리더기를 선택했는데,
구글 리더기에서 가장 좋은 점은 내가 관심있어하는 분야의 블로그를 자동으로 찾아서
추천해주는 기능이었다.
나는 현재 200여개 정도의 블로그를 구독하고 있는데, 이 중 절반 정도는 구글 리더기가 추천해준 블로그들이다.

Windows Vista -> Ubuntu
비스타에서 리눅스로 바꾼 이유는 그냥 심심해서, 라고 하는게 맞겠다.
어느날 집에서는 리눅스가 쓰고 싶다 생각이 들어서 우분투를 깔아놓고 쓰기 시작했는데,
처음에는 많이 불편해서 비스타로 자주 재부팅 했지만 이제는 익숙하게 잘 쓰고 있다.
- 그렇다곤 해도 리눅스 데스크탑은 아직 갈 길이 한참 멀었다.
얼마전부터인가 다른 컴퓨터들의 바탕화면이 하나둘씩 까만색으로 변한 것들을 볼 수 있었는데, 나는 리눅스로 바꾸길 아주 잘했다고 생각했다.

vmware -> Virtualbox
우분투 안에서 윈도우즈를 띄우기 위해 VirtualBox를 선택했다.
이유는 물론 무료로 쉽게 구해 설치 할 수 있기 때문이었다. 성능 따위야 좀 떨어지면 어때 라고 생각했었지만, vmware를 사용했을 때와 별반 다름없이 아주 잘 쓰고 있다.

MS Word, Excel -> Google docs
나는 애플리케이션들을 다루는 능력이 거의 컴맹 수준이라 기획팀 여자들이 나를 자주 놀리곤 하는데,
내가 워드나 엑셀에서 사용하는 기능의 95%는 글씨 크기 조정, 글씨 두껍게 만들기 정도이다.
Google docs라는 것을 한 번 사용해보고 난 후에 나는 갈아타지 않을 이유가 아무것도 없다는 것을 깨달았다.
내가 할 수 있는 모든 것을 Google docs에서도 할 수 있었으며, 게다가 윈도우즈나 리눅스에서, 또 집이나 회사에서 역시 잘 사용할 수 있다.
Sun의 OpenOffice도 좋다고 하지만 나는 사용하지 않는다. 어짜피 글씨 두껍게 밖에 못하는거......

대충 정리가 된 것 같다.
내가 오픈소스 애플리케이션을 더 사랑하게된 이유,
1. 불법 프로그램을 다운받아 시디키를 넣고 크랙하지 않아도 된다.
2. 공식 페이지에서 쉽게 다운로드 받을 수 있다.
3. 사용하는데 있어서 불편함을 모르겠거나 상용프로그램보다 훌륭하다.

그리고 위의 것들을 제쳐두고 내가 가장 좋아하는 이유 중 하나인데,
바로 업데이트가 빠른 간격으로 잘 된다는 점! 나는 개발이 중단된 프로젝트는 절대 사용하지 않는다. 업데이트하는 맛이 없으면 어떻게 쓰라고.

이 외에도 좋아하는 프로그램들이 꽤 많이 있는데, 그것들은 사용자 입장에서 쓰는게 아니라 개발자로써 사용하는 것들이기 때문에, 다음 기회에.