Media Log

[분류 전체보기]에 해당되는 글 275

  1. h 능률적인 프로그래머 -닐 포드 2010.02.04
  2. h pragma message 지시어를 통한 실수 방지 테크닉 2 2010.01.13
  3. h Absolute path와 Canonical path의 차이점 3 2010.01.13
  4. h 2009년 최고의 프로그래밍 언어, Google의 Go 3 2010.01.10
  5. h More Joel on Software -조엘 스폴스키 1 2010.01.07
  6. h 대한민국 IT사 100 -김중태 2010.01.07
  7. h 제 5회 알라딘 리뷰 대회 3 2009.11.01
  8. h aMule, 리눅스에서 쓸 수 있는 당나귀 클라이언트 3 2009.11.01
  9. h 이제는 작은 것이 큰 것이다 -세스 고딘 1 2009.11.01
  10. h lightSMS, 파이어폭스에서 무료문자 쉽게 보내기 3 2009.09.23
  11. h boost 라이브러리로 커맨드 라인 파싱 쉽게 하기 1 2009.09.12
  12. h 구글 크롬 4.0 7 2009.09.12
  13. h 구글, 신화와 야망 -랜달 스트로스 4 2009.08.10
  14. h 임요환의 아름다운 열정 4 2009.07.14
  15. h 천년의 금서 -김진명 1 2009.07.05
  16. h TR1을 이용한 C++에서의 정규식 사용 3 2009.06.30
  17. h 러프 -아다치미츠루 7 2009.06.26
  18. h 특이점이 온다 -레이 커즈와일 4 2009.06.21
  19. h SwingX 1.0 has been released. 1 2009.06.19
  20. h 열정을 경영하라 -진대제 2009.05.16
  21. h 프로그래밍 얼랭 -조 암스트롱 3 2009.05.11
  22. h SK브로드밴드 인터넷 + SK텔레콤 이동전화 요금 할인 2 2009.05.05
  23. h 크리스탈 리포트 2008 -백영일 저 2009.05.02
  24. h 네이트온에서 상대방이 자신을 삭제/차단했는지 알아내는 방법 6 2009.04.27
  25. h 세상을 바꾼 32개의 통찰 -제시카 리빙스턴 1 2009.04.26
  26. h 빌게이츠, Nextpage - 메리 조 폴리 2009.04.06
  27. h Speed Java - 한동호 저 2 2009.03.26
  28. h 강컴 리뉴얼, RSS 지원. 4 2009.02.22
  29. h 구글을 지탱하는 기술 -니시다 케이스케 4 2009.02.20
  30. h 정규 표현식 완전 해부와 실습 -서환수 역 2 2009.02.19
능률적인 프로그래머 - 8점
닐 포드 지음/지&선(지앤선)

이 책은 아주 재미있고, 가볍게 읽을 수 있을만한 책이다.
프로그래머를 위한 책이지만 프로그래밍 기술에 대한 이야기는 없으며, 오직 어떻게 해야 작업능률을 올릴 수 있을지에 대해 초점이 맞추어져 있다.

능률적인 프로그래머란,
같은 작업에 대해서 다른 사람보다 더 쉽고 빠르게 할 수 있는 능력을 가진 프로그래머라고 할 수 있겠다.

똑같은 프로그램을 남보다 더 빨리 짤 수 있는 프로그래머 역시 능률적인 프로그래머라고 할 수 있지만, 이 책에서는 그런 프로그래머가 되는 방법을 다루지는 않는다.
그것보다는 '똑같은 코드를 어떻게 더 빨리 입력 할 수 있는가'와 같은 주제가 이 책에서 말하고자 하는 내용이다.

예를 들어, 마이크로소프트 워드 프로그램을 띄우는데 어떤 사람은 시작 프로그램에서 찾아서 실행시키고, 어떤 사람은 바탕화면에서 더블클릭해서 실행하고, 또 어떤 사람은 단축키로 등록해놓고 실행시킬수도 있을 것이다.

이 책에서는 마지막 사람을 능률적인 프로그래머라고 부르며, 능률적인 프로그래머가 되기 위한 여러 방법들, 그리고 그것을 도와주는 많은 애플리케이션들을 덤으로 배울 수 있다.

나는 이 책에서 가르쳐주는 많은 유용한 애플리케이션들의 웹사이트를 다 찾아가봤는데, 조금 불만이었던 것은 책에서 설명한 것만큼의 기대에 못미치는 조잡한 프로젝트들이 많았다는 것이다. 물론 Subversion이나 Vim같이 이미 널리 쓰이는 메이저 프로덕트들은 제외하고 말이다.
이 책은 원서가 2008년에 발행되었는데, 그 훨씬 이전부터 개발이 중단된 오픈소스들이 많이 소개되고 있고, 실제로 써먹을만한 애플리케이션은 거의 없었다.

애플리케이션은 하나도 못 건졌지만, 그래도 이 책에서 아주 중요한 것 하나를 건졌는데 그것은 능률적인(DRY한) 프로그래머가 되어야겠다는 마음가짐이다.

나는 지금까지 2년여 정도 vim 에디터를 써오고 있었는데, 가만 돌아보니 그동안 꽤 오랫동안 vim만 써왔음에도 불구하고, 제대로 쓸줄 아는 기술이 거의 없음을 깨닫고는 부끄러움을 느꼈다.

에디팅을 하다가 불편한 점이 생기더라도
'어딘가 쉬운 방법이 있긴 할텐데 나중에 찾아보지 뭐'
이런 썩은 마음가짐으로 여태까지 시간을 흘러보냈던 탓이다.

작년 12월 말에 이 책을 보면서, 2010년에는 vim의 달인이 되자는 생각을 가졌는데, 1월 한달 동안 조금씩 노력한 결과 2년 동안 할 수 있던 것 보다 더 많은 것을 할 수 있게 되었다.

책 내용 중에 이런 내용이 있었던 것 같다.
편집을 하다가 마우스에 손이 간다면, 그 작업을 취소하게 하고 단축키를 이용해서 똑같은 작업을 2회 반복해서 다시 하도록 한다.
이런 식으로 가르친다면 배우는 사람의 실력이 부쩍부쩍 좋아진다는 것이다.

하지만 우리는 지금 군대에서 고참에게 아래 한글을 배우는 중이 아니다. 회사에서 저런 방식으로 가르쳐주는 사람은 많지 않다. 오직 혼자서 머리속에 각인 시킨채 노력해야만 하는데, 이것이 참 어렵다.

하지만 아마도 이 책을 읽고 나면 다들 능률적인 프로그래머가 되기 위해 노력하고 싶어질 것이라 생각한다.
Tiobe는 내가 심심할 때 가끔씩 찾아보는 사이트 중 하나이다.
여러 검색엔진들을 통해 프로그래밍 언어에 대한 정보들을 수집해서 순위를 매겨주는 사이트이며, 한달에 한번씩 업데이트 된다.

파이썬을 만든 Guido는 아마 나보다 훨씬 더 자주 이 사이트를 들어와보면서 파이썬의 순위를 확인해 보는 것이 분명하다.
이 정도 수준의 천재 해커가 자신이 만든 언어의 순위를 확인하면서 킬킬대는 것은 조금 웃기기도 하지만, 어떤 면에서 보면 이 사이트의 공신력을 더 높여주는 일이라고도 할 수 있겠다.

3년 정도 이 사이트를 봐왔는데 Go처럼 빠르게 성장한 언어는 그나마 루비 밖에는 없었다. 그래도 Go의 성장속도와는 역시 비교할 바가 못된다.
그렇지만 실제로 Go를 사용하고 있는 프로젝트는 아직 본 적이 없다. 아마도 아직까지는 구글에서나 쓰고 있을 것으로 생각한다. 2009년 11월에 처음 발표 되었으니 그럴만도 하다.

Position
Jan 2010
Position
Jan 2009
Delta in PositionProgramming LanguageRatings
Jan 2010
Delta
Jan 2009
Status
11Java17.482%-1.54%  A
22C16.215%+0.28%  A
35PHP10.071%+1.19%  A
43C++9.709%-0.41%  A
54(Visual) Basic7.354%-1.81%  A
66C#5.767%+0.16%  A
77Python4.453%-0.28%  A
88Perl3.562%-0.74%  A
99JavaScript2.707%-0.65%  A
1011Ruby2.474%-0.67%  A
1110Delphi2.392%-0.91%  A
1237Objective-C1.379%+1.24%  A
13-Go1.247%+1.25%  A--
1414SAS0.809%+0.01%  A
1513PL/SQL0.718%-0.29%  A
1618ABAP0.641%+0.10%  A--
1715Pascal0.624%-0.04%  B
1823Lisp/Scheme0.576%+0.14%  B
1920ActionScript0.566%+0.11%  B
2024MATLAB0.540%+0.11%  B


아래 표에서 가장 돋보이는 것은 단연 PHP이다.
범용 목적의 언어도 아닌 PHP가 10년 전의 최강자였던 C++을 제치고 3위를 차지하고 있는 것을 보고 있으면 이제는 Web의 세상이라는 것을 다시 한번 더 실감하게 만든다.

Programming LanguagePosition
Jan 2010
Position
Jan 2006
Position
Jan 2000
Position
Jan 1985
Java113-
C2211
PHP3418-
C++4329
(Visual) Basic5553
C#6713-
Python7817-
Perl864-
JavaScript91012-
Ruby1020--



YearWinner
2009Go
2008C
2007Python
2006Ruby
2005Java
2004PHP
2003C++

비록 이 사이트는 한달에 한번씩 업데이트가 되긴 하지만 매년 새해에는 올해의 언어를 선정하기도 한다. 나는 2009년에는 당연히 C#이 Winner가 되리라 예상했었는데, 바로 지난달인 작년 12월까지 순위에도 없던 Go가 2009년의 언어로 선정된 것은 정말 의외였다.

Tiobe에서는 이에 대해 나름대로 변명을 하고 있기는 하다.

Is Go a hype? May be. But even if it appears to be just another language, the fact that it is a language designed by Google is sufficient to make it really popular. Nobody will be blamed to use a language that is associated with the Google brand name. Apart from that, there is also something technically promising about Go. It has native support for concurrent programming, thus fulfilling the existing need of a language that allows efficient use of multicore processors.

It is astonishing to see that a programming language can rise so fast. Go was not listed yet last month and now it is already #13. This sudden change might be considered an inevitable consequence of our current culture, in which new information is spread and used around the globe at the speed of light.



어쨌거나 나는 아직 Go를 공부해보지는 않았지만 훌륭한 사람들이 설계한 언어이고, 또 믿을만한 회사에서 지원하는 오픈소스인만큼 곧 우리들 곁에도 가까이 다가오게 될 것이라는 생각을 한다.

내년 이 맘때는 순위가 어떻게 변해 있을지 정말 궁금하다.
대한민국 IT사 100 - 8점
김중태 지음/e비즈북스

이 책은 우리나라의 지난 IT역사의 큼직큼직한 많은 이슈들을 정리해놓은 책이다. 저자가 이 모든 것들을 기억하고 있다는 것이 놀라웠을 따름이다. 아마도 정확한 자료를 구하느라 꽤나 힘들었을 것이다.

어쨌든 그 노력 덕분에 나는 편하게 책을 읽으면서 오래전 기억들을 되살려 볼 수 있어서 아주 좋았다.

내가 처음 컴퓨터를 만난 해는 1989년인가 90년이었다.
그 컴퓨터는 삼보 트라이젬 XT 8088 어쩌구 하는 모델이었는데, 하드디스크도 20MB나 달려있고 키보드도 88키가 아닌 101키 키보드였다.
20MB 하드 디스크는 정말 얼마나 크고 빨랐는지, 당시에는 정말 채워도 채워도 차지않는 넓은 사막처럼 느껴졌었다.

두번째 컴퓨터는 94년도에 용산에서 샀던 486이었는데 4MB 램을 달고 세상의 모든 DOS용 게임들을 했었다.

그리고 99년도에 펜티엄2 350Mhz를 샀었고 이것은 거의 스타크래프트 용도로만 쓰였다.

3개의 컴퓨터를 사용하는 동안 10년이 넘게 흘렀는데, 그 용도가 게임과 PC 통신밖에는 없었다. 돌아보니 참 안타까운 일이다. 이 책에서는 8비트 키드 어쩌구 하면서 10대들이 멋진 해커로 자라고 있는데 나는 방구석에서 대항해시대나 삼국지만 죽어라 했으니 말이다.
뭐 그 덕분에 지중해에 어떤 도시들이 있는지는 아직도 잘 기억하고 있긴 하지만.
다시 돌아갈 수는 없고, 이미 지난 일이니 어쩔 수 없다.

제대하고 나서 2004년도에 펜티엄4 2.4C 셀러론을 샀는데, 이 컴퓨터로 처음으로 프로그래밍이란 것을 시작했고 나는 컴퓨터를 좀 더 잘 이해할 수 있게 되었다. 그래서인지 이 컴퓨터는 새 것으로 교체할 때 마음이 참 아팠다.

그리고 지금쓰고 있는 것은 2007년도에 샀던 코어2듀오 2.33 6550인데 램을 5G를 달아놓고 리눅스와 윈도우즈를 동시에 돌리면서 아주 잘쓰고 있다.

컴퓨터를 4-5년 주기로 한번씩 바꾼 셈인데, 전자제품에 대해 엄청난 지각수용자인 나에게는 아주 적당한 기간이었던 것 같다.

이 책은 국내 역사만을 다루고 있다. 쭉 읽어보니 자긍심이 느껴지는 부분도 있었고, 속상한 부분들도 있었다.
이 책에 나오는 훌륭한 해커들처럼 나도 어떤식으로든 나라에 보탬이 되고 싶은 마음이 있다.

앞으로 국내에 혁신적인 기업들과 제품들, 그리고 해커들이 많이 탄생해서 이 책이 계속 개정될 수 있었으면 좋겠다.

어제 오랜만에 블로그에 포스팅을 하고 알라딘에 트랙백을 걸었는데, 알라딘 리뷰대회에 등록된 것을 알게되었다.

알라딘에서 정해둔 몇십권의 책들이 있고 그 책을 읽고 해당 기간동안 리뷰를 올리면 자동으로 등록이 된다.

아래 페이지에 가서 어떤 책들이 있는지 한 번 살펴보고, 읽은 책이 몇 권이나 있는지 확인해보는 것도 재밌을 것이다.





우분투를 사용하면서 윈도우즈에서 사용하던 프로그램들의 대체제들을 하나씩 찾아가고 있다.

aMule이라는 프로그램은 얼마전에 리눅스에서 쓸 수 있는 당나귀 클라이언트가 없을까 찾아보다가 알게된 프로그램이다.
윈도우즈에서는 보통 eMule이나 프루나를 많이 사용하는데 aMule은 이 프로그램들 대신 사용할 수 있는 아주 괜찮은 애플리케이션이다.

aMule은 eMule을 멀티플랫폼용으로 포팅한 프로젝트인데 Linux나 Mac 등의 플랫폼에서도 잘 동작한다. 모양새는 물론 eMule보다는 못하지만.
-사실 리눅스 전용 클라이언트는 aMule이 아니라 xMule이다. 하지만 xMule은 2006년 이후로 업데이트도 안되고 있어 aMule을 쓰는 것이 나을 것이다.

우분투 저장소에 등록되어 있기 때문에 apt-get 으로 간단하게 설치할 수 있다. 우분투 9.10을 사용하고 있다면 현재 최신버전인 aMule 2.2.6 버전을 받을 수 있다.

나는 예전부터 Low ID라는 것이 뭘까하고 너무 궁금했었는데, 찾아보니 간단하게나마 내용이 나와있었다.

대부분의 경우에 집에 있는 컴퓨터에서 Low ID를 받게 되는 경우는 공유기를 사용하는 경우 일 것이다. Low ID로 연결되면 검색되는 데이터가 적어질 수도 있고, 검색은 되지만 실제로 연결이 안되서 다운로드는 안되는 경우가 생길 수 있다.

하지만 공유기를 사용하면서도 HighID를 받을 수 있는 방법도 물론 있다.

공유기 설정으로 들어가서 당나귀 클라이언트에서 사용하는 포트를 자신의 컴퓨터에게로만 보내도록 포워딩 설정을 해주면 되는데, 각 설정 방법은 공유기 마다 다르지만 요즘 나오는 공유기들은 대부분 웹 인터페이스를 제공하므로 쉽게 설정할 수 있을 것이다.(브라우저에서 http://192.168.0.1 같은 공유기의 주소를 입력한 후 웹페이지를 통해 설정한다는 뜻이다.)

아래는 국내 당나귀 클라이언트를 제공하는 사이트인데 HighID를 얻도록 공유기를 설정하는 법이 잘 설명되어 있다.
http://www.dbgo.com/cfaq/view.php?db=cfaq&page=1&bid=177&kind=gongu&searchstrings=

이제는 작은 것이 큰 것이다 - 10점
세스 고딘 지음, 안진환 옮김/재인
내가 세스 고딘을 알게 된 것은 2008년 봄 쯤이다.
당시에 회사에서 그가 쓴 퍼플카우라는 원서로 영어스터디를 했었는데, 온라인에서는 어디서도 팔지 않던 그 빌어먹을 책을 구하기 위해 서점들에 전화해보다가 잠실에 있는 교보문고에 딱 한권 있다고 해서 바로 달려 가서 사왔던 기억이 난다. 비록 그 책은 내 부족한 영어실력 탓에 몇일 지나지않아 책장에 쳐박혀 버렸지만.

그로부터 얼마 지나지 않아서 그 책의 번역서인 '보랏빛 소가 온다'를 구해서 읽어본 이후에 나는 그의 리마커블한 생각들과 통찰력, 그리고 유머 감각에 완전히 반해버렸다.

그 후로 한동안 이 빡빡이를 잊고 살다가 도서관 신간 목록에서 반가운 이름을 보고는 이 책을 집어들어 보게 되었다.

이 책은 그가 들려주는 짧은 토막 이야기들의 묶음으로 이루어져 있는데, 아마도 블로그에서 써온 글들을 추려서 낸 것으로 생각된다.

이 책에서도 역시 리마커블한 아이디어와, 가장 위험한 길이 안전한 길이라는 그의 주장은 계속된다. 그는 특히 변화에 대해 강조하는데, 우리가 리마커블해지기 위해서는 변화 하는 것을 두려워 하지 않아야 한다고 말한다.

수 많은 예 중 하나로, 그는 필기체가 21세기에는 근본적으로 쓸모없는 기술이라고 말한다.
학교 교과과정에서 타이핑을 가르치는 것이 아니라 아직도 필기체를 가르치고 있는 것을 예로 들며 느리게 변화하는 조직에 대해 꼬집는다.

이 부분을 읽으며 내가 학교 선생님이라면 어떻게 했을까 하고 생각했다.
나는 문득 국민학교 4학년 때 따뜻한 방바닥에 누워 네모난 바둑판 공책에 글씨 숙제를 열심히 했던 것이 떠올랐다. 그 숙제는 모든 초등학생들의 전통이었고, 또한 나는 여전히 예쁜 글씨를 쓰는 것은 중요하다고 생각하기 때문에 계속 그 숙제를 내줬을 것 같다라고 생각하며 계속 책을 읽었다.
책 뒷쪽에 가서 이 빡빡이는 그런 내 생각이 왜 틀렸는지, 문제가 무엇인지 가르쳐주었다.

우리는 전통에 의지하면서 언제나 해왔던 대로 행동한다. 그것이 쉽고 안전하기 때문이다.
-그 놈의 전통! 중에서

나는 전통이나 잡스런 추억에 빠져 현실을 올바른 시야로 바라보지 못한채 잘못 판단했던 것이다.

돌아보니 회사에서 하루에 볼펜을 드는 일이 거의 없었다. 보고서, 메일들이 모두 키보드를 통해서 입력된다. 내가 볼펜을 드는 일은 프로그램을 설계를 하면서 끄적이는 메모나, 전화 통화를 하면서 낙서를 하는 것 정도? 아, 영어 공부를 할 때도 쓰긴 한다.

조금 더 지나면 초중고생들이 넷북을 들고 다니며 필기하는 세상이 올텐데도, 우리가 변화하지 않고 있는 것은 모두 이 전통 탓이다.

변화를 두려워하지 않기 위해 세스 고딘이 제안하는 훈련 방식이 있다. 늘 하던 일을 조금 다르게 함으로써 고정관념에 빠지지 않고 넓은 시야를 가질 수 있게 되는데 이 책에서 그는 이것을 '줌'이라고 부른다.

1. 오늘 저녁 식사로 이제껏 한 번도 먹어 본 적 없는 음식을 먹는다. 그리고 내일 저녁에는 또 다른 음식을 먹어본다.
2. 내일 출근길에는 평소에 싫어했거나 생소한 장르의 CD를 듣는다.
3. 매주 새로운 잡지를 한 권씩 읽는다.
4. 일주일에 한 번, 당신의 전문 분야와 무관한 사람들을 만난다. 그리고 여태껏 관심을 가져 본 적이 없는 주제의 박람회에 간다.
5. 사무실 자리배치를 바꾼다.

재미있을 것 같지 않은가?

'기타 책' 카테고리의 다른 글

나는 똑딱이 포토그래퍼다 -안태영 저  (0) 2010.10.10
삼성을 생각한다 -김용철  (5) 2010.02.13
천년의 금서 -김진명  (1) 2009.07.05
러프 -아다치미츠루  (7) 2009.06.26
퇴근 후 3시간 -니시무라 아키라  (2) 2009.01.11
lightSMS

lightSMS


모양새가 예쁘지는 않지만, 네이트온이 켜있지 않아도 무료문자를 간편하고 빠르게 보낼 수 있으니 그렇게 편할 수가 없다.

아래 페이지에서 설치할 수 있다.
https://addons.mozilla.org/en-US/firefox/addon/5358

아래는 개발자의 블로그 주소이다.
http://tobwithu.tistory.com/

파이어폭스 애드온 페이지보다 개발자 블로그에서 더 빠르게 최신버전을 접할 수 있는데,
혹시 문자가 안보내진다거나 하면 찾아가서 새 패치가 있는지 확인해보는 것도 좋다.

구글 크롬 4.0

2009. 9. 12. 15:14 | Softwares
구글 크롬은 현재 4.0 버전까지 나와 있다.
정식 버전은 2.0이고 베타가 3.0 그리고 알파를 4.0 정도로 칭하면 되겠다.

나는 최근 1,2 년 정도간 파이어폭스에 상당히 만족을 느끼면서 사용해왔었는데, 최근 들어 가끔씩 크롬을 사용해 보면서, 이거 크롬이 더 좋은 것 아닌가 하는 생각이 조금씩 들고 있다.

브라우저들 중 가장 빠른 렌더링 속도 뿐만 아니라 개발 속도 또한 빠른 점이 무척 마음에 든다.

또 좋아하는 기능 중 하나는 주소표시창의 자동 완성 기능인데,
앞에 몇 글자만 입력하고 자동 완성이 되면 바로 엔터키를 눌러서 해당 페이지로 넘어갈 수 있는 점이다.

다른 브라우저들도 이 기능을 지원하긴 하지만 앞 글자를 입력하고 그냥 엔터키를 누르면
검색을 해버리거나, 주소가 덜 입력된 채로 그 페이지로 이동해버린다. 꼭 콤보 리스트에서 원하는 페이지를 선택한 후 엔터를 눌러줘야만 한다.

아래 링크에서는 크롬3, 4와 오페라10까지 포함한 최신 브라우저들의 벤치마크 결과가 있는데 내용이 재밌다.


어쨌거나 이제 크롬은 리눅스에서도 간단히 설치해서 쓸수가 있게 되었다.

4.0 버전에서는 스킨 변경 또한 쉽게 할 수가 있는데, 모양새도 꽤 예쁘다.
아래는 우분투에 설치해서 실행한 화면이다.

몇 일전 친구가 개발하고 있는 LG 첫번째 안드로이드폰을 볼 일이 있어 이것저것 만져보았는데, 리눅스라고는 생각할 수 없을 정도로 UI가 너무 예뻐서 감탄했다. 우분투는 쨉도 안된다.

어쩌면 IE는 파이어폭스가 아니라 크롬 때문에 망할지도 모르는 일이다.
구글, 신화와 야망 - 8점
랜달 스트로스 지음, 고영태 옮김/일리
이 책이 구글이라는 회사를 주제로한 몇 번째 책인지 모르겠다.
구글은 언제나 이야기를 몰고 다니며, 그 이야기들은 언제 들어도 재미있다.

나는 가볍게 읽어볼 마음으로 이 책을 선택했고, 읽는 동안 뇌가 충분히 즐거워서 아주 만족스러웠다.

이 책은 구글을 쫓아 다니며 열심히 연구한 저자의 경험과 느낌들이 실려 있는데 우리가 잘 알고 있는 내용들 말고도, 구글의 도서 스캔 프로젝트와 구글 어스, 그리고 유부트 인수 과정에 대한 뒷 이야기들을 자세히 살펴볼 수 있다.


나는 Gmail의 문맥광고가 탄생했던 이야기가 특히 기억에 남았는데 그 내용은 이렇다.


Marissa Mayer

Marissa Mayer


당시 구글은 Gmail이 어느 정도 개발되고 메일 서비스를 어떻게 수익원으로 전환시킬 수 있을지 고심하고 있었는데, 마리사 메이어 부사장은 다른 메일들처럼 무료로 적당한 용량을 주고, 돈을 내는 사용자에게는 더 큰 용량을 주어서 수익을 얻는 단순한 구조를 생각하고 있었다.

Paul Buchheit

Paul Buchheit


Gmail팀을 이끌고 있던 폴은 메일 내에 광고를 넣는 것을 고려하고 있었는데, 이런 그의 의견은 메이어 부사장에 의해 번번히 제지당하고 있었다.

메일을 런칭하기 직전 어느날 새벽 3시에 사무실에 남아있던 메이어는 폴에게
"이제 광고 생각은 완전히 접은거지?" 라고 물었고 폴은 "예." 라고 대답했다.

메이어가 퇴근하고 나서 폴은 홀로 남아서 인터넷에서 어휘 분석 코드를 구해 Gmail 시스템에 문맥 광고를 붙여놓은 뒤에 아침에 퇴근을 했다.

다음 날 출근한 메이어는 메일에 광고가 들어가있는 것을 보고 깜짝 놀라서 자고 있던 폴에게 전화해 빨리 돌려 놓으라고 야단법썩을 떨었지만, 곧 이런 광고가 상당히 의미가 있는 것을 깨닫고는 금새 마음을 고쳐먹게 되었다.

물론 이것은 크게 히트를 쳤고 나중에 애드센스로 발전하게 되었다.

자신과 생각이 다른 부분에 대해 자존심따위는 버리고 인정해버리는 마리사 메이어의 태도는 본 받을만한 점이다. 하지만 내게 그것보다 더 놀라웠던 점은 즉흥적으로 떠오른 아이디어를 단 몇 시간만에 구현해버리는 위대한 해커의 능력이었다.

물론 그는 오픈소스를 이용했겠지만, 오픈소스라고 해서 국민학교 때 가지고 놀던 장난감들처럼 손쉽게 가져다 붙일 수 있는 것은 절대 아니다. 만일 그게 뭐가 어렵냐고 떵떵거리고 다니는 사람이 있다면 그는 정말 엄청난 해커이거나 아니면 흔히 볼 수 있는 허풍쟁이일 것이다.

이런 종류의 이야기들은 재미를 위해 보통은 조금 더 과장되는 법이지만, 그래도 골치아픈 생각하지 않고 머리 식힐 겸 읽어보기에는 적당한 주제이기도 하다.

2000년도에 GameQ 스타리그를 하던 시절의 10여년 전 쯤의 이야기이다.

IntoTheRain이라는 아이디를 사용하던 임성춘의 한방러쉬와 지존길드 변성철의 플레이를 미친듯이 좋아했던, 대학교 새내기이자 호랑이 담배피던 시절의 옛날 일이다.

나는 그 때쯤 떠오르는 테란의 신예였던 -지금은 황제라고 불리우는 임요환이라는 이름을 처음 접했었다.

오늘은 오랫만에 임요환의 승리 기사를 보고는 그에 대해서 한 번 생각해봤다.

당시에 나와 스타를 같이 하던 내 친구들은 10년 뒤에도 스타를 하겠냐는 둥의 소리를 했었는데 지금도 스타크래프트는 여전히 E스포츠의 중심으로 서있다. 그리고 임요환은 여전히 그 자리를 지키고 있다.

언젠가 임요환은 30살이 넘어서도 프로게이머를 계속 하고 싶다고 말했었는데, 그는 그의 바램을 정말 잘 지킨 것 같다. -나는 절대로 그렇게 못할 것으로 생각했었다.

10년 동안 열정을 가지고 어떤 한가지를 꾸준히 해본 적이 있는가?
그렇게 오랫동안 열정을 꾸준히 유지할 수 있다는 것은 참으로 멋진 일이며 절대로 쉽지 않은 일이다.

그가 게임에서 지면 분해서 눈물흘리는 모습에 어렸을 적에는 찌질해 보인다고 생각하기도 했었지만 지금은 전혀 그렇게 생각하지 않는다.
그 눈물이야말로 그가 지금까지 최고의 자리에 서있을 수 있었던 버팀목이자 우리가 본 받아야할 모습인 것이다.

이제 다음 달이면 내가 프로그래밍을 시작한지 5년째 되는 달이다.
앞으로 5년 후에는 나도 그만큼 위대한 해커가 되어있기를 희망한다.

그의 아름다운 열정과 오늘의 승리에 박수를 보낸다.


천년의 금서 - 6점
김진명 지음/새움

최근에 발매된 김진명씨의 새 책이다.
나는 컴퓨터 책이나 자기계발 종류가 아닌 책은 거의 읽지 않지만, 어렸을 적 내가 좋아했던 몇몇 작가들의 신작만큼은 즐거운 마음으로 꼬박꼬박 읽어본다.

김진명도 그런 작가 중 한명인데, 그의 책을 읽다보면 특유의 박진감과 통쾌함, 그리고 애국심이 고취되는 감정을 갖게 되고는 하는데 나는 그런 느낌들이 너무 좋다.

이 책은 이정서와 한은원이라는 두 주인공이 우리 대한민국의 한(韓)이라는 이름의 유래에 관해 밝혀가는 내용으로 이루어져있다.

작가의 말에서도 알 수 있듯이 이정서와 한은원은 바로 김진명 자신이다.
그는 요즈음 소설을 쓰는 것 뿐만이 아니라, 우리들의 잃어버린 역사를 되찾기 위해서 아주 열심히 일하고 있는 것으로 보여지는데, 부디 그의 노력이 좋은 결실을 맺을 수 있기를 진심으로 바란다.

그의 다른 책들과 달리 이 책은 1권으로 끝나는데, 덕분에 부담없이 읽을 수는 있다만 전체적인 스토리나 박진감에 있어서는 예전의 책들만 못하다고 느꼈다.

살인 사건과 같은 어떤 의혹의 이벤트 발생, 그리고 주인공이 실마리를 풀어내는 과정.
그의 거의 모든 책은 위와 같이 구성되어져 있는데, 이번 천년의 금서에서는 그 실마리를 풀어내는 과정이 너무 순탄했고(수퍼스마트인 주인공들 덕분에), 또 조금 비현실적이기도 해서 그렇게 느껴진 것 같다.

그럼에도 불구하고, 그가 했던 노력들과 우리들에게 던져주는 메세지는 충분히 읽어볼만한 가치가 있다.

나도 여느 사람들과 마찬가지로 무궁화 꽃이 피었습니다라는 명작을 통해 그를 처음 알게되었었는데, 그 때 느꼈던 떨릴정도의 벅찬 감동을 아직도 잊지 못한다.

앞으로 또 그런 멋진 책을 만날 수 있기를 기대한다.

러프 -아다치미츠루

2009. 6. 26. 17:52 | 기타 책
러프 소장판 1 - 10점
아다치 미츠루 지음/대원씨아이(만화)

얼마전에 러프 소장판이 발행되었다.

나는 아다치미츠루의 만화를 너무 좋아하는데, 그 중에서 가장 좋았던 작품 3개를 꼽으라면, 단연 H2와 터치 그리고 러프이다.

나는 H2를 가장 재미있게 봤지만, 제일 좋아하는 캐릭터는 러프의 여주인공인 니노미야 아미이다.

아미는 내 이상형이기도 한데, 모든 남자들이 빠져버릴 수 밖에 없는 그런 스타일이다.

스포츠 만화라고 작품성 없는 그저 그런 만화로 생각해 버릴 수도 있겠지만, 아다치미츠루의 만화들은 잘 만들어진 드라마를 보는 것 같은 감동과 설레임을 가져다준다.

스포츠(수영)를 양념으로하고 주된 내용은 남녀간의 사랑인데, 50살이 넘은 노총각 영감이 그려냈다고는 믿어지지 않을 정도로 풋사랑의 연애감정을 아주 섬세하게 표현하고있다.

러프는 '거칠은', '잘 다듬어지지 않은' 이라는 뜻이다.
주인공인 케이스케의 수영이나 그들의 다듬어지지 않은 풋사랑을 의미하는 것이다.(그당시 아다치미츠루의 다듬어지지 않은 스케치도 포함될지 모르겠다. 크크크)

러프 뿐만이 아니라 H2나 다른 많은 작품들이 드라마로도 쏟아져 나왔는데, 왠지 캐릭터에 대한 환상이 깨져버릴 것만 같아서 보지 않았다.

어떤 사람들은 이 만화의 결말이 시시하다고 하지만, 나는 러프의 결말이야말로 아다치 미츠루의 작품 들 중 가장 멋진 엔딩이라고 생각한다.

아아 들리나요? 당신을 좋아합니다. 응답하라 오바.
특이점이 온다 - 8점
레이 커즈와일 지음, 김명남.장시형 옮김, 진대제 감수/김영사

회사에 과학을 아주 좋아하는 사람에게서 이 책의 이야기를 처음 들었다.
앞으로 변할 미래 세계의 모습을 담은 책인데, 그리 멀지 않은 미래임에도 불구하고 엄청난 변화를 예언하고 있어서 나는 사이비같은 이야기라 생각하고 한귀로 흘려들었다.

그러던 어느날 진대제의 열정을 경영하라라는 책을 아주 재미있게 읽고는, 그가 쓴 다른 책이 없을까 하고 찾아봤는데 이 책이 떡하니 나오는 것이 아니겠는가.(진대제는 감수만했다.)

책의 부제처럼 특이점이란 기술이 인간을 초월하는 순간이다.
특이점이 오게되면 기술 발전의 속도가 기하급수적으로(우리가 감히 상상도 할 수 없을 만큼) 빨라지게 되고 지금과는 전혀 다른 세상으로 변하게 되는데, 이 책에서 저자는 그 시기를(컴퓨터가 튜링테스트를 통과하게되는) 2020년대 중반 내지 후반일 것이라고 예측하고 있다.

특이점이 오게되면, 컴퓨터가 인간보다 똑똑해지고 그 컴퓨터들이 기술을 기하급수적인 속도로 발전시켜서 우리가 상상하던 모든 것들과 상상하지 못했던 일들 조차 이루어 질 것이다.

물론 당연히 여기에는 많은 의심이 있을 수밖에 없다. 기술 발전 속도가 현재도 빠르다고는 하지만, 90년대 초반 우리들이 어렸을 적에 머리속에 그려왔던 2010년의 모습은 자동차가 스스로 운전하고 심지어는 하늘을 날라 다니는 수준이었다. 하지만 지금 2010년의 도로를 살펴보면 조금 더 고급 자동차들이 달리는 것 말고 큰 변화는 없다.
전철역에서 노란 종이표를 집어 넣고 다시 빼가는 90년대 사람들의 행동은 지금까지도 이어져 오고 있다.

그런데도 불구하고 앞으로 20년이 지나면, 컴퓨터가 튜링테스트를 통과하게 된다니(너무 똑똑해서 사람인지 컴퓨터인지 구별조차 할 수 없게되는) 많은 사람들이 -전문가들 조차도 의심하고 돌을 던질만 하다.

하지만 지은이는 선형적으로 계산하면 안되고, 지수적으로 계산해야 한다고 입이 닳도록 설명하는데(아래 그림 참조) 이 책에서 보여주는 지은이의 엄청난 지식이 뒷받침된 견해들과 함께 읽어나가다보면, 엇 정말 그렇게 되는것 아냐? 하는 생각이 드는 것도 사실이다.

수확 가속의 법칙

수확 가속의 법칙



빌게이츠같은 최고 수준의 미래 예언가들조차 지은이를 찾아가서 의견을 구하는 모습들을 보면 우리는 이 사람의 말들을 그냥 한귀로 흘려버리는 것이 너무 어리석은 행동은 아닐까 라는 생각도 한 번쯤 해볼만하다.

이런 특이점이 오기 위해서는 컴퓨터 하드웨어와 인공지능 분야뿐만이 아니라, 나노공학이나 유전공학 등 많은 과학 분야의 기술이 함께 발전해야 하는데, 그 중에서 컴퓨터과학 분야가 중요한 위치를 차지하고 있다는 것은 우리들에게 있어 굉장히 고무적인 일이다.

나는 특히 사람의 뇌를 역공학하는 부분이 아주 재밌었는데 지구상에서 가장 훌륭한 발명품이라고 여겨지던 뇌가, 병렬처리 능력을 빼고는 컴퓨터보다 나은 것이 별로 없다는 사실은 충격적이었다.
뇌에 대한 분석이 완료되면 컴퓨터가 서로간에 데이터를 복사하듯이 우리 뇌에 들어있는 지식들도 다른 사람에게 복사될 수 있을 것이다.

지은이는 이런 특이점이 오기를 갈망하며, 하루에 영양제 200알씩을 먹어가면서 담당의사까지 두고 건강을 관리하고 있는데, 나는 그런 현실이 별로 기대되지 않아서 그렇게까지 할 필요가 있을까 하는 생각이 든다.

어렸을 적 놀이터의 흙냄새와 잔디밭의 풀냄새는 나에게 아주 좋은 추억으로 남아있다.
나는 30살이 가까워진 지금도 종종 집근처에 있는 놀이터와 공원에 가서 옛날처럼 캐치볼을 하며 놀고는 하는데, 앞으로 우리의 자식들이 컴퓨터의 가상현실 속에서 스포츠나 연애같은 모든 놀이들을 해결할 것을 상상하면 끔찍하다.

SwingX 라는 오픈소스 프로젝트가 있는데, 꽤 오랫동안 0.9대 버전으로 개발되어 오다가 이번에 1.0 버전이 릴리즈되었다.

SwingX는 java의 기본 swing을 랩해서 조금 더 기능이 풍부한 UI 구현들을 제공하는 프로젝트이다.
java로 데스크탑 애플리케이션을 만드는 경우는 그렇게 많지 않지만, 만약 그런 일을 접하게 되면
기본 swing으로 뭔가 부족하다 싶을 때 swingx에 혹시 원하는 기능이 있는지 찾아보고 그런 기능이 있다면 직접 구현하는 수고를 덜 수 있다.

JRE 1.6.10부터 제공되는 Nimbus 룩앤필(개인적으로는 스윙에서 처음으로 그나마 봐줄만한) 역시 이 swingx 프로젝트에서 시작해서 JRE에 통합되었다.


이미 기존에 만들어둔 GUI애플리케이션이 있다면 룩앤필을 설정하는 코드 몇 줄만 추가함으로써 별 다른 수고 없이 더 보기좋은 UI로 탈바꿈 시킬 수 있다.

MFC로 GUI 프로그래밍을 하게되면 객체에 변경을 가하기 위해 주로 상속을 하거나 서브클래싱을 하게되는데 swing에서는 인터페이스를 구현하는 방법이 많이 사용된다.

C++ 프로그래밍을 하게 되면 COM같은 특수한 분야를 다루지 않는 이상 인터페이스를 구현하는 일이 그다지 많지 않지만, 자바에서는 곳곳에서 쉽게 찾아볼 수 있다.

인터페이스를 설계 및 구현하고 또 변경하고 싶은 기능들만 오버라이딩하여 잘 동작하게 될 때의 기쁨은 어쩌면 객체 지향 프로그래밍의 가장 큰 즐거움 중에 하나일 것이다.
나는 C++을 하는 동안 그런 느낌을 한 번도 느껴보지 못했는데, 자바로 프로그래밍을 하면서 많은 것을 배우고 재미를 느끼는 중이다.

인터페이스가 뭔지 혹은 가상함수가 뭔지에 대한 내용은 어려운 내용이 아니라서 쉽게 배울 수 있지만
인터페이스를 언제 사용해야 할지, 왜 사용해야 하는지에 대한 깨달음은 실제로 많이 사용해봐야만 얻을 수 있는 것 같다.

그런 면에서 객체 지향 프로그래밍을 배우기에는 확실히 C++보다는 자바가 좋은 선택이다.
열정을 경영하라 - 10점
진대제 지음/김영사

이 책도 역시 BooksMBA 프로그램을 통해서 읽어 보게 되었는데, 읽는 내내 너무 즐거웠다. 수재들의 이야기는 언제나 재밌다.
자서전이지만 컴퓨터 엔지니어의 이야기를 담고 있으므로 가볍게 읽을만한 컴퓨터책 카테고리에 넣어보았다.

이 책의 구성은 그가 삼성전자에서 일하던 당시와, 미국에서 유학시절 공부하던 날들, 정통부 장관을 하면서 있던 이야기들로 되어 있는데 모든 이야기가 정말 재미있지만 나는 특히 삼성전자에서 일할 때의 이야기들이 좋았다.

열정이 있는 사람은 아름답다.
이런 사람들을 볼 때마다 더욱 열심히 살아야겠다고 다짐하곤 한다.

책의 마지막에는 그가 우리들에게 해주는 조언들이 있다.

언제 어디서나 꿈과 목표를 높이 설정하고 끊임없이 열정적으로 최선을 다해 그 목표에 도전하는 것, 그리고 나중의 결과가 어떻든 간에 겸허히 감사하는 마음으로 받아들이는 것.

바로 그가 말하는 성공의 비결이다.

하루하루 행복함을 느끼면서 열심히 살아가야겠다.

프로그래밍 얼랭 - 8점
조 암스트롱 지음, 김석준 옮김/인사이트
요즈음 회사에서 동료들과 함께 일주일에 한번씩 모여 얼랭을 공부하고 있다.

나는 언젠가는 꼭 함수형 언어를 한 번 공부해보고 싶었는데, 그 시간이 생각보다 일찍 찾아왔다.

처음 얼마간 이 책을 공부하면서는 정말 미칠 것만 같았다.
배열도 없고 자료구조에 랜덤액세스로 접근할 수도 없으며 변수에 값을 재할당 할수조차 없으니 불편함이 이만저만이 아니다.
이 모든 것을 재귀적으로 생각하고 표현해야 하는데(간단한 루프조차도), 그것은 고1때 점화식을 공부하면서 수학을 포기해버린 나에게는 참 고통스러운 일이었다.

그럼에도 불구하고 많은 훌륭한 해커들은 LISP 같은 함수형 언어를 공부하는 것이 좀 더 나은 프로그래머가 되기 위해 많은 도움을 줄 것이라고 얘기하는데(비록 실무에서 그런 언어를 사용하지 않을지라도) 나는 얼랭을 공부하면서 그것이 어떤 뜻인지 느껴보고 싶다.

우리들은 ACM 문제들을 주 마다 하나씩 풀어보고 있는데, 모임이 있는 목요일까지는 아주 고통스러운 나날들이다. 나는 마치 예전 처음 C언어를 공부할 때 Linked List를 작성하면서 코드를 썼다 지웠다 쩔쩔매던 그 시절로 돌아간 것만 같다. 구조체 안에 자신을 가르키는 포인터가 있다는 것은 나를 아주 미치게 만들었었다. 정말 그 당시와 비슷한 기분이다.

다음번 과제는 'The Cat in the Hat' 이라는 문제인데, C로 작성된 코드가 인터넷에 있어서 얼랭으로 다시 작성해봤다. 보고 그대로 옮기는 것 조차 쉽지 않다.
아직 함수형 프로그래밍에 익숙하지 않아 몇몇 부분은 마치 C로 작성한 것 같은 느낌을 준다.


-module(cat).
-export([solve/2, pow/2, gcd/2, hcf/1, result/2, f/3, g/5]).

%greatest common divisor
gcd(A, 0) -> A;
gcd(A, B) -> gcd(B, A rem B).

%power
pow(_X, 0) -> 1;
pow(X, Y) -> X * pow(X, Y-1).

%highest common factor
hcf( N ) -> hcf( N, 2, 0, [], [] ).
hcf( 1, I, P, FL, CL ) -> [ FL ++ [I], CL ++ [P] ];
hcf( N, I, P, FL, CL ) when ( N rem I ) =:= 0 -> hcf( N div I, I, P + 1, FL, CL );
hcf( N, I, 0, FL, CL ) -> hcf( N, I + 1, 0, FL, CL );
hcf( N, I, P, FL, CL ) -> hcf( N, I + 1, 0, FL ++ [I], CL ++ [P] ).

result(N, K) -> result(N, 0, K, 0, 0).
result(N, I, K, SUM_LAZYCAT, SUM_HEIGHT) when I < K ->
   result(N, I + 1, K, SUM_LAZYCAT + pow(N, I), SUM_HEIGHT + ( pow(N, I) * pow(N+1,K-I) ) );
result(N, _I, K, SUM_LAZYCAT, SUM_HEIGHT) -> [SUM_LAZYCAT, SUM_HEIGHT + pow(N,K)].

f(K, I, COUNTLIST) when I < length(COUNTLIST) ->
   A = gcd( K, lists:nth(I+1, COUNTLIST) ),
   f( A, I+1, COUNTLIST );
f(K, _I, _COUNTLIST) -> K.

g(FN, CN, I, K, N) when I < length(CN) ->
   g( FN, CN, I+1, K, N * ( pow(lists:nth(I+1, FN), lists:nth(I+1,CN) div K) ) );
g(_FN, _CN, _I, _K, N) ->
   N.

one(L) -> one(L, 0, 0).
one(L, CNT, SUM) when (L rem 2) =:= 0 -> one( L div 2, CNT + 1, SUM + L );
one(L, CNT, SUM) -> [CNT, SUM + L].    

solve( L, N ) when (L =:= 0) and (N =:= 0) -> io:format("bye~n");
solve( L, N ) when (N =:= 1) -> one(L);
solve( L, N ) ->
   [_FL, CL] = hcf( L ),
   [FN, CN] = hcf( N ),
   io:format("~w~w~w~n", [CL, FN, CN]),
   K1 = lists:nth(1, CL),
   io:format("~w~n", [K1]),
   K2 = f( K1, 1, CL ),
   io:format("~w~n", [K2]),
   K3 = f( K2, 0, CN ),
   io:format("~w~n", [K3]),
   N1 = g( FN, CN, 0, K3, 1 ),
   io:format("~w~n", [N1]),
   result( N1, K3 ).


이제 얼랭의 꽃이라고 할 수 있는 병렬 프로그래밍 부분을 보려고 하는데, 그 부분에서 많은 기법들을 얻을 수 있을 것 같아서 기대된다.

이 책은 구성이 좀 특이하다.
보통의 언어책은 변수, 제어, 루프 등이 책의 초반부에서 많은 장을 할애하는데 반해, 이 책에는 위 내용이 거의 없다. 얼랭의 특징이 그렇기 때문이다. 중요한 것은 오직 함수이다.

나는 이 책을 공부하면서 문제를 더 작게 쪼개나가는 방법을 배우고, Closure와 같은 고차함수를 능숙하게 작성 할 수 있게 되는 것이 목표이다.

하지만, 이렇게 공부하는 것은 재미있다만 만일 직장에서 프로젝트에 얼랭을 사용하라고 한다면 나는 정말이지 회사를 그만다니고 싶어질 것 같다. 하하하.


오늘은 문득 집전화를 인터넷전화로 바꾸면 어떨까 하는 생각이 들어 SK브로드밴드 홈페이지에 가서 이것저것 뒤져보았다.

나는 인터넷을 SK브로드밴드 제품을 쓰고 있었으므로, 인터넷 전화도 함께 사용하면 얼마나 할인이 되나 알아보고 싶었다.


그런데 SK텔레콤 이동전화 + 초고속인터넷도 결합상품 안에 포함되어있는 것을 보았다.
예전에 하나로텔레콤의 인수 당시에 이런 상품이 생긴다는 것을 알고는 있었는데, 나는 너무 순진하게 자동으로 알아서 다 계산해주겠지 하고 생각하고 있었다.


실제로 인터넷요금과 휴대폰요금이 조금씩 할인되어져서 청구되고 있었기 때문에(이제야 알았지만 그것은 다른이유에서였다) 나는 별로 신경을 쓰지 않고 있었는데, 오늘은 불길한 예감이 들어 tworld에 가서 이것저것 찾아보았는데, 다행히도 홈페이지에서 확인이 가능했다.


역시 우려했던대로 그동안 나는 결합상품의 혜택을 받지 못하고 있었다.
TWorld 홈페이지에 신청할 수 있는 곳이 있어서 나는 바로 신청을 했다.

나처럼 SK브로드밴드의 인터넷과 휴대폰을 쓰면서도 몰라서 할인을 못받고 있는 사람들이 얼마나 많을까 싶은 생각이 들었다.



나는 가족들이 전부 SK 텔레콤 휴대폰을 사용하고 있고 온가족 할인요금에 가입되어 있기 때문에 결합상품도 family형으로 가입되었는데, 조금만 있으면 총 합산년수가 10년을 넘어서 20% 할인을 받을 수 있다.

이것은 생각보다 작은 돈이 아니다. 1년 넘게 저런 곳에 돈을 흘리고 있었다니 참 한심하다.

SK 말고 다른 통신업체들도 다 결합상품이 있는 것으로 알고 있는데, 휴대폰과 인터넷을 같은 곳에서 쓰고 있다면 한번쯤 확인해보는 것이 좋을 것이다.

크리스탈 리포트 2008 - 6점
백영일 지음/가메출판사
Visual Studio를 설치 할 때 항상 Visual Basic Cristal Reports 라는 프로그램이 눈에 띄었었는데, 뭐하는 프로그램인지를 몰라서 나는 매번 설치에서 제외하곤 했었다.

얼마전에 새 책 목록을 받아 보다가 낯익은 이름이 있길래 드디어 이것이 뭐하는 프로그램인지 알아볼 기회다하고는 책을 구해보게 되었다.

나는 크리스탈 레포트가 MS에서 만든 프로그램인 줄로만 생각했었는데, 그냥 번들로 함께 딸려오는 제품이었다. 비주얼 스튜디오 뿐만 아니라 이클립스나 볼랜드의 제품에서도 역시 사용 할 수 있다.

크리스탈 레포트가 뭐하는 프로그램인지 간단히 설명하면, 임의의 데이터 베이스에 접속해서 데이터를 가져와서 가공하고 보기 좋게 보고서를 만들어 주는 프로그램이다. C#이나 VB.NET 그리고 Visual Basic으로 애플리케이션의 이벤트 처리를 할 수 있는 프로그래밍 인터페이스를 제공해서 조금 더 다이나믹하고 유연한 보고서를 만들 수 있다.

회사에서 서비스를 개발하다 보면 기획자들에게 통계 데이터를 보내줘야 할 일이 종종 있는데, 나는 데이터베이스에 대충 쿼리에서 결과를 엑셀 프로그램에 툭 붙여넣어 보내주고는 한다.
나는 국민학교 때부터 그림에는 영 소질이 없었는데, 지금도 프리젠테이션에 관련된 애플리케이션은 다 싫다.(Visio나 파워포인트, 엑셀, 워드 등) 이런 프로그램을 사용할 때 나는 아주 저질적인 결과물을 내놓곤 하는데, 다행히 날 컴맹으로 당연시 하는 우리 여기획자들 덕분에 맘 편하게 보고서를 작성할 수 있다.
하지만 입장을 바꿔서, 내가 상사라면 나처럼 보고서를 작성하는 녀석에게는 '저 새끼가 분명 일할 마음이 없는거야...' 라고 생각이 들지도 모르겠다.

어쨌거나 요즈음에는 그런 면에서도 조금 노력이 필요하다는 생각이 들어서 나는 이 책이 너무 반가웠다. 나도 멋진 보고서를 만들 수 있을테니깐.

몇 일전에 컴퓨터를 포맷할 일이 있어서 VS2008를 새로 설치하면서는 이 크리스탈 레포트를 포함시켜서 설치를 했다.
그리고 이 책과 함께 몇 가지 실습을 따라해보았는데, 프로젝트를 만들자마자 프로그램이 뻗고, 수도 없이 나오는 위자드에서 finish 버튼만 누르면 비주얼 스튜디오가 뻗어버려서 아주 짜증이 났다. 최신 버전인데도 이런데 VS2005 였을 때나 다른 제품은 아마도 더했을 것이다.

어쨌거나 내가 서비스하고 있는 데이터베이스에 연결해서 간단히만 이것 저것 만져보았다.
애플리케이션을 EXE 형태로 만들 수도 있고, 웹 애플리케이션으로 만드는 것도 가능하다.
우리는 지금 하고 있는 서비스를 관리하기 위한 애플리케이션을 ASP.NET으로 만들어서 사용하고 있는데, 크리스탈 레포트를 사용해서 만들 수도 있겠구나 생각이 들었다. 하지만 코드양은 조금 줄일 수 있을지 몰라도, ASP.NET으로 모든 것을 제어하는 것 보다는 훨씬 할 수 있는 것이 적을 것이다.
데이터를 갱신하거나 삭제하는 작업보다는 SELECT 위주의 통계 애플리케이션이 이 프로그램에 더 적절하다.

나는 크리스탈 레포트가 무엇인지 알아보기 위한 용도로 이 책을 읽어서 대충대충만 살펴봤는데, 중간에 Visual Basic은 없는게 낫지 않나 하는 생각도 들었다.
이 책은 Windows via C++과 같은 많은 고급 기술을 담고 있는 책보다 훨씬 낮은 레벨의 지식을 담고 있는 반면에 두께는 더 두껍다. 시대에 맞게 정말 필요한 내용만을 담아 거품을 좀 뺐으면 사용자가 좀 더 부담을 덜 갖고 편하게 이 책을 봤을텐데 말이다.

어쨌거나 이 책은 수요가 그렇게 많지 않은 분야에 대해 저자가 열심히(자료도 별로 없는 가운데) 연구해서 쓴 책일 것이므로 고맙게 생각해야한다.
좋은 애플리케이션에 대해 가르쳐준 저자에게 감사를 표한다.



오늘 친구랑 이야기를 하다가, 네이트온에서 상대방이 자신을 삭제/차단했는지 알아내는 방법이 있다는 것을 듣고는, 재미삼아 검색도 해보고 몇가지 테스트를 통해서 검증한 결과,

1. 상대방이 자신을 삭제했는지는 알아낼 수 있다.
2. 상대방이 자신을 차단했는지는 알아낼 수 없다.


라는 결론을 얻었다.

다음 글에 보면 그림과 함께 설명이 잘 나와 있는데,
http://nohungry.net/tt1/48

살짝 잘못된 부분이 있다.(2006년 포스팅이라 당시에는 저렇게 동작했을 수도 있다.)

Step 1. 네이트온 메뉴에서 설정 -> 환경설정 -> 프라이버시 탭에서 대화가 허용된 목록을 본다.
Step 2. 이름에 대고 마우스 오른쪽 버튼을 클릭한다.
Step 3. 나타난 팝업창에 삭제 버튼이 활성화되어 있는지 살핀다.
Step 4.
If 삭제 버튼 = Enabled Then
난 상대방으로부터 삭제 또는 차단되었다.
Else
난 상대방으로부터 최소 삭제는 당하지 않았다. (차단은 되었을 수도 있다.)


Step 1과 Step 4 부분이 틀렸는데,
Step 1. 네이트온 메뉴에서 설정 -> 환경설정 -> 프라이버시 탭에서 대화가 허용된 목록과 차단된 목록을 본다.
Step 2. 이름에 대고 마우스 오른쪽 버튼을 클릭한다.
Step 3. 나타난 팝업창에 삭제 버튼이 활성화되어 있는지 살핀다.
Step 4.
If 삭제 버튼 = Enabled Then
  난 상대방으로부터 삭제 되었다. (차단 여부는 알수없다.)
Else
  난 상대방으로부터 삭제는 되지 않았다. (역시 차단 여부는 알 수 없다.)
End If

이렇게 쓰여져야 맞다.

해석하면,
삭제 버튼이 회색으로 비활성화 되어있으면 아직까지 나를 친구로 등록하고 있는 것이고(차단한 채로 두고 있는 것일지도 모르지만)
삭제 버튼이 클릭할 수 있도록 활성화 되어있다면 날 친구에서 삭제한 것이다.(차단은 했을 수도 있지만)


그럼 상대방이 나를 차단했는지 알아보는 방법은?


아쉽게도 이것은 알 수 없다.
상대방이 원래는 생년월일이나 전화번호를 공개로 해두었었는데, 갑자기 로그인도 한동안 안하고 프로필을 봤더니 생일과 전화번호가 비공개로 되어있으면 의심해볼만 하다.(물론 추측만 해볼 수 있을 뿐이다.)
혹시 정확히 알 수 있는 방법이 있다면 제게도 가르쳐주시라.


그래서?


오늘은 네이트온을 사용하면서 처음으로 친구 정리라는 것을 해봤다.
아 이 친구가 이제 나를 지워버렸구나 하는 배신감 비슷한 울컥한 감정,
아 이 친구는 몇 년동안이나 대화를 안했는데도 아직까지도 나를 삭제하지 않았구나 하는 고마움과 미안함.

어쨌거나 재미있는 일이다.
아직 이 방법을 모르고 있었다면 지금 한번 실험해보고 그게 어떤 느낌인지 직접 느껴보시라.
세상을 바꾼 32개의 통찰 - 8점
제시카 리빙스턴 지음, 김익환 옮김/크리에디트(Creedit)
이 책은 위대한 해커들과의 인터뷰로 구성되어 있다.

인터뷰를 진행하는 사람은 제시카 리빙스턴인데, 어디서 많이 본 이름이다 싶었더니 폴 그레이엄의 에세이 하단에 항상 등장하는 이름이었다.
폴 그레이엄의 글 아래에는 항상 감사 글이 달려있는데(아마도 글을 발행하기 전에 감수해준) 이 여자의 이름은 모든 글에 빠지지 않고 등장에서 기억에 남아있다.
이 책에 나오는 32명의 해커에 역시 폴 그레이엄도 나오는데, 현재는 Y 어쩌구 하는 스타트업 투자 회사에서 이 여자와 함께 일하고 있는 것 같다.

번역자는 GE나 Sun과 같은 화려한 회사에서의 경력을 자랑하는 김익환 선생님이다.
얼마전에는 우리회사에 오셔서 소프트웨어 공학에 대한 강의를 해주셨는데, 아주 좋은 시간이었다.

이 책은 소설이 아니라 그냥 인터뷰만을 담고 있을 뿐인데도 책이 상당히 두껍다.

나는 500페이지가 넘어가는 책을 별로 안 좋아하는데, 모양새도 잘 안나고 가방에 넣고 다닐 때 무겁기 때문이다.
이런 해커들의 이야기들 담은(흥미진진한) 책은 이동하면서 마음 편히 보기에 아주 좋은데, 책이 두꺼워서 집에서만 봤다.
하필이면 32명인가, 32비트 시대라서 그런가. 16명 정도만 골랐으면 더 좋았을텐데 말이다.

어쨌거나,
애플의 스티브 워즈니악
루비 온 레일스의 데이비드 하이네마이어 핸슨
지금은 마이크로소프트의 에이스로 군림하고 있는 레이오지 등.
최고의 제품들과 최고의 해커들에 대한 생각을 엿보는 것은 정말 즐거운 일이 아닐 수 없다.
빌 게이츠, Next Page - 8점
메리 조 폴리 지음, 양승민 옮김/엘도라도
이 책은 빌게이츠의 책이 아니다.
그렇다고 빌게이츠의 업적이나 그에 대한 찬사로 가득 차 있는 책도 아니다.

단지 All about Microsoft 블로그를 운영하고 있는 한 여자의 마이크로소프트에 대한 주관적인 시각을 담은 책이다.

이 책에서 그녀는 MS의 편에 완전히 서지도 않으면서 한편으로는 MS를 옹호하기도 하고, MS를 완전히 지지하다가도 갑자기 욕을 퍼붓기도 한다.

그녀가 MS의 편인지 아닌지는 잘 모르겠지만, 꽤 오랫동안 마이크로소프트에 대해서 연구해온 사람임은 분명한 것 같다.

개인적으로 요즈음에는 오픈소스가 신기하고 재밌어서, 마이크로소프트를 일부러 멀리하고 오픈소스 제품들을 사용해보고 있기는 하지만, 나는 마이크로소프트의 제품들을 아주 좋아한다.

지금까지 쭈욱 MS 제품들을 써왔음에도 불구하고 나는 MS의 소프트웨어 전략에 대해서 심각하게 고민해본적이 한번도 없었다.

이 책은 바로 MS 전략의 과거, 현재, 그리고 미래에 대해서 이야기 한다.
최근에 나온 책이라서 MS와 야후의 협상건 까지도 언급되곤 하는데, 소프트웨어 시장과 그 전략에 대해서 도움을 얻을 수 있으므로 읽어볼만한 가치가 있다.
Speed Java - 8점
한동호/엠플래닝

강컴에서 호평들이 많아 이 책을 선택해서 봤는데, 책 이름과 같이 정말 스피드하게 배워나갈 수 있었다. 필요한 부분만 깔끔하게 설명하고 빨리 진행되는 방식이 아주 마음에 든다.

나는 대학시절에 Java 1.4 책을 한 번 본 것이 전부여서 @ 어노테이션이나 for 문 안에서 : 으로 이터레이팅 하는 문법들이 아주 해괴망칙하게 보이곤 했었는데, 이 책에서는 간략하게지만 내가 궁금해 했던 그런 새롭게 추가된 기능들에 대해서 설명되어 있어 좋았다.

하지만, 스피드하게 배우는 것은 한계가 있는 법.
조금 더 진지하게 Java의 깊숙한 부분을 배워 보려는 사람들은 Thinking in Java와 같은 다른 책을 찾아보는 것이 더 좋을 것이다.


작년 가을 즈음 회사에서, 갑자기 자바로 프로그램을 만들어야 할 상황이 내게 닥쳤다.
이 때 나는 대학 때 만들어본 고작 2000 ~ 3000 줄 정도의 비행기 게임이 자바 경험의 전부였었는데, 아무 것도 모른채로 무작정 프로젝트를 시작했고 그것은 하루 하루 부담스럽고 고통스러운 시간들로서 내게 다가왔다.

우리 회사에는 자바 프로그래머가 전혀 없어서 나는 아주 기본적인 것들까지도 인터넷을 통해 정보를 얻었어야 했는데(애플릿은 뭐고 서블릿은 뭔지, 1.5를 써야하는지 6을 써야하는지, 심지어는 SE를 다운 받아야하는지 EE를 받아야 하는지까지도), Sun의 문서들과 포럼, 그리고 유즈넷을 들락거리면서, 인터넷을 통해 공부하는 것이 책으로 공부하는 것보다 얼마나 어려운 것인지 절실히 깨닫게 되었다. 물어볼 사람이 옆에 있다는 것이 얼마나 행복한 것인지도 말이다.

어쨌거나 급하고 초조한 마음과 함께 나혼자 진행한 프로젝트는 책으로 지식을 쌓지 못한채 인터넷을 통해서 얻은 제대로 익히지도 못한 지식들로, 검색과 질문과 코딩의 반복, 또 삽질과 문제 해결 그리고 새로운 고비의 반복들을 거쳐 힘들게 완성시켰다.

최근들어 Java 세상을 덮친 Eclipse와  이클립스 프로젝트 필수 유틸리티 : subversion, Ant, JUnit, Trac 같이 가볍게 읽어볼만한 책들이 많이 나왔는데 이책과 함께 읽어보고 어느 정도 자바와 그 친구들을 알게 된 후에, 나는 당시 프로젝트의 시작부터 끝까지를 완전히 머리속에 그려놓지 않은채 무작정 덤벼들었던 내 모습을 기억하고는 얼마나 무모했었는지 떠올려보게 되었다.

당시 나는 최신 버전이라는 이유로 별 생각없이 Java 6 플랫폼을 선택해서 개발을 했는데,
서버 프로그램도 아니고 클라이언트에 내려주는 애플릿 프로그램으로서 그것은 참 안좋은 선택이었다.

또, 후에 안 것이지만, SWTJava Web Start 같은 기술도 있었는데, 어떤 것이 나을지 비교도 해보지 않고 바로 스윙애플릿을 선택한 것도 내 무지함이었고 말이다.( 어떤 기술이 있는지 정도는 알고있어야 뭘 비교해볼 것 아닌가. )

프로젝트에 충분한 기술적 검토없이 무작정 덤벼드는 것은 좋지 않다.
그리고 기본기는 인터넷보다 책으로 다지는 것이 좋다.

이 책은 자바의 깊숙한 부분들을 설명하지는 않지만, 꼭 필요한 부분들만을 가볍고 쉽게 읽혀지도록 쓰여졌다는 점이 높이 평가 할만하다.

이 책과 함께 위에서 잠깐 언급한
Java 세상을 덮친 Eclipse
이클립스 프로젝트 필수 유틸리티 : subversion, Ant, JUnit, Trac 역시 추천한다.
내가 잘 알지 못한채로 사용해 왔던 것들의 많은 부분이 위 책들에 담겨있었다.
사실은 위 책들도 각각 서평을 쓰려고 했는데 막상 쓰려니 귀찮아져버려서 그냥 이렇게 넘어간다.

Java는 주위에 배워야 할 잡것들이 너무나도 많아서 날 피곤하게 한다.
책 구경을 하러 강컴에 갔다가 페이지가 바뀐 것을 보고는 깜짝 놀랐다.

가장 맘에 드는 부분은, 바로 RSS의 지원이다.

강컴의 피드 페이지를 둘러본 결과 알라딘의 그것보다 좀 더 나은 점이 있다면, 서평을 받아볼 수 있다는 점이다.

서평을 피드에 포함 시킨 것은 아주 좋은 아이디어였다고 생각한다. 책을 다른데서 살지라도 나는 꼭 웹서핑은 강컴에 가서 하곤 했는데, 그 이유 중 하나는 잘 쓰여진 서평들이 많기 때문이었다. 그리고 그런 서평들은 새로운 좋은 책을 알게 되는데 종종 도움을 주곤 했는데, 이제 그 서평들을 앉은 자리에서 받아 볼 수 있다니 너무 기쁘다.
대신 본문 전체를 공개하지는 않는데, 이 부분이 조금 불편하다.
강컴에서 잘 판단해서 좀 더 편하게 서평들을 읽을 수 있도록 해주었으면 좋겠다.

강컴 피드의 또 하나의 좋은 점은 카테고리 구분이 잘 되어있어서 원하는 책들 목록을 좀 더 정확하게 받아 볼 수 있다는 것이다.


알라딘이나 YES24는 컴퓨터 전문 서점이 아니라서, IT 서적 카테고리가 강컴보다는 두리뭉실하다. 아마도 대부분의 프로그래머들은 '따라하세요 한글 2007', '시나공 정보처리기사 어쩌구' 와 같은 책들까지 리더기에 껴들어오는 것을 원하지는 않을 것이다.

그동안 알라딘의 피드를 구독해왔는데, 이제는 강컴으로 바꾸어야겠다.

좋은 기능이 추가되어져 기쁜 반면에 아쉬운 부분들도 있는데, 가장 실망스러운 부분은 페이지 레이아웃이 망가져서 보여진다는 것이다.
나는 파이어폭스 브라우저를 사용하는데, 메인 페이지부터 레이아웃이 완전히 깨져서 보여진다.


아마 강컴에서도 이를 알고 있을꺼라고 생각하지만, 많은 파이어폭스 사용자를 보유하고 있는 사이트인 만큼 좀 더 배려해서 오픈해줬으면 어땠나 하는 아쉬운 마음은 어쩔 수 없다.
하지만 곧 수정될 것으로 기대한다.

어떤 새로운 모습들이 추가되었는지를 사용자들에게 가르쳐줬다면 더 좋았을텐데 어찌된 일인지 공지사항이나 안내페이지를 볼 수 없는 것은 또 다른 아쉬운 점 중 하나이다.
이런 이야기들을 강컴에 해주고 싶지만, 그나마 예전에 피드백의 유일한 장소였던 자유게시판 마저도 어디갔는지 찾을 수가 없다.

구글을 지탱하는 기술 - 8점
니시다 케이스케 지음, 김성훈 옮김, 전병국 감수/멘토르

아름다운 명서에 넣기는 뭐해서 가볍게 읽기 좋은책으로 카테고리를 정하긴 했지만 실제로 이 책이 그렇게 가볍게 읽을만한 책은 아니다.

맨 마지막 장인 6장에 가서야 구글의 시스템, 개발 언어 등 많은 사람들이 원하는 이야기들이 소개되며, 그 전까지는 맘 편히 볼만한 내용들은 별로 없다.

나는 회사에서 가상 파일 시스템을 구현하는 일을 맡고 있는데,
그래서 역시 이 책의 3장에 나오는 GFS(구글 파일 시스템)부분이 가장 인상깊었다.

거기에는 지금까지 우리가 생각은 해왔지만, 구현하기 힘들다는 이유로
그리고 개발 시간이 오래걸린다는 이유로 도망쳐왔던 많은 아이디어들과
심지어는 생각해보지도 못했던 여러 기술들이 구현되어 있었다.

이 책을 읽으면서 줄곧 들었던 생각이 있다.
나는 무엇을 그렇게 무서워 하고 있는가?

이 프로젝트를 과연 내가 해낼 수 있을까?
이 복잡한 알고리즘을 과연 버그 없이 구현할 수 있을까?
다른 방식으로 구현하면 몇몇 단점들이 있긴 하지만,
훨씬 쉽고 빨리 만들수 있으니 그 방법으로 사람들을 설득하자. 하는 썩어빠진 마음가짐.

실제로 이런 어려운 문제들을 멋지게 구현해낸 이들을 보면서, 나는 많은 반성을 했다.
주위에 도움을 받을 수있는 훌륭한 해커들이 있다는 것은 이런 두려움을 없애주는 가장 큰 힘이다.
내가 어려운 문제에 봉착해서 머리를 싸매고 있을 때, 해결책을 제시해주는 그들에게 진심으로 감사한다.

담대하게, 그리고 좀 더 진지하게 문제에 접근하는 태도를 길러야겠다.