Media Log

[가볍게 읽기 좋은 책(컴퓨터)]에 해당되는 글 48

  1. h 스마트 플랫폼 전략 - 황병선 2012.12.24
  2. h 김택진 스토리 4 2012.03.26
  3. h 제로 데이 - 마크 러시노비치 2012.03.02
  4. h 티몬이 간다, 1등 소셜 커머스 티켓 몬스터 이야기 2012.02.06
  5. h 시작하세요 맥 OS X 라이언 - 이대엽 역 2012.01.16
  6. h 거꾸로 배우는 소프트웨어 개발 -이호종 2011.11.08
  7. h 아이디어 맨 -폴 앨런 지음 2011.10.05
  8. h 웹 개발자를 위한 웹을 지탱하는 기술 2011.09.27
  9. h 웹으로 배운다 -우메다 모치오 2011.09.18
  10. h 프로그래머 그 다음 이야기 2011.09.12
  11. h 한국 IT 산업의 멸망 -김인성 8 2011.06.27
  12. h 악성코드, 그리고 분석가들 -이상철 2 2011.06.27
  13. h 오프라인 비즈니스 혁명 -정지훈 2011.05.24
  14. h 폰 노이만 VS 아인슈타인 -김원기 지음 2011.05.08
  15. h 메일의 달인이 가르쳐주는 G메일 업무 기술 -카바사와 시온 지음 4 2011.05.08
  16. h 구글 크롬 OS -이영희 옮김 14 2011.01.10
  17. h 아직 못 다한 인터넷 이야기 -김태규 2 2010.11.28
  18. h 대한민국에는 소프트웨어가 없다 -김익환 2 2010.11.10
  19. h 글로벌 소프트웨어를 꿈꾸다 -김익환 2 2010.10.26
  20. h 유닉스 리눅스 프로그래밍 필수 유틸리티(개정판) -백창우 4 2010.10.21
  21. h 프로그래머의 길, 멘토에게 묻다 -데이브 후버 저 2010.08.15
  22. h Hadoop 완벽가이드 -톰 화이트 저 2 2010.08.11
  23. h 프로그래머가 몰랐던 멀티코어 CPU 이야기 -김민장 2010.07.08
  24. h 안드로이드 프로그래밍 정복 -김상형 2010.05.23
  25. h 디지털 혁명의 미래 -고든 벨 2 2010.05.22
  26. h 세상을 뒤흔든 프로그래머들의 비밀 -에드 번즈 지음 2 2010.03.28
  27. h 난 정말 JAVA를 공부한 적이 없다구요 -윤성우 저 2010.03.17
  28. h 능률적인 프로그래머 -닐 포드 2010.02.04
  29. h 대한민국 IT사 100 -김중태 2010.01.07
  30. h 구글, 신화와 야망 -랜달 스트로스 4 2009.08.10
스마트 플랫폼 전략 - 9점
황병선 지음/한빛미디어

제목과 꼭 들어맞는 내용으로 알차게 구성되어 있는 잘 쓰여진 책이다.

첫 삼분의 일은 플랫폼이란 무엇인지 왜 중요한지에 대해서 할애하고 나머지 삼분의 이는 애플과 구글 그리고 마이크로소프트에 대해서 이야기 한다. 이 세 회사를 삼국지로 빗대서 이야기한 책들이 이전에도 몇 권 있었는데, 이 책에서는 그들의 플랫폼 전략을 바라보는 관점에서 이야기를 하기 때문에 단순히 재미뿐만 아니라 영양가도 많이 있었다. 과거의 역사를 돌아보고 왜 성공했는지 혹은 왜 실패했는지와 앞으로 각 회사들의 플랫폼 영향력이 어떤 식으로 발전할지에 대해서 저자 나름의 주장을 하는데, 기술적으로나 전략적으로나 아주 잘 분석했다는 생각이 든다.

모바일 플랫폼에 관심이 있는 사람들이 꼭 한번 읽어보기를 추천한다.


P.S 구글이 비록 모토로라를 인수했지만 저자는 이런 저런 이유를 대면서 자체 스마트폰은 아마도 제작하지 않을 것이라 예상했는데, 그 예측은 보기 좋게 빗나간 것 같다. 개인적으로는 루머가 사실이길 바라고 있으며 빨리 완성된 제품을 보고 싶다.

김택진 스토리 - 7점
김정남 지음/e비즈북스
몇달 전 DevOn인가 Daum에서 진행했던 개발자 행사에서 김택진의 이야기를 듣고는 어떤 사람인지 좀 더 알고 싶어져서 읽어본 책이다. 100페이지 짜리 아주 얇은 책이라서 금방 읽을 수 있었다.

현대에서 병특을 하는 동안에도 승진에 승진을 거듭하고 정주영 앞에서 프리젠테이션을 하기도 했다는 걸 읽으면서 될 성 싶은 나무는 떡잎부터 다르다더니 그 말이 딱 맞구나 싶었다.
이미 초 거물이 된 엔씨소프트 사장의 지금 모습이 아닌 한메소프트 시절과 엔씨 소프트 초창기 시절 엔지니어 김택진의 모습만을 다뤄줘서 너무 좋았다.

좀 아쉬웠던 점은 이렇게 얇은 책임에도 불구하고 김택진에 대한 내용으로 가득 채워져 있는 것이 아니라 송재경과 김정주, 리처드 개리엇 같은 사람들의 내용으로 절반 이상을 할애한다는 점이다. 물론 그들의 이야기도 재밌게 읽긴 했다. 하지만 그래도 책 제목이 김택진인데 송재경이나 리처드 개리엇 이야기를 김택진 만큼 많이 써버리면 좀 그렇지 않나.
제로데이 - 4점
마크 러시노비치 지음, 김지량 옮김, 정관진 감수/제이펍
마이크로소프트의 테크니컬 펠로우이자 윈도 인터널의 저자인 마크 러시노비치가 사이버 보안에 관련된 소설을 썼다길래 원서가 나왔을 때부터 얼른 번역되기를 기다리고 있었다.
이번 주에 회사에 왔다 갔다 하면서 조금씩 읽다가 이번 휴일에 다 읽었는데 읽는 내내 실망감을 감출 수 없었다. 읽으면서 어쩌면 마크 러시노비치는 기술적인 몇 가지 부분의 아이디어만 제공하고 다른 사람이 전체적인 내용을 써내려갔을지도 모르겠다는 생각이 들었다. 하긴 그렇게 바쁜 사람이 무슨 소설을 쓴다고.
전체적인 구성이 별로였다. 기술적인 부분도 재미가 없었으며 주인공들의 로맨스도 어설펐고 긴장감도 없었다. 훌륭한 엔지니어가 훌륭한 소설가가 되는 것은 어렵다는 것만 배웠다.
티몬이 간다 - 9점
유민주.티켓몬스터 지음/이콘
나는 그루폰이라는 회사 때문에 소셜 커머스라는 아이디어에 대해서 처음 알게 되었다. 하지만 크게 관심은 갖지 않았다. 그루폰이 한국에 처음 서비스를 시작했던 날에 한번 들어가보고는 이메일 주소를 입력하라길래 바로 꺼버렸던 기억이 난다. 티켓 몬스터는 작년과 재작년 귀가 닳도록 이름을 들었지만 거의 일년 가까이 그냥 애들 딱지 스티커나 만들어주는 뭔가인줄로만 알았다.

그 후 티켓 몬스터가 무슨 회사인지 알게되고 얼마전에 블로그 어디선가 이 책을 소개하는 글을 보고 한번 읽어보고 싶다는 생각이 들었었는데 어제와 오늘 종일 방구석에 누워서 재밌게 읽었다.

85~86년생의 어린 친구들이 만든 회사. 게다가 1년 남짓한 새 직원수가 700명으로 늘어난 놀라운 회사. 그들이 어떻게 창업을 하고 회사를 운영해왔는지에 대해서 재밌게 쓰여있다. 좋은 학교에 다녔고 에너지도 넘치는 친구들이지만 너무 순진하기도 해서 와 이렇게 해도 회사가 클 수 있기는 하구나 하는 생각마저 들었다.

창업자 중 한 친구가 옛날 텍스트큐브의 노정석 대표가(지금은 아블라 컴퍼니) 혼자 카페에 있다는 트윗을 날린 것을 보고 땀을 뻘뻘 흘리고 달려가서 창업 아이템에 대해서 조언을 구한 열정은 정말 멋지다고 생각했다. 후배들과 몇 번 대화해보고는 그 가능성을 일찌감치 알아보고 선뜻 5천만원을 투자해준 노정석씨도 참 대단하다.

조그만 사무실에서 책상도 없이 아무대나 기대어 앉아 밤새가며 함께 서비스를 만들어가는 젊음들이 왜 이렇게 부러웠는지 모르겠다. 작은 회사에 다닐 때는 항상 큰 회사가 부러웠는데 막상 큰 회사로 오니 다시 작은 회사가 부러워진다. 사람 마음은 어째 이렇게 청개구리 같은가.

작년 이맘 때쯤, 다니던 회사를 그만두기 전에 한 임원과 대화를 하다가 자기는 회사에서 일하는 것이 하루하루 너무 즐겁다는 이야기를 들은 적이 있다. 그 때 그는 회사라는 것은 남자가 가지고 놀 수 있는, 세상에서 가장 정교한 장난감이라는 말을 했었는데 나는 그 말이 너무 마음에 들었다.
나도 언젠가는 창업을 한 번 해보고 싶다. 레고 블록을 맞추듯이 회사를 조립해 가면서 회사가 커나가는 것을 바라 보는 기쁨을 맛보고 싶다. 그 때를 위해서 지금은 열심히 실력을 길러놔야 한다.
시작하세요! 맥 OS X 라이언 - 8점
로빈 윌리엄스 & 존 톨렛 지음, 이대엽 옮김, 김태영 감수/위키북스
맥북 에어가 한 대 생겨서 좀 써보려고 하는데 도대체 뭘 어떻게 쓰는건지 알 수가 있어야지. 그래서 책을 보고 공부하기로 했다. 나는 아직까지 인터넷보다는 책으로 공부하는 것을 선호한다. 맥 라이언 책들이 수두룩하게 있었는데 이 책이 가장 좋아보이고 역자 이름이 눈에 익어서 이걸로 선택을 했다.

응용 프로그램들에 대한 설명은 대충대충 보고 넘어가고, 맥 OS X 전체적인 공통 인터페이스나 파인더 셋팅, 미션컨트롤과 같은 부분들은 하나씩 따라하면서 꼼꼼히 읽어보았다. 그림들이 컬러로 되어있고 폰트들이 아주 맘에 들어서 좋았다.
한 달여 동안 집에서 쿠분투를 꺼놓고 맥북만을 사용했는데 덕분에 이제는 꽤 익숙한 사용자가 되었다.

나는 애플 Hater라고 말할 수 있다. 지금까지 애플 제품을 한번도 사서 써본 적이 없었는데, 다른 이유는 없고 그냥 그네들이 돈을 너무 비싸게 받아먹기 때문이었다. 주위에서 애플 제품이 끝내주게 좋다고 말하는 사람들이 너무나도 많아져서 얼마나 좋은지 나도 한번 써보고 싶었다. 한번 써보면 윈도우로 다시 돌아가지 못한다나 어쩐다나. 멀티 터치 같은 트랙패드 기능들은 정말 훌륭해서 매번 감탄하고 있다. 세 손가락 드래깅으로 창을 이동시키는 것이 너무 익숙해져서 다른 노트북을 만질 때마다 몹시 불편함을 느낀다. 하지만 사람들이 말한 정도로 맥 OS X가 끝내준다고 생각되지는 않는다. 처음 보는 사람들도 한눈에 직관적으로 사용법을 알 수 있다고 하는데, 아니, 옵션키를 눌러야 메뉴에 새로운 아이템이 추가되는 것을 누가 설명서도 안 읽어보고 알아챌 수 있겠는가.
무엇보다 쓸만한 응용들이 윈도우즈에 비해 턱 없이 부족하다. 그래도 우분투보다는 낫지만.
거꾸로 배우는 소프트웨어 개발 - 8점
이호종 지음/로드북
소프트웨어 개발의 모든 것과 비슷한 종류의 책이며 아래 내용들을 다룬다.
재미있는 편이며, 대체로 그 내용에 동의한다. 책의 완성도는 소프트웨어 개발의 모든 것이 좀 더 낫다고 생각한다.

  • 개발 표준
    • 코딩 스타일
    • 공통 라이브러리/프레임워크
    • 문서화 표준
  • 개발 기반
    • 소스 코드 관리 시스템
    • 이슈 트래커
    • 개발/테스트/운영서버 분리
    • 지속적 통합
  • 개발 기법
    • 단위 테스트
    • TDD
    • 리팩터링
  • 개발 방법
    • 폭포수 vs. 애자일
    • 조직론.
    • 스크럼.
    • 협업.
    • 개발 관리.

위의 내용들은 소프트웨어 개발에 있어서 아주 중요한 내용들이지만 학생 때는 쉽게 접하지 못하는 내용들이다. 보통은 처음 회사에 들어가고 나서 저런 것들을 배우게 되는데, 아주 잘하는 회사도 있고 그저 그런 회사도 있기 때문에 회사를 잘 골라 들어가는 것이 중요하다.

취업이 안된다고 초조한 마음에 우선 1, 2년만 배우고 좋은 회사로 옮겨야지 하고는 저기 구로공단에 이름 없는 아무 회사나 들어가서는 안된다는 뜻이다. - 구로공단은 그냥 예로만 들었을 뿐 나쁜 의도는 없다.

그런 작은 회사들 중에는 소스코드 관리 툴도 사용하지 않는 곳이 잔뜩 하기 때문에 그런 곳에 들어가면 고생은 고생대로 하고 시간만 낭비하는 셈이다.

이 책에서 나오는 내용들을 가장 쉽고 빠르게 터득하고 싶은 방법은 이런 시스템이 잘 구축되어 있는 회사에 들아가는 것이다. 어떤 회사가 잘하는 회사인지 잘 모르겠다면 어느 정도 이름을 많이 들어봤고 개발자 수가 많은 회사를 찍는 것이 맞을 확률이 높다.
만일 그런 회사에 다니고 있지 않다면 회사를 옮기는 것도 좋다고 생각한다. 스스로 공부하면서 배울 수도 있겠지만 쉽지는 않을 것이다. 서버를 구성하는 것도 몹시 귀찮은 일인데다가, 혼자서 이슈 트래커에 이슈를 기록하고 완료하면 (왕따놀이를 하는 것도 아니고) 도대체 무슨 재미로 하나.

아래 위키 페이지에 있는 회사들은 적어도 소스코드 형상 관리툴 정도는 모두 사용할 것이라 생각한다.
대한민국의 IT기업

반면에 CI 서버를 구성해놓고, 코드 커버리지 측정이나 정적 분석 등을 자동으로 수행 하고 있는 회사는 여전히 별로 없는 것 같다. NHN에서는 위 목차의 내용을 모두 하고 있고 심지어는 코드의 라인 수 까지도 체크해서 라인이 얼마가 늘었고 라인당 버그수가 얼마인지 까지 보고 되는데 이건 얼핏 보면 한심하고 쓸데 없어 보이지만, 내 생각은 안하는 것보다는 훨씬 낫다이다.

잘 구축된 CI 서버는 마치 똑똑한 군사와도 같다. 전쟁의 상황에 대해서 지속적으로 보고 해주고 위험한 일이 발생하면 적절한 조언도 해주는 것이다.

어떤 사람들은 위에서 나오는 내용들을 꼭 대학교 커리큘럼에 넣어야 한다고 주장하는데, 거기에는 별로 동의하지 않는다. 이 많은 과정을 쑤셔넣으려면 그만큼을 빼내야 하는데 무슨 과목을 빼낼 셈인가.

웹 개발자를 위한 웹을 지탱하는 기술 - 8점
야마모토 요헤이 지음, 김성훈 옮김, 권정혁 감수/멘토르
세련되게 잘 만들어졌다고 생각되지는 않지만, 그럼에도 불구하고 어느샌가 세상에 너무도 깊숙이 파고들어 사용되고 있는 응용 프로토콜이 있다. 이 책의 제목인 웹을 지탱하는 기술의 1번 타자인 HTTP 이다.

이 책은 Restful 하다는 것이 무엇인지에 대해서 잘 가르쳐주는 책이다.
책의 초반부에는 웹과 HTTP의 역사를 말해주는데 재밌게 읽었다.
그 이후에는 HTTP 프로토콜에 대해서 많은 장을 할애하고 뒤에서는 Atom, Json, 마이크로포맷 등에 대해서도 다룬다.

아주 깊은 내용을 다루는 것은 않지만 이런 주제를 다루는 한글책이 그동안 거의 없었다는 것을 생각해보면 한번쯤 사서 읽어볼 가치가 있는 책이다. 내용도 꽤 재미있다.
웹으로 배운다 - 6점
우메다 모치오 & 이이요시 토오루 지음, 김주란 옮김/제이펍
2008년도엔가 우메다 모치오의 웹진화론을 너무 재밌게 읽어서 그가 쓴 신간들은 항상 읽어보고 있는데, 새로나오는 책들은 그 때 만큼 충격적이고 재미있지는 않다.
이 책은 웹진화론에서도 다뤘던 MIT의 오픈코스웨어 같은 무료 오픈 교육을 책 전체의 주제로 다룬다. 나는 처음 책 제목만 보고는 이 책이 그런 내용일 것이라고는 생각들지 않았는데 제목이 좀 잘못지어지지 않았나 싶기도 하다.
 웹진화론에서 우메다씨는 오픈코스웨어가 왜 성공하지 못했었는지 비관적으로 봤었는데, 이 책에서 그런 이야기들을 다른 저자와 함께 토론 형식으로 좀 더 심도있게 다룬다.

현재는 MIT의 OCW 말고도 예일대학교의 OYC나 카네기 멜론대학 OLI가 생겼고 앞으로 더 많은 대학에서 시도할 것 같다. 특히 카네기의 OLI는 MIT처럼 문어발식으로 이것 저것 대충대충(?) 만들지 않고 몇몇 과목에 집중해서 만들려고 하는 의지가 보이는데 아쉽게도 내가 관심있어하는 컴퓨터 과학 분야는 아직 없다. 그렇지만 곧 Secure Coding, Principles of Computing 등 재밌어 보이는 과목들이 개설될 것 같아서 기대하고 있다.

그래도 제일 오래해왔고 가장 많은 강의를 보유한 MIT에는 마법사책으로 유명한 컴퓨터 프로그램의 구조와 해석이나 Introduction to Algorithms 등 아주 유명한 강의들도 있는데, 이게 생각했던 것처럼 도움이 되지는 않는다.
물론 가장 큰 이유는 영어이다. 영어권에서 태어난 사람들은 이런 오픈 강의들이 축복처럼 생각될지도 모르겠다만, 무슨 말인지 하나도 못알아듣겠는데 뭔 공부를 한단 말인가.
몇 년전부터 영어를 위해서 문법 공부만 신나게 했는데, 이런 동영상 강의를 볼 때마다 절반 이상 놓치면서 스트레스만 받고 있는 나를 발견한다.
뭐 그거야 어쨌든 영어를 잘 못하는 내 사정이고, 언젠가는 각 나라별로 자막도 제공해줄 것이라 믿는다. 물론 그 때까지 놀면서 기다려서는 안되겠지만.

또 한가지 아쉬운 점은 MIT에서 제공되는 동영상 강의 같은 경우 화질이 너무 떨어지는데다가 카메라도 거의 움직이지 않고 정적인 화면만을 보여준다는 점이다. 720p정도는 안되더라도 480p 정도로는 만들어야 하지 않을까? 고정된 카메라 화면은 그 자체로 수면제이다. 내가 영어를 완벽하게 이해할 수 있었더라도 이 강의를 보면 재미가 있었을까 하는 생각이 드니 말이다.
물론 이것들 또한 앞으로는 더 좋아질 것으로 기대한다. 하지만 처음 만들 때부터 좀 잘 기획해서 만들었으면 더 좋았을텐데 말이다. 게다가 MIT는 오픈 코스웨어의 갯수에만 집착하고 있는 것 같다. 즉, 이전에 강의를 만들어 놓은 것은 새로 만들지 않고 그걸로 계속 우려먹는다. 따라서 아직 오픈용으로 안만들어져있는 강의나 새로 개설되는 강의만이 오픈코스웨어에 추가되고 있으므로 기존 강의들은(정적이고 저화질의) 전혀 업데이트가 안되니 답답한 노릇이다.
그래서 카네기의 OLI나 다른 새로운 대학에서 새롭게 시도하는 오픈 교육들이 더욱 기다려진다.

P.S 출판사인 제이펍에서 오픈 코스웨어 사이트들을 잘 정리해둔 링크가 있다.
오픈 코스웨어 관련 사이트 모음
프로그래머 그 다음 이야기 - 6점
임백준 외 지음/로드북

얼마전에 나온 신간이며, 프로그래머들이 가볍게 읽어보기 딱 좋은 책이다.
6명의 프로그래머에 대한 에세이들이 있는데 1번타자인 임백준씨의 글을 가장 재밌게 읽었다.

잠시동안 관리자의 역할을 맡게되면서 프로그래밍 실력이 떨어질까봐 걱정하는 마음.
옆의 똑똑한 동료들과 경쟁을 하고 함께 토론을 하면서 실력을 재보고, 또 그들을 도저히 이길 수 없겠다는 한계를 느끼며 좌절하는 감정들을 솔직하게 잘 썼다. 이런 것들은 프로그래밍이라는 것을 정말로 진지하게 생각하고 좋아하지 않으면 느낄 수 없는 감정들이다.

미국 회사들의 분위기를 엿볼 수 있는 것도 좋았다.
아, 그런데 임백준씨도 그렇지만 많은 사람들이 한국에서 일하는 프로그래머들이 너무도 힘든 삶을 살고 있는 것으로 생각한다.
정말 그런가? 나는 비록 경력이 5년 정도 밖에 되지 않고 회사도 2군데 밖에 다녀보지 않았지만 여태까지 그런 것은 느껴보지 못했다. 뜨거운 여름날에 와이셔츠가 온통 땀으로 쩔어서 영업하러 나갔다가 잘 안풀리고 들어와서 욕이나 실컷 얻어먹는 세일즈맨들에 비하면 시원한 사무실에 앉아서 커피 한잔 하며 코딩하는게 얼마나 편안한가.

사람들은 항상 자신이 하는 일을 더 고되고 힘들게 포장해서 자랑스럽게 말하는 경향이 있는 것 같다.
- 우리 부대군기는 진짜 빡셌어.
- 요즘 어린 애들은 버릇이 없어. 우리 때는 그런거 상상도 못했는데.
- 니가 몰라서 그렇지 우리 부서가 얼마나 힘든데.

프로그래머로서 스트레스를 받는 순간이 있다면 기능을 정해진 시간에 맞춰서 구현해낼 수 있을까 하는 약간의 초조함과 동료와 기술적으로 의견 충돌이 발생했을 때, 그리고 심각한 버그를 보고 받았는데 문제가 잘 안 풀릴 때 정도이다.

다른 직종에서 일을 해본적은 없기 때문에 비교해서 생각해볼 수는 없지만, 사람들이 생각하는 것처럼 프로그래머가 못해먹을 직종은 아닌 것 같다. 진짜 못해먹을 일 하면서 사는 사람들이 얼마나 많은데.

임백준씨의 에세이는 아주 즐겁게 읽은 반면에 다른 에세이들에서는 별로 재미를 느끼지 못했다.
이 책에 나오는 프로그래머들은 열심히 살아왔고 좋은 프로그래머들임에는 분명하지만 옆자리에서 흔히 볼 수 있는 평범한 프로그래머들이다. 그럼에도 불구하고 이미 프로그래머로써 무언가 큰 것을 이룬 사람들처럼 자서전을 쓰듯이 글을 썼기 때문에 재미가 떨어지지 않았나 싶다.

그러고 보니 정말로 무언가 큰 것을 이룬 국내 최고의 프로그래머들을 불러다가 어떻게 공부했는지 에세이를 써보라고 하면 그것도 참 재밌는 책이 될 것 같다.


한국 IT산업의 멸망 - 7점
김인성 지음/북하우스
선정적인 책 제목만큼 내용도 꽤나 자극적이고 과격하다.

언젠가 구글 블로그에서 이 책 100권을 무료로 보내준다고 하길래 뭐지 했는데, 책을 읽어보니 고개가 조금 끄덕여 진다.

저자는 MS와 네이버는 악의 축이고 삼류 제품이라고 원색적으로 비난하는데 반면 구글과 애플에 대해서는 찬양 일색이다.
현재 구글이나 애플이 잘하고 있는 것은 사실이지만 MS의 제품들이 하나 같이 쓰레기 삼류 제품이라고 말하는 것은 좀 지나치지 않나 싶다. 오래전부터 KLDP 에서 리눅스를 하는 몇몇 사람들이 MS 제품들을 무조건 비방하는 글들을 많이 봐왔다. 아니 좋은건 좋다고 할 줄도 알아야지 윈도가 얼마나 잘 만든 제품인지를 정말 몰라서 그러는건가?

책 절반 동안 내내 MS와 네이버 욕을 하다가 나머지 후반에는 아이폰과 통신사들에 대한 이야기를 한다.
전반부에서는 한쪽은 욕하고 다른 한쪽은 찬양하는 내용들 뿐이라 읽기가 불편했는데, 후반부에 와서야 기술적인 내용들이 많이 섞여있어서 좀 더 재밌게 읽을 수 있었다. 특히 이동 통신과 IPTV에 대한 내용이 좋았다.

에필로그의 제목은 '멸망 속 희망을 찾아낼 당신을 기다리며'이다.
그런데 저자가 말하고 있는 것처럼 정말 한국 IT 산업이 멸망하고 있는가? 나는 잘 모르겠다.
악성코드 그리고 분석가들 - 8점
이상철 지음/지&선(지앤선)
가끔씩 일요일 저녁 일찍 잠이 들어 밤 늦게 깨어버릴 때가 있다.
그럴 때는 책을 한 권 집어 들어 해가 뜰 때까지 읽고는 하는데, 오늘은 이 책이 걸렸다.

안철수 연구소에서 분석가로 일하고 있는 사람이 7년동안 회사에서 일하면서 있었던 일들에 대해서 솔직하게 기록해두었는데 읽기도 쉽고 재밌는 편이다. 몇몇 기술적인 내용들도 재밌었고 안철수 연구소의 회사 문화나 일하는 방식이 훤히 보여서 좋았다.

나는 바이러스나 리버스 엔지니어링 기술에 대해서는 별로 흥미가 없지만(노가다성 일이 많기 때문에) 책 내용이 재밌어서 처음부터 끝까지 쭈욱 다 읽어봤다.

개인적으로는 무림강호의 세계 시리즈가 가장 재밌었다. 위대한(?) 바이러스와 루트킷들이 어떻게 동작하는지에 관한 내용들인데, 나는 그걸 만든 친구들이 나쁜놈들이라는 생각이 들기보다는 나이는 몇 살이나 먹었을까 어떤 식으로 윈도 내부를 공부하길래 그렇게 깊고 정확하게 알고 있을까하고 궁금 했다. 한번 만나보고 싶다. 설마 중고딩은 아니겠지.

책 말미에는 딴 얘기도 나온다. 중국에 있을 때 회사 여직원이 자기를 좋아했는데 술 마시고 오바이트 해버리고 한참을 스토킹을 하고 어쩌구 저쩌구. 그런데 이런 내용까지 쓸 필요가 있었는가. 뭐 재미있게는 읽었지만 남의 책에 원치않는 내용으로 자신의 이름이 팔려버린 그 중국 여직원이 좀 불쌍해서. ㅋㅋ
오프라인 비즈니스 혁명 - 8점
정지훈 지음/21세기북스(북이십일)
회사를 그만두고 두 달 가까이 코딩을 안하고 강시처럼 살았더니 프로그래밍 책을 다시 집어드는게 조금 무서워졌다.
그래서 요즘엔 이런 읽기 쉬운 편한 책들을 많이 읽고 있다.

이 책은 얼마전에 거의 모든 IT의 역사라는 책을 썼던 정지훈님의 신간이다. 나는 '거의 모든 IT의 역사'를 아주 재밌게 읽어서 바로 알라딘에서 작가의 신간 알리미 신청을 해두었었다.
저자는 하이터치 하이컨셉이라는 블로그를 운영하고 있으며 책 내용이 블로그에 그대로 올라오며 그 외 다른 좋은 내용들도 가끔씩 올라오므로 꼭 구독해서 보기를 권한다.

거의 모든 IT의 역사가 지금까지의 일들을 정리한 책인 반면에 이 책은 앞으로 어떤 방향으로 세상이 변해갈지 하는 내용을 담고 있다.

처음 책을 몇 장 넘겼을 때는 2008년도에 징하게 읽었던 웹 2.0 경제학 이야기들이 또 나오는 건가 했는데, 읽을 수록 새롭고 몰랐던 내용들을 많이 배워서 좋았다.

3D 프린터나, DIY 무인 비행기, 오픈소스 자동차 프로젝트 같은 것들은 참 신선했다.
이런 것들을 보면 프로그래밍을 하는 것보다 서비스를 기획하는게 어쩌면 재밌지 않을까 하는 생각도 든다.

장사해서 돈을 벌어 먹고 있는 사람들은 이 책을 한 번 읽어보기를 추천한다.
폰노이만 VS 아인슈타인 - 8점
김원기 지음/숨비소리
어느 블로그를 구경하다가 이런 책도 있었구나 하는 것을 알게 되었다. 도서관에도 없는데다가 절판된 책이라서 YES24에서 중고책으로 3천원에 사서 봤다.

제목만 봐도 참 재밌지 않겠는가? 내가 유별난건지는 모르겠지만 천재들 이야기는 항상 재밌다. 특히 컴퓨터와 관련된 천재 이야기는 더 재밌다.
그래서 아인슈타인 이야기 보다는 폰 노이만 이야기를 할 때가 더 재밌었다.

이 책에서 프린스턴 고등연구소라는 곳을 처음 알았다. 죽을 때 까지 이 곳에서 돈을 받으며 하고 싶은 연구를 마음껏 할 수 있다. 아인슈타인과 폰노이만은 이 연구소의 첫 멤버 였다. 어떠한 압박도 없었기 때문에 꿈의 연구소라고 불리우지만 그만한 명성이 쌓아놨어야 이 곳에서 종신 교수를 할 수 있다.

돈 3천원으로 아주 재밌게 잘 읽었다. 하지만 특별히 배울 점이라던가 할만한 것은 없다.
폰 노이만은 몇 년전에 읽었던 책의 일부를 프린스턴 연구소에 가서도 한 글자도 틀리지 않고 기억해내서 동료들은 깜짝 놀라게 하곤 했다. 어릴 때부터 열자리가 넘어가는 수의 곱셈을 암산으로 해낼 수 있었다. 이딴 이야기들을 들어봤자 우리가 뭐 흉내나 낼수 있겠는가.
Gmail 업무 기술 - 8점
카바사와 시온 지음, 김욱 옮김/한빛미디어

2000년 3월 한메일 주소를 갖게된 이후로 2008년 말까지 우직하게도 한메일만을 고집해왔었다. 2008년도 언젠가부터 메일을 보낼 때 G메일을 가끔씩 쓰기 시작했는데, 그 후 한메일로 오는 메일들을 자동으로 G메일로 퍼갈 수 있다는 것을 알게 된 후로 기존에 받았던 메일을 모두 G메일로 옮겨버리고 완전히 이사를 했다.
처음 G메일을 사용하면서 불편했던 점 한가지는 수신확인 기능이 없다는 것이었는데, 회사 생활을 하다보니 수신확인이라는 기능이 연애초기에 애인과 편지 주고 받는 것을 빼면 그다지 필요하지 않다는 것을 알게되었다.

쓰면 쓸수록 G메일에 빠져들어서 나는 이제 G메일과 다른 구글 서비스들의 광팬이 되어버렸다.
내가 G메일에서 특히 좋아하는 기능들은 다음과 같다.
  • 아카이브
  • 구글 톡 대화기록을 G메일로 저장
  • 메일과 그 회신메일들이 그룹으로 묶여서 보여지는 기능
  • 라벨과 필터를 쉽게 적용.
  • 똑똑한 스팸필터 기능.
이 책에서 새로운 기능들을 배울 수 있을 것 같아서 읽어보긴 했는데 책은 재밌게 읽긴했다만 많은 것을 얻지는 못했다.
  • gmail-backup.com 에서 gmail을 백업할 수 있다는 것.
  • Inbox 위에 나오는 광고를 환경설정에서 없앨 수 있다는 것.
  • 제목 끝에 EOM을 붙이면 G메일이 그걸 인식하고 본문이 없다고 메세지 박스를 띄우지 않는다는 것.
  • 별태그를 여러 색깔로 만들어서 사용할 수 있다는 것.
이 책에서 배울 가장 중요한 점은 메일을 삭제할 필요가 없다는 점이다. 하드디스크나 메일함의 용량이 모자라서 그나마 덜 중요한 데이터를 삭제 해본적이 있는가? 그랬다면 아마 이전에 지웠던 데이터 때문에 나중에 후회해본 적도 있을 것이다.
이제는 용량이 부족해서 어쩔수 없이 데이터를 지워야 하는 시대는 지났다. 사랑하는 사람에게 받았던 연애편지는 물론 대부분의 사람들이 소중하게 다룰테지만, 인터넷쇼핑몰에서 구매확정을 해달라고 보내오는 귀찮은 메일조차도 지우는 것보다는 잘 분리해서 보관하고 있는 편이 더 낫다. 이것은 꼭 메일에만 적용되는 것이 아니라 다른 모든 디지털 데이터와 잘 살아가는 현명한 처사이다.
G메일에서는 아카이브 기능과 필터, 라벨 기능을 통해서 이를 쉽게 적용할 수 있는데 책에 잘 설명되어져 있다.

다음 메일주소를 만들어서 쓰다가 네이버가 뜨니깐 네이버 메일 주소들을 만들어서 또 다른 사람들에게 주소를 가르쳐주고. 그래서 양쪽을 다 들어가면서 메일 확인을 하는 사람들은 꼭 G메일을 안쓰더라도 이 책을 읽어볼 필요가 있다. 한 곳에서 메일을 관리할 수 있는 방법을 배울 수 있을 것이다.

내가 G메일에서 가장 싫어하는 기능이 방금 생각이 났다.
첨부파일을 보낼 때 exe 파일은 보낼 수 없는 점. 압축을 해서 보내도 실행파일인 것을 알아채고 허용을 안해주는데, 그래서 나는 다른 서비스에 파일을 올리고 링크를 복사해서 주거나 파일의 확장자를 바꿔서 보내면서 상대방에게 양해를 구한다. 첫번째 방법은 다른 서비스에 의존하게 되는 것이 영 맘에 들지 않는다. G메일로 첨부하면 보낸 파일 또한 G메일에 저장되는 것이 더 깔끔한데 말이다. 두 번째 방법은 정말 한심한 방법인데, 저 방법을 쓰고 앉아있는 내가 너무 한심해서 G메일에게 더 화가 나곤 한다. 상대방이 다시 첨부파일의 이름을 변경해야하기 때문에 친한 친구에게나 사용하는 것이 좋을 것이다.
구글 크롬 OS - 8점
코이케 료지 외 지음, 이영희 옮김/한빛미디어
예전부터 크롬 OS가 뭐일까 궁금했었는데, 우연히 책을 선물 받아 주말동안 단숨에 읽어버렸다.

이 책의 서론에 나오는 특별기고 중 두번째 내용인 '왜 구글은 크롬 OS를 무료로 제공할까?'는 아주 잘 쓰여졌고 내가 궁금했던 점들을 많이 해결해주었다.

그 답은 인터넷에 연결할 수 있는 디바이스들을 더 많이 보급하기 위함이다. 그 디바이스는 10만원짜리 싸구려 컴퓨터여도 상관없고, 핸드폰이나 다른 어떤 장비여도 상관없다. 유선으로 연결하던 와이파이나 3G로 연결하는지도 상관없이 인터넷만 되면 된다. 인터넷 인구가 많아지면 그에 비례하여 광고 수입이 늘어날 것이다.
일단 인터넷 세상으로만 끌어들이면 자기네 서비스보다 나은 서비스는 없다고 생각하는 자신감 마저 엿보인다.

얼마전에 크롬 브라우저에 동기화 기능이 추가되었다. 회사에서나 집에서나 또는 크롬을 재설치 할때마다 확장들을 다시 셋팅해주는 것이 엄청 번거로웠었는데 이제는 그럴 필요가 없다. 물론 크롬 OS에서도 당연히 이 기능이 지원이 된다. 확장 프로그램만 동기화 되는 것이 아니라 테마나 북마크 등 모든 환경을 동기화 할 수 있는데, 이는 어느 컴퓨터 앞에 앉던지 자신의 환경을 손쉽게 만들 수 있다는 뜻이다.

1장에서 크롬OS의 전략 소개가 끝나고 2장에서는 크롬OS를 빌드하는 방법도 나온다.
이런 챕터가 있을 줄은 예상하지도 못했었는데, 너무 좋았다.
한빛미디어 사이트에서 이미 빌드된 vmware 이미지를 내려 받을 수 있다.

그런데 한빛미디어에서 받은 파일은 크롬 OS가 잘 실행되긴 하지만, 처음 로그인창에서 네트워크가 안 잡혀서 다음으로 진행이 되질 않았다.
그냥 나도 왠지 한번 빌드를 해보고 싶어서, 책의 내용과 크롬 홈페이지의 가이드를 바탕으로 최신버전으로 내려받아 빌드를 해봤다. 내가 빌드한 버전은 0.10.139 이고 한빛미디어에 올라가 있는 버전은 0.9.111 이다.

구글 매뉴얼에는 우분투 10.04에서 빌드하라고 쓰여있는데, 나는 그냥 10.10에서 했고 문제 없이 잘 빌드가 되었다. 새로 빌드한 이미지는 로그인도 잘 되고 아무런 문제가 없어서 이것 저것 둘러볼 수 있었다.

빌드한 vmware 이미지를 올려두었으니 크롬 OS에 대해서 궁금한 사람은 이곳 링크를 통해 다운로드 받아서 직접 한번 구경해보는 것도 좋겠다. -우선 실망할 각오는 하고. 크롬 OS의 목적을 이해하고 나면 당연한 일이지만, 대단한 것은 하나도 없다.

위 링크는 곧 삭제할 예정이다.
VirtualBox 이미지도 만들어봤는데, 부팅이 되지 않아서 올리지 않는다.

3장에서는 크롬 OS의 사용법을 설명하는데 이 부분은 너무 기초적인 내용이라서 건너뛰었다. 크롬 브라우저를 어떻게 사용하는지에 관한 설명이 스크린샷으로 주르륵 나온다. 이런걸 뭐하러. 1,2장하고 3장하고 수준차이가 너무 나기도 하고 어떤 독자한테도 별 도움이 될 것 같지 않다. 차라리 없는게 나았다.

4장에서는 크롬 확장을 만드는 간단한 소개와 HTML5에 대한 가벼운 설명이 있는데 읽어볼만하다.

편집 상태는 표지도 아주 맘에 들고 폰트도 신경을 써서 잘 골랐다. 3장의 썰렁한 내용만 아니었다면 더 좋았을 책이다.

아직 못 다한 인터넷 이야기 - 8점
김태규 지음/성안당

올해 초에 이 책이 처음 나왔을 때 제목과 목차를 살펴보고는 재미있을 것 같아서 도서관에 신청해두었는데 이제야 보게되었다.
사실 나는 90년대와 2000대 초반의 국내 인터넷 기술과 사업들이 어떻게 성공했고 또 망했는지 다루는 책을 기대한 것이었지만, 그런 내용들보다는 구글과 네이버 같은 회사들의 웹2.0 -이제는 식상하기까지한- 이야기가 더 많아서 조금 아쉬웠다.

물론 내가 원했던 내용들이 전혀 없었던 것은 아니다.
판도라TV나 새롬의 다이얼패드 그리고 싸이월드의 이야기 등은 아주 유익하게 읽었다. 나는 2003년 12월에 제대했는데, 바깥 세상에 나와서 싸이월드 신드롬에 꽤 충격을 받았던 기억이 난다. 지금은 국내에서조차 싸이월드보다는 트위터나 페이스북에서 시간을 보내는 사람들이 더 많을 것 같지만.

또 이 책에서 웹2.0식 대출이라는 재밌는 아이디어와 팝펀딩이라는 국내 사이트도 알게되었다.
돈을 은행에서 빌리는 것이 아니라 -마치 P2P처럼- 소액을 다수의 개인 투자자들에게 빌려서 목돈을 구하는 방식인데, 상환율이 95%를 상회한다고 한다.
진짜 95%정도 될까 궁금해서 나도 한 5만원쯤 버리는 셈치고 투자해볼까 하고 들어가봤는데 웹사이트에 '신뢰할 수 없음' 이라고 써있는 것 같아서 잠깐 둘러보다가 관뒀다.
언제부턴가 웹사이트를 방문했을 때 팝업창이 튀어나온다거나 아무짓도 안했는데 들어가자마자 액티브엑스를 설치하라고 한다거나, 회원가입시에 주민등록번호나 전화번호를 요구하는 사이트는 죄다 벌레같이 보이기 시작했다. 일단 가입하기만하면 내 개인정보가 디지털 세상의 온 뒷골목에 다 복사되어 다닐 것 같은 그런 느낌 말이다.
내가 너무 예민한걸까. 아마 그렇지는 않을게다.

구글의 유투브는 이 책이 나왔을 당시인 1년전보다도 훨씬 많은 양의 동영상이 올라오고 있지만 아직까지도 수익을 낼 방법을 찾지 못한 것 같다.
유투브가 어떤 혁신적인 방법을 찾아낼지는 정말 궁금한 부분이다. 물론 판도라TV 처럼 앞뒤로 광고를 쑤셔넣는 중국식 수법은 쓰지 않을 것이라 확신한다.
그럼 이 책에서 그 답을 가르쳐주느냐 하면 대답은 '아니오'이다. 그건 시간이 가르쳐준다고 하니 좀 기다려보자.
궁금해 죽겠지만 어쩌겠는가. 짱구를 암만 굴려봐도 모르겠는걸.
아래는 어느 한국인 구글러의 블로그 주소인데, 이런 문제를 해결하는 훌륭한 통찰력과 사고방식들을 배울 수 있다.
http://www.mickeykim.com/

이 책에서는 정치 얘기도 많이 나온다. 책 서문에서 김대중과 노무현이 IT 산업을 10년동안 일구어놨는데, 이명박이 다 망쳐먹고 있다고 너무 감정적으로 글을 써놔서 좀 놀랐다.
나는 정치적인 이야기는 별로 좋아하지 않는데 책 후반부에는 기술보다는 정치적인 얘기로 가득차 있어서 조금 지루하고 슬쩍 짜증도 났다.
뭐 그런 이야기들을 좋아하는 사람들도 많으니깐.

책은 전체적으로 아주 재미있고 기자가 쓴 글인만큼 문장이 좋다.
다른 사람들의 말이나 기사의 내용을 부분적으로 언급하면서 이야기를 진행하는 부분이 많은데, 그 인용한 부분의 전체 내용을 찾아볼 수 있는 소스를 같이 제공해주지 않은 것이 조금 아쉽다. 찾아보고 싶은 부분도 많았었는데.
e-book은 아직 한번도 구입해본 적이 없지만, 뭔가 부분을 인용할 때 전체 내용을 찾아갈 수 있는 하이퍼링크를 제공해주었으면 좋겠다. 독자가 쉽게 따라가볼 수 있도록 말이다.
꼭 e-book이 아니더라도 책을 쓸 때 참고한 url을 잘 모아두기만 하면 나중에 책에도 넣고 동시에 출판사 홈페이지에 올려서 -손으로 타이핑해서 찾아 가라고 할순 없으니깐- 독자들이 쉽게 찾아볼 수 있게 해주면 좋을텐데.

아참 책 중 너무 웃긴 내용이 하나 있었는데, 마이크로소프트의 새 검색엔진 빙이 출시된 이후 가장 큰 이득을 본 국내 회사가 어디인지 알고 있는가?
http://www.bing.co.kr

실로 아름다운 도메인이다.
대한민국에는 소프트웨어가 없다 - 8점
김익환 지음/미래의창

소프트웨어 개발의 모든 것글로벌 소프트웨어를 꿈꾸다를 읽으면서, 김익환 선생님의 책에 완전히 빠져버렸다.

이 책은 2003년 12월에 출간되었는데, 동네 도서관에도 없길래 알라딘에서 중고책으로 4000원에 사버렸다.

이 책 역시 다른 두 책들 만큼이나 재밌게 읽었다.
글을 읽기 쉽게 쓰는 재주가 있는건지, 언제나 그의 책은 달콤하게 술술 읽혀서 좋다.

지금보다 젊었을 때의 글이라서 그런지, 조금 과격하게 말하는 것들이 글에서 조금씩 드러난다. 지금은 상당히 온화한 인상을 가지고 계신데, 그 당시에는 꽤나 무서웠을 것 같다는 생각이 들었다.

'소프트웨어 개발의 모든 것'이나 '글로벌 소프트웨어를 꿈꾸다'에 비하면 이 책의 내용이 조금 더 가볍게 읽을 수 있다.
영어에 대한 조언들이나 실리콘 밸리의 문화같은 내용들도 있다.

나는 여지껏 회사를 한번도 옮겨본 적이 없는데, 이런 책에서나마 다른 회사의 개발 환경이나 문화를 엿볼수가 있어서 참 좋았다.

이 책에서 말하는 내용은 10년 가까이 지난 그의 새 책에서 말하는 내용과 똑같다.
아마도 그의 생각과 경험들이 바로 정답이고 바뀌지 않는 진리이기 때문일지도 모르겠다.

책 중간에, 프로그래머들에게는 빌 게이츠 다음으로 유명한 또 하나의 '빌'인 빌 조이의 이야기도 조금 나오는데, 너무 짧아서 아쉬웠다. 아마 Sun에 계셨을 때 한번쯤 마주쳐보지 않았을까. 빌 조이의 비하인드 스토리같은 내용을 블로그 같은 곳에 써준다면 너무나 재밌을 것 같다.

다른 두 책들과 다른 점 중의 하나는 이 책의 마지막에는 진짜 코드도 있다는 것이다. 책의 서두에서 그는 실전 비법이라고 언급하면서, 그 비법 중 한가지만이라도 알고 있으면 꽤 수준 높은 프로그래머라고 말을 하였다.
도대체 무슨 내용일까, 나는 모르면 어쩌지 하는 마음에 가슴이 쿵쾅 쿵쾅 거리면서 읽었는데, 너무나도 간단한 내용들이어서 조금 실망스럽기는 했다. 진지한 마음가짐으로 프로그래밍을 생각해왔던 사람들에게는 아마 시시할지도 모르겠다. 만약 그런 비법들을 모아놓은 책을 원한다면 내가 아는 책은 딱 하나, Code Complete 뿐이다.

나도 그의 바램처럼 대한민국에서 좋은 글로벌 소프트웨어 기업들이 많이 나오기를 바라고 있다.
앞으로도 재미있고 유익한 책을 많이 써주셨으면 좋겠다.
글로벌 소프트웨어를 꿈꾸다 - 9점
김익환 지음/한빛미디어
얼마전에 나온 김익환 선생님의 새 책이다.

이전 책인 소프트웨어 개발의 모든 것과 크게 다른 내용은 아니다. 오히려 이 책에서는 기술적인 사항이나 세부적인 요건들에 대해서는 다루지 않고, 소프트웨어 공학에 있어서의 올바른 그림만을 제시해주고 있다.

그렇기 때문에 이슈 관리시스템이나 소스 관리 시스템 같은 내용을 다루면서도 실제로 어떤 도구들이 있는지에 대해서는 언급하지 않는다.

언제부턴가 나는 어떤 소프트웨어를 선택해야 할 일이 생겼을 때, 항상 위키피디아를 먼저 찾아보게 되었는데 이런 이슈, 소스 관리 시스템을 선택할 때도 위키피디아가 어느 정도 도움이 될 수 있을 것이다. 이 책에서 이 내용을 설명해주지 않아 나처럼 아쉬움이 느껴졌다면 아래 위키피디아 링크에서 해소할 수 있기를 바란다.

이슈관리 시스템
소스관리 시스템

나는 이슈 트래커는 맨티스, 버전 콘트롤은 VSS와 SVN밖에 써본 적이 없기 때문에 어떤 것들이 좋다고 추천해주지는 못하겠다. 위 링크에서 여러가지 조건들을 비교해보고 자신의 상황에 맞는 도구를 선택하면 되겠다.
-사실 어떤 소프트웨어를 선택할 때 내 첫번째 우선순위는 지원되는 기능들보다 해당 프로젝트가 오픈소스인지 아닌지이다. 나는 오픈소스를 무척이나 선호하는데 영감님들이 잔뜩 있는 대기업에 다녔더라면 허구헌날 깨지고 다녔을지도 모르겠다.

다시 책 이야기로 돌아와서, 이 책은 SRS 같은 문서 작성에 대해서 이야기 할 때도 그것의 중요성에 대해서만 다루지 실제로 문서를 어떻게 작성해야 하는지에 대해서는 설명하지 않는다.

그런 기법들을 배우려면 '소프트웨어 개발의 모든 것'이나 다른 소프트웨어 공학 책들을 찾아봐야 할 것이다.

비록 기술적인 내용은 없다만, 이 책에서 말하는 내용들은 모두 공감이 많이 되고 옳은 이야기들만 있기 때문에 충분히 읽어볼만한 가치가 있다.
편하게 개발해오면서 해이해졌던 마음 가짐을 다시 조일 수 있는 계기도 되기 때문에 이런 좋은 충고를 해주는 책들은 주기적으로 읽어주어야 한다. -그런 책 중 가장 좋았던 책은 실용주의 프로그래머였다.

여러 우화나 인용을 제시한 후 그것과 비교하면서 독자를 설득해 나가는 글쓰기 방식도 인상적이다.

이 책에서 말하는 점들을 간추려서 적어보았다.
글에서 묻혀나는 뉘앙스들을 내가 느낀대로 적었기 때문에, 오해한 점도 껴 있을 수 있겠다.

  • 소프트웨어 아키텍쳐는 코더보다 고급 인력이다.
  • 소프트웨어 공학은 뻥이 아니다. 즉, 이를 (잘) 사용하면 개발 시간이 (정말로) 더 단축된다.
  • 그렇다고는 해도 생각없이 무작정 따라하면 쫄딱 망한다.
  • 코딩은 개발의 일부이며, 스펙 작성과 설계를 모두 할 줄 알아야 소프트웨어 개발자라고 할 수 있다.
  • 그리고 코딩보다는 스펙 작성과 설계 능력이 더 중요하고 고급 기술(돈도 많이 버는) 이다.
  • 난이도는 코딩 < 설계 < 스펙 순이다.
  • 중요성도 코딩 < 설계 < 스펙 순이다.
  • 사실 코딩능력은 아무것도 아니다.
  • 소프트웨어를 설계하는데 있어서 가장 중요한 것은 컴포넌트와 인터페이스를 잘 정의하는 것이다.

유닉스.리눅스 프로그래밍 필수 유틸리티 - 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판 표지를 보면 항상 책 내용을 훑어보고 싶도록 나를 이끌었었는데, 이번 개정판은 내용은 전판보다 보강되었을지 몰라도, 워드나 엑셀의 표지에나 어울릴법한 아동틱한 표지로 만들어버렸다. 최근에 한빛미디어에서 나오는 책들은 대부분 이런 아동틱한 밝은 디자인의 표지인데, 개인적으로 이런 표지의 책들을 보면 별로 배울 것이 많이 담겨있지 않을 것 같아 꺼려지게 된다.

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

프로그래머의 길, 멘토에게 묻다 - 8점
데이브 후버 & 애디웨일 오시나이 지음, 강중빈 옮김/인사이트

나는 6년동안 프로그래밍을 공부하면서 두명의 멘토를 만났다.

첫번째 멘토는 지금은 절친한 내 친구이자 대학 동기이다.
2004년도 이 맘 때, 복학해서 아무 것도 모른채로 연구실 문을 두드려서 무작정 받아달라고 들어간 그 곳에서 그를 처음 만났다.
그는 몇일 동안이나 연결리스트를 이해 못해서 상심하던 내 옆에 앉아서 코드를 작성하는 법을 차근 차근 가르쳐 주었는데, 지금도 그 때가 너무 고마워서 그를 만나 술을 마실 때면 항상 그 때 이야기를 꺼내곤 한다.

두번째 멘토는 회사에 들어와서 만났다.
처음 그와 대화 했을 때 나는 그가 똑똑하다는 것은 알수 있었지만, 코드는 별로 짜본 적이 없는 사람이라고 예상했었다.
그로부터 시간이 좀 지나서 언젠가 그가 내 옆에 앉아서 코드를 작성하는 것을 보고는 내가 그동안 크게 착각하고 있었음을 깨달았다.
그는 말이 별로 없고 남들 앞에 잘 나서지 않는 타입이라 많은 사람들이 그가 얼마나 똑똑한지 잘 모르고 있지만, 나는 그가 우리 회사 최고의 프로그래머임을 확신한다.
내가 지금 아는 것의 팔할은 그에게 배웠으며 아직도 많은 것들을 배우고 있는 중이다.

이 책을 읽으면서 저 두 명의 멘토가 떠올랐는데, 이 글로나마 그들에게 감사를 표하고 싶다.

멘토를 만난다는 것은 중요한 일이다. 그리고 행운도 따라줘야 한다.
하지만 무조건 행운만을 기대해서는 곤란하다. 이 책의 저자는 이메일을 보내 누군가에게 멘토를 해달라고 부탁을 했는데, 그 사람의 대답이 충격적이었다. 매일 아침에 만나서 잠시 대화를 해주겠다는 것 아닌가.
물론 이렇게 착한 사람을 만나는 것은 쉽지 않겠지만, 시도 해볼만한 충분한 가치가 있다.
가만히 앉아서 행운이 굴러 들어오기만을 기다린다는 것이 방구석에만 있으면서 여자친구가 생기기를 바라는 오덕후와 무엇이 다르겠는가.

이 책의 많은 부분에 대해서 공감하지만, 너무도 당연해서 별로 감흥이 없는 조언도 많이 있었다.

  • 모르는 것을 부끄러워 하지 말라.
  • 열정을 키워라
  • 주변을 당신보다 뛰어난 개발자들로 채워라.
  • 일하면서 성찰하라.

이런 조언들은 훌륭한 프로그래머가 되고 싶어하는 그 어떤 견습생이라도 이미 알고 있을 내용이다.

책을 읽는동안 실용주의 프로그래머라는 책을 읽을 때와 비슷한 느낌을 받았는데, 내 생각에는 이 책보다는 실용주의 프로그래머가 견습생들에게 훨씬 더 가치 있고 읽을 만한 책이다.
기술적인 내용들에 대해서는 조금만 더 구체적인 예를 들어가며 설명해줬으면 좋았겠지만 이 책에서는 아쉽게도 그런 것은 전혀 없다. 하지만 그렇기 때문에 좀 더 가볍게 머리 식힐 생각으로 읽어볼 수 있는 책이기도 하다.
Hadoop 완벽 가이드 - 8점
톰 화이트 지음, 심탁길.김우현 옮김/한빛미디어
나는 하둡의 분산 파일 시스템에 많은 관심을 가지고 있었는데, 이 책이 한빛미디어에서 번역되어져서 너무 반가웠다.

HDFS는 구글의 분산 파일 시스템인 GFS의 기능들을 Java로 배낀 파일 시스템이다. 오픈소스이며, 아파치 메인 프로젝트로 올라가면서 많은 사람들이 관심을 가지고 지켜보고 있고 또 공헌하고 있다.

모든 코드는 Java를 통해 유저모드에서 구현되었으므로 여러 플랫폼에서 동작이 가능하다 -물론 윈도우에서는 잘 쓰이지 않는다. 누가 분산 서버로 윈도우를 쓰겠는가.

GFS나 HDFS는 현대의 분산 파일시스템에서 트렌드라고 말할 수 있을 정도로 획기적이며 재미있는 기능들을 많이 가지고 있는데 그 기능들은 다음과 같다.

  • 데이터베이스를 사용하지 않고 메모리에서 자료구조를 유지하며 메타데이터를 관리함으로써 속도가 빠르다.
  • 파일을 추상화해서 일정 크기의 블록으로 관리함으로 인해 파일 크기의 제한이 없어졌으며 다른 여러 이득이 있다.
  • 장비의 추가 및 제거가 자유롭다.
  • 파일(혹은 블록)들의 여러 사본들을 만들어 저장해 놓음으로써 특정 서버가 고장나더라도 사용자에게는 오류가 보이지 않으며 데이터의 분실 없이 지속적으로 서비스가 제공 가능하다. 또한 사용자에게 가까운 위치의 데이터를 내려줄 수 있다.
  • 파일에 대한 각 오퍼레이션들을 디스크에 영구적으로 기록함으로써 장애시에도 데이터를 분실시키지 않을 수 있다. 이런 메카니즘은 스냅샷이나 파일 히스토리를 구현하기에도 용이하다. 하지만 이런 파일 저널링 작업때문에 사용자에게 응답이 느려질 수 있다.(메모리에서는 훨씬 먼저 연산이 끝났음에도 불구하고 파일에 쓰여질 때까지 기다려야 한다)

내게는 아쉽게도, 하둡 파일 시스템의 내용보다 맵리듀스에 대한 내용이 이 책의 주를 이루는데 맵리듀스 부분은 시간이 좀 더 남을 때 천천히 읽어보려고 한다.
맵리듀스는 분산컴퓨팅에서 하둡 파일시스템만큼이나 획기적이고 실용적인 기술이므로, 꼭 제대로 이해하고 넘어갈 수 있었으면 좋겠다.

분산 시스템을 잘 아는 역자가 번역했으므로 큰 흐름에 대한 오역은 거의 없지만, 문체가 지나치게 딱딱해서 재밌게 술술 읽히지 않는 다는 것은 크나큰 단점이다. 사실 재미없는 내용은 아닌데 말이다.
게다가 오타도 지나치게 많다. 읽다보면 몇 장을 안넘기고서 꼭 오타가 보이고 잘못 인쇄된 부분들이 보이곤 하는데 이건 거의 베타도 아닌 알파 수준의 책이구나 하는 생각을 했다. 나는 이 책이 나오자마자 구입했었는데, 출판사의 무성의함에 참 화가 났었다. -어떻게 한빛미디어가!

다른 한빛리더스 회원들과 함께 이 책의 많은 오류들을 출판사에 보고 했고, 잘 등록이 된 것 같다.
아마 이 책의 2쇄에서는 많은 부분이 개선될 수 있을 것이다.

파일 시스템이나 맵리듀스에 관심이 있는 사람들은 꼭 읽어볼 것을 추천한다.

쿼드 코어가 대중화되기 시작할 때였으니깐 2008년도 쯤이었나보다.

예전에 친구들하고 술을 마시면서 컴퓨터 이야기를 했었다.
우리들은 다 같은 컴퓨터 공학도라서 술 마시면서 기술에 대해서 많이 얘기하곤 하는데, 그 날은 CPU 얘기가 나왔다.

한 친구 녀석이 컴퓨터를 새로 샀다고 자랑을 하면서, 코어가 많아지면 돈만 비싸지고 실제로는 싱글코어보다 더 느릴 수 있다는 얘기를 했다.

그 친구도 컴퓨터 공학을 전공했기 때문에 프로그램에 대해서 좀 알고 있었는데, 1개의 쓰레드만 사용하는 프로그램은 쿼드코어보다도 싱글코어 머신에서 더 빨리 동작한다는 것이다. 물론 쿼드코어 머신의 클럭이 더 낮을 경우에.

많은 사람들이 비슷한 생각을 가지고 있을 수 있는데 사실 이는 틀렸다. 한 클럭에 1개의 명령어만 처리할 수 있다고 한다면 물론 맞는 얘기겠지만 요즘 CPU는 너무나 똑똑하다.

요즘 나오는 2.0대 초반의 코어 하나가 2005~6 년 아키텍쳐의 싱글코어 3.0대 CPU들보다 훨씬 많은 일을 할 수 있다.

클럭이 높으면 열도 많이 나고 전기세도 많이 나가기 때문에, 나는 CPU를 살 때 항상 2.33이나 2.66 정도의 모델에서 고르곤 한다. 낮은 클럭의 CPU를 사면 오버클럭킹도 더 안정적으로 할 수 있기 때문에 여러모로 좋은 점이 많다.

어떻게 이런 일들이 벌어지는지 궁금하다면 이 책을 읽어보는 것이 도움이 될 것이다.

가벼운 책으로 카테고리하긴 했지만 가벼운 내용은 아니다. 사실은 정말 어렵다.

학교 다닐 때는 컴퓨터 구조가 너무도 재밌었는데, 요즘에는 컴퓨터 구조가 왜 이렇게 어렵고 무섭게 느껴지는지 모르겠다.

그래도 이 책은 여러 재밌는 주제들을 비교적 가벼운 문체로 설명하고 있으므로, 한 번 도전해서 읽을만 하다.

나는 책을 읽으면서 오탈자를 거의 찾지 못했는데, 한빛미디어 오탈자 페이지에 아주 많은 버그신고가 되어있는 것을 보고 깜짝 놀랐다. 참 대단한 사람들이다.

아마 2쇄에서는 저 내용들이 잘 반영되어 나올 것이다.

저자는 블로그에 윈도우 프로그래밍이나 병렬 프로그래밍에 대해 포스팅하곤 하는데, 주제나 내용이 자극적이고 재밌는 것들이 많으므로 피드를 구독해서 받아보는 것을 추천한다.

안드로이드 프로그래밍 정복 - 8점
김상형 지음/한빛미디어


이번에 한빛미디어에서 한빛리더스라는 활동을 하게 되었다.

한빛미디어에서는 내가 좋아하는 류의 좋은 책들이 많이 출간되는데, 앞으로 그런 책들을 잔뜩 받아볼 수 있다니 아주 기쁘다.

위와 같은 혜택들이 있으니 다음 번 2기를 모집할 때는 많은 사람들이 지원해보기 바란다.

어쨌거나 이번에 첫번째 책을 받았는데,
루비 프로그래밍 언어와 안드로이드 프로그래밍 정복 중에 어떤 걸 고를까 고민하다가, 회사에 혼자서 열심히 안드로이드 애플리케이션을 만들고 있는 아끼는 후배에게 선물해주기 위해서 이 책으로 선택했다.

자바 스크립트 완벽 가이드와 그외 많은 좋은 책들을 저술한 데이비드 플래너건이 쓴 루비 프로그래밍 언어도 좋은 책일 것임이 분명하지만 영어책이 아닌 일본어 책을 번역했다는 것이 마음에 걸렸다.
일본어 책은 분명히 마츠가 썼을텐데, 그는 언어는 잘 설계할지 몰라도 글쓰기 실력은 검증이 되지 않았다.

그렇게 안드로이드 책을 선택하고 한빛미디어로부터 책을 받은 후에 몇 가지 둘러보다가 많은 실망을 했다.
제일 눈에 거슬리는 것들은 시커멓게 인쇄된 안드로이드 에뮬레이터 그림들과 저자가 작성한 예제 프로그램의 외관이었다.
파워 포인트같은 것을 인쇄하다가 시커멓게 출력된 것을 보면, 끔찍하게 보기 싫을 뿐더러 옵션 설정을 제대로 못한 자신에게 화가 나기도 한다.
책에서도 시커먼 그림을 보면 역시 마찬가지 기분이 드는데, 책 자체의 품위가 떨어지는 느낌이다.

저자는 시커먼 그림은 보기에 안좋다는 것을 이미 알고 일부러 하얀 바탕을 선택해서 예제를 작성했다고 언급하기도 하는데, 예제 뿐만아니라 에뮬레이터 배경 색깔에 대해서도 신경을 썼어야 한다.
거의 매 장에 이런 시커먼 그림이 나오는데 이것이 눈에 자꾸만 걸린다.

또한 그의 다른 책을 읽어보았거나 winapi.co.kr에 가본 사람들은 알겠지만, 훌륭한 글솜씨에 비해 그의 디자인 센스는 경악 그 자체이다. -하지만 나도 그림을 딱 이 정도 수준으로 그려서 회사에서 디자이너들에게 놀림받고는 한다. 크크크.

한빛미디어 담당자들에게 무엇이 문제인지 보여주기 위해서 사진까지 찍어봤다. 그들이 잘 이해해주기를 바라고 다음에 출간되는 책들에서는 꼭 고쳐지기를 기대한다.

2차원의 네모와 육각형과 원통. 모든 그림이 이런 식이다.
내 생각으로는 디자이너한테 이미지들을 몽땅 건네주고 하루 이틀 정도만 시간을 주면 저자의 의도를 변경하지 않고서도 훨씬 보기 좋은 그림으로 만들 수 있을 것 같다.

아래 그림은 역시 한빛미디어에서 출간된 제프리리처의 Windows via C/C++ 중 일부이다.
원서(Microsoft Press)에도 이와 똑같은 그림으로 그려져 있고, 안의 내용만 한글로 바꾼 것이다.

내가 하고 싶은 말은 김상형보다 제프리리쳐가 그림도 잘 그려! 가 아니라 출판사(Microsoft Press)가 그만큼 신경을 많이 썼다는 것이다. 설마 저런 그림들을 제프리가 다 그렸겠는가? ...물론 그럴수도 있겠지만 아니라고 믿고 싶다. 코딩을 잘하면 그림이라도 못 그려야하지 않겠는가.

게다가 이 책에서 캡쳐된 그림 중 다수가 외각선이 한두픽셀씩 더 캡쳐되어 지저분한 느낌을 주는데 이 역시도 출판사에서 미리 찾아내서 교정할 수 있던 것들이다.
내가 너무 까탈스럽게 느껴질지도 모르겠지만, 그런 섬세함 하나 하나가 다른 곳과 차별되는 더 훌륭한 출판사로 만들어 줄 것이다.

꽁짜로 책을 얻어보면서 너무 안좋은 이야기만 썼는데 반가웠던 점도 하나 있다.
바로 폰트가 Andale Mono로 바뀌었다는 점!
비록 지금은 Monaco를 사용하고 있지만 그 전에 내가 가장 좋아했던 폰트는 바로 Andale Mono였다.
이 폰트들은 oO0lI 들이 눈으로 확연히 구분되는데다가(그리고 예쁘기도 하다) 고정폭 폰트인데 코드에는 당연히 이런 폰트를 사용해야만 한다.

쓰다보니 너무 길어지고 말았는데 책 내용에 대한 자세한 평은 다른 한빛리더스 분들에게 맡긴다.

디지털 혁명의 미래 - 8점
고든 벨.짐 겜멜 지음, 홍성준 옮김/청림출판
구글드라는 책과 함께 얼마전에 주목을 받았다가 금새 잠잠해진, 이대로 묻혀버리긴 아까운 책이다. 구글드처럼 다른 책에서 했던 얘기 또하고 또하는 책보다는 훨씬 알찬 내용이니 과학이나 신기술에 관심이 있다면 재밌게 읽을 수 있을 것이다.

마이크로소프트에서 진행하고 있는 프로젝트에 대한 내용인데, 무슨 프로젝트인가 하면 인간의 기억을 디지털로 저장하는 것이다.

기억을 저장한다는 것이 뇌에 전자 장치를 잔뜩 달아서 기억을 뽑아내는 이런 모습을 상상할 수도 있겠지만, 이런 내용은 아니다.
이런 일들은 시간이 더 지나서 특이점이 오고나면 가능해질지도 모르겠지만 지금 당장은 불가능하다.

하지만 지금도 기억을 디지털로 저장하는 방법들은 많이 있는데 이미 우리는 이 방법들을 잘 알고 있으며 일상에서 사용하고 있다.
디지털 카메라로 사진을 찍는다거나, 메신저의 대화내용을 저장하는 것, 결혼식장이나 돌잔치에서 동영상을 찍는 것, 전화 내용을 녹음하는 것들이 바로 그런 것이다.

위와 같은 간단한 내용들 부터 시작해서 우리가 일상 생활을 하면서 얻게되는 모든 기억들을 저장하고 나중에 언제든 쉽게 꺼내볼 수 있게 하는 것이 이 프로젝트의 목표이다.

빌게이츠는 이 책의 추천사에서 이런 프로젝트가 우리 생활을 어떻게 바꾸어 놓을지 잘 말해주고 있다.

 만약 우리가 노출되는 모든 정보에 즉시 접근할 수 있다면 어떤 일이 일어날까? 어제뿐만 아니라 두드러기가 나기 전 일주일 동안 먹었던 모든 음식을 의사에게 말할 수 있다면?

나는 이 문제에 대한 대답을 찾는 주인공으로 고든 벨보다 더 나은 사람을 생각할 수가 없다. 지난 몇십 년간 고든 벨과 짐 겜멜은 ‘마이라이프비츠’라는 프로젝트를 진행하며 이런 질문들에 대한 답을 찾아왔다. …… 이 프로젝트의 결과로 인해 우리가 기억에 대해 생각했던 방식, 건강을 관리하는 방식, 다른 사람 또는 다른 세대와 경험을 공유하는 방식, 나아가 그 이상의 모든 것을 바꿀 수 있게 되었다.


이 책을 읽고 나서 나는 6만원을 주고 HP에서 복합기를 하나 샀다. 프린팅은 필요없고 오직 스캔만을 위한 용도로 샀는데, 리눅스에서도 잘 동작하고 지불한 가격에 비해서 아주 마음에 든다.

나는 연말 정산이나, 건강검진 결과 같은 것들을 모두 스캔해서 클라우드 시스템에 올려두었다.
이런 것들은 1년이 지나고 나면 항상 다시 보고 싶은 것들이지만 그 동안은 한 번도 그럴 수가 없었다. 그렇다고 내 머리가 좋아서 작년에는 어땠는지 기억할 수 있는 것도 아니었다.
나는 그것들을 기록해두지 않은 것을 항상 후회하곤 했는데 이제는 내가 죽을 때까지 내 머리를 대신해서 영원한 기억으로 남아있을 것이다.

옛날보다 살기 편리해진 점 중의 하나는 바로 클라우드 시스템이다.
나는 구글 docs를 이용하는데, 언제 어디에서도 원할 때 내 데이터에 접근할 수 있다는 것은 정말 환상적인 일이다. 게다가 구글은 IDC 하나가 통째로 날아가더라도 데이터를 잃어버리지 않도록 시스템을 잘 설계해두었다.
이는 잘 사용하면 삶을 훨씬 편리하게 만들어주는 기술이지만 대부분의 사람들은 아직 이것을 적극적으로 이용하지 않는 것 같다.

그래도 마음에 걸리는 것이 있다면 구글 개발자들이 내 자료를 볼 수 있다는 걱정이다.
사용자 입장에서는 그냥 믿고 쓸 수 밖에 없는데, 혹시라도 그들이 정말 내 자료를 보고 있었다면 나는 샌프란시스코까지 미친듯이 달려가서 세르게이 브린의 아구창을 날려버릴 것이다.

90년대보다 많은 것이 좋아지긴 했지만 모든 것이 만족스러운 것은 아니다.
검색 기술과 OCR기술은 아직도 한참 멀었다.

나는 내가 검색어를 입력하면 이미지나 음성 파일에서도 검색이 될 수 있기를 바란다.
나중에 자료를 쉽게 찾기위해서 내가 직접 카테고리를 생성하고, 제목을 적절하게 짓는 것은 정말 고통스러운 일이다. - 사진을 저장할 때 특히 그렇다. 날짜별로 제목을 지을까? 누구랑 찍었는지? 아니면 어디에서 찍었는지.

OCR은 사람이 쓰거나 인쇄한 그림안에 있는 글자를 텍스트로 바꾸어주는 기술인데, 최근에는 꽤나 잘 동작하는 것처럼 떠들썩거리기도 하지만 아직 내 성에는 차지 않아서 사용하지 않고 있다.
하지만 데이터만 잘 보관하고 있는다면, 언젠가는 내가 스캔해둔 연말정산 자료나 건강검진 결과가 이런 기술에 의해서 HTML이나 PDF로 변환될 수 있을 것이다.

사실 이것들은 마이크로소프트보다 구글이 더 좋아하고 잘 하는 분야이기도 한데, 구글은 이미 훌륭한 기반기술(파일시스템과 검색 기술)이 있는 만큼 성과도 빨리 나올지 모르겠다.
누가 됐던 지금보다 더 좋은 시스템을 만들어줘서 우리의 삶을 더 편하고 흥미진진하게 해주기를 바란다.
세상을 뒤흔든 프로그래머들의 비밀 - 6점
에드 번즈 지음, 김도균 옮김/정보문화사

이 책은 여러 해커들에 대한 인터뷰를 담고 있다.
예전에 소개하기도 했던 책인 세상을 바꾼 32개의 통찰과 비슷한 종류의 책이다.

세상을 뒤흔든 프로그래머라고 제목이 지어지긴 했지만, 사실 제임스 고슬링 정도를 제외하고는 세상을 뒤흔들었다고 할만한 프로그래머는 별로 없다.
리누스 토발즈 정도는 되야 세상을 흔들었다고 할만할텐데 말이다.

게다가 거의 Java 쪽 사람들이라서 여러 분야의 해커 이야기를 기대했던 사람들에게는 조금 실망스러울 수도 있겠다. 그나마 앤드류 헌트나 데이비드 토마스 정도가 내게 익숙한 이름이고 나머지 사람들은 별로 들어보지 못한 이름들인데, 이것은 내가 Java를 많이 접해보지 않았기 때문일 수도 있겠다.

책의 제목처럼 여러 훌륭한 프로그래머들에게는 어떤 공통점이 있는지를 알아보는 것이 이 책의 목적이자, 인터뷰의 질문들이다.

이 책에서 언급되는 훌륭한 프로그래머들의 공통점을 정리하면 다음과 같다.

기본기에 충실하다.
 - 시스템의 동작 방식을 로우레벨 수준에서 잘 이해하고 있다.

호기심이 왕성하고 끈기가 있다.
 - 끊임없이 궁금해하며, 그런 궁금증을 풀어가는 과정에서 어려움에 봉착해도 쉽게 포기 하지 않는다.

막히면 잠시 쉬면서 해결책을 찾는다.
 - 잠시 다른 일을 하면서 불현듯 해결책을 떠올려 본 것은 많은 사람이 경험해본 일 일 것이다. 이들은 이런 경험이 많아서 그런지, 막히더라도 절대 초조해하지 않고 마치 자신이 곧 그 문제를 해결할 수 있음을 알고있는 것만 같았다. 여기서 '잠시'라는 시간은 하루 혹은 일주일 정도를 쉰다는 것은 아니다. 제임스 고슬링은 10분 혹은 1시간 정도를 다른 일을 하다 보면 마법같이 해결책이 나온다고 한다.

마지막으로 도구를 잘 다루는 것이 꼭 필요한 요소는 아니지만 대부분의 훌륭한 프로그래머들은 에디터나 개발관련 툴을 아주 잘 다룬다.

책 내용 중에 페이팔의 젊은 창업자인 친구 하나가 파이썬(문제를 해결 하는 방법은 한 가지여야 한다)과 펄의 철학(문제를 해결 하는 방법은 여러가지여야 한다)을 이야기 하면서 언젠가 귀도와 래리월이 논쟁하는 것을 본 적이 있다고 했는데, 정말 재밌었다고 한다. 하기사 그 정도 수준의 고수들이 논쟁하는 것을 보는 것은 흔치 않은 기회이고 재미있는 일임에 분명하다.
나는 래리월이 아주 젊잖고, 귀도가 다혈질인 사람일 것으로 상상되는데, 이 친구는 그 반대였다고 얘기한다.
정확히 어떤 내용인지 너무도 궁금해져서 구글을 통해 찾아봤지만, 찾을 수가 없었다.

나 역시 다른 사람들의 프로그래밍 습관을 지켜보며 어떤 차이점이 있나 하고 살펴보고는 하는데, 그 중 뛰어난 프로그래머 한 명에게서 특이할만한 사항을 발견했다.

코드를 작성하고 있는 동안에, 컴파일 혹은 빌드를 자주 하지 않는다.

그는 우선 코드를 작성하기 전에 로직을 머리 속에 잘 정리해 놓은 뒤에, 글을 쓰듯이 코드를 빨리 써내려 나간다. 보통의 많은 사람들이 이 과정에서 문법적으로 오류는 없는지 컴파일을 해보고, 혹시 문제가 있으면 얼른 수정하고 다음 코드를 작성하고는 한다. 그는 다른 사람들과는 다르게 함수 1개를 작성하던 5개를 작성하던지간에 절대로 중간에 컴파일 해보지 않고 끝까지 코드를 써내려 간다. 코드를 다 만들었으면 이제 컴파일 해볼만도 한데 자신이 쓴 코드에 문제가 없는지 한줄 씩 다시 꼼꼼히 읽어보고 머리 속에서 프로그램을 돌려본 후에 그제야 컴파일을 해본다. - 여기서 컴파일 까지 한방에 깔끔하게 된다면 완벽하겠지만, 대부분 그렇게 되지는 않았다. :)

나는 이 방식이 집중력을 계속 유지할 수 있고, 버그 없는 코드를 만드는데 도움을 준다고 느껴져서 혼자서 연습을 하고 있는 중이다.
따라하다보니, 나는 내 기억력이 한계치에 도달해서 이전에 무슨 코드를 입력했었는지 기억이 안나려고 하는 즈음에 무의식적으로 빌드 키를 누르는 나를 발견했다. 그리고 이렇게 잠시동안 빌드가 되는 순간에 집중력이 무너져서 이전에 생각하고 있었던 여러 로직들 중 하나를 까먹게 되곤 하는데, 컴파일이 성공적으로 되어 버리면 이런 까먹은 부분이 생각이 안나고 그대로 묻혀버리는 경우가 있다. 물론 이런 것들은 사소하거나 혹은 심각한 버그로서 다시 자신에게 돌아오게 될 것이다.

머리가 특별히 좋다면 처음부터 모든 로직을 꾸역꾸역 넣어 두고 프로그램을 짤수도 있겠지만, 보통의 두뇌를 가지고 있다면 차근차근 로직을 메모한 뒤에 한 번에 쭉 써내려간 뒤, 다시 한 번 자신의 코드를 리뷰하고나서 컴파일 해보는 것이 더 나은 프로그래머가 되기 위한 좋은 연습이 될 수 있을 것이다.

난 정말 JAVA를 공부한 적이 없다구요 - 8점
윤성우 지음, 김문석 감수/오렌지미디어
이 책은 2009년 가을에 나온 비교적 최근의 자바 입문서이다.

나는 윤성우씨의 책을 아주 좋아하는데, 굉장히 쉽게 잘 읽히고 또 어려운 내용을 적절한 예를 들어서 쉽게 설명해주기 때문이다.
여태까지 나온 그의 책들은 모두 입문자를 위한 기초서적인데, 개인적으로는 조금 더 심도있는 내용을 다루어주었으면 하는 바램도 있다.

이 책은 책 제목에도 써있듯이 Java를 처음 접해보는 사람을 타겟으로 작성되었다.
대부분의 컴퓨터 언어 책들은 C언어와 비교를 하며 설명하곤 하는데, 이는 C를 알고 있는 사람들에게는 좋지만 그렇지 않은 사람들에게는 전혀 불필요한 설명일 수도 있다.
저자가 이런 독자들의 눈높이에 맞춰서 쉽게 쉽게 설명하려 애쓰는 부분들이 인상적이었고, 또 이것은 영리한 접근 방식이라 생각된다.

챕터마다 간단한 수준의 문제가 주어지고, 저자가 작성한 답안 코드가 있다.
연습문제 수준이 외국 서적들처럼 머리가 빠개지는 수준이 아니라서, 공부하는 학생들이 연습문제를 다 풀어 볼만 할 것 같다.

나는 책 앞의 절반은 다 건너뛰고 뒷부분만 읽어봤는데, 전체적으로 아주 만족스러웠다.
아마도 이 책은 자바의 기본기를 다지기에 가장 좋은 책이 아닌가 싶다.

여태껏 클래스패스나 패키지, 그리고 와일드카드를 사용하는 지네릭 문법은
다른 언어들을 사용해보면서 익혀둔 통밥으로만 대충 이해하고 살고있었는데, 책에 잘 설명이 되어있어서 좋았다.

자바의 I/O Stream 관련 클래스들은 사용할 때 마다 참 매력적으로 느껴진다.
아래 코드처럼 한 객체를 다른 객체와 연결하고 또 연결하고 하면서 프로그래밍 하는 것은 처음 자바를 하면서 많은 흥미를 제공해 주는 부분이면서 클래스를 어떻게 추상화 해야 하는지 가르쳐주기도 한다.
OutputStream os = new FileOutputStream("data.bin");
BufferedOutputStream bos = new BufferedOutputStream(os);
DataOutputStream dos = new DataOutputStream(bos);

스트림 클래스들의 역할을 잘 이해하지 못하면 어떤 것을 어디에 껴넣어야 할지 햇갈릴 수도 있는데,
책에서 이 내용들을 아주 잘 설명해주고 있다.

이런 파일과 스트림에 대한 내용은 기본적인 내용이면서 가장 많이 쓰이는 중요한 부분인데 거의 마지막 챕터에 있어서 사람들이 잘 읽어보려나 모르겠다.

쓰레드와 동기화 챕터에서는 쓰레드에 대한 아주 간단한 기초 설명과 함께 동기화에 대한 기본 기법들을 설명한다.
나는 쓰레드를 멈추는 것과 재시작 하는 부분이 꼭 있기를 기대했는데 이 내용이 없어서 너무 아쉬웠다.

예전에 stop과 resume 메소드를 사용 하려고 봤더니 두 메소드 모두 deprecate되어있는 것이 아닌가.

Sun의 문서 중에

위와 같은 내용이 있는데, 왜 아직도 새로운 API를 제공하지 않는지 모르겠다.

책 마지막에는 스윙을 맛뵈기로 다루고 있는데, 스윙에 대한 윤성우씨의 생각이 살짝 언급되어 있다.

윤성우씨는 자바 클라이언트 애플리케이션에 대해서도 찬성하고 있는 입장이다.
나는 예전에는 자바로 만드는 클라이언트는 끝내주겠다 생각한적이 있었는데, 한 번 만들어보고 나서는 생각을 고쳐먹었다.

Once write Run everywhere라지만, 그냥 아무 생각 없이 코딩한다고 해서 모든 플랫폼에서 문제없이 잘 동작하는 것은 아니다.
우리가 윈도우 네이티브 클라이언트 애플리케이션을 작성할 때, 사용하려는 Windows API가 어떤 윈도우즈 버전부터 지원되는지 잘 알고 있어야 하고,
운영체제 버전별로 검사하는 코드 또한 들어가듯이 자바 API역시 지원되는 버전을 항상 다큐먼트에서 찾아봐야 하며, 예외처리도 해주어야만 한다.
또한 많이 쓰이는 특정 플랫폼을 위해 만들어진 전용 API를 사용해서도 안된다.

위 문제는 사실 아주 자잘한 문제이고, 가장 큰 문제는 애플리케이션을 실행시키기 위해서 JRE가 필요하다는 것이다.
한번만 설치하면 되는데 그게 뭔 대수냐 라고 생각하고 있다면, 그 프로그램은 이미 널리 퍼지기는 힘들다.
사용자들은 우리가 원하는대로 좀처럼 움직여주질 않는다.

누군가와 예전에 이런 얘기를 했었는데, 멀티 플랫폼에서 돌아가게 프로그램을 만들려면 차라리 C#이 가장 좋은 선택일지도 모른다는 내용이었다. 그리고 리눅스나 맥은 Mono를 통해서 돌린다. 이것은 꽤 괜찮은 생각일지도 모르며, 이미 이런 프로그램들이 많이 나와있다.(하지만 기대치 만큼 잘 동작하지는 않는 것 같다. 앞으로는 더 좋아지겠지만)

앞으로 Windows XP가 점점 자취를 감출 때 쯤이면 닷넷으로 클라이언트 애플리케이션도 개발할 수 있고, 디바이스 드라이버도 좀 더 편하게 만들 수 있을텐데 나는 이 날이 제발 빨리 왔으면 좋겠다.

아래 페이지는 그간 Java 언어의 변화를 잘 보여주고 있다.

Java7도 어서 나와서 좀 더 편한 프로그래밍 세상이 되었으면 좋겠다.

능률적인 프로그래머 - 8점
닐 포드 지음/지&선(지앤선)

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

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

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

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

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

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

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

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

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

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

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

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

하지만 아마도 이 책을 읽고 나면 다들 능률적인 프로그래머가 되기 위해 노력하고 싶어질 것이라 생각한다.
대한민국 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년 주기로 한번씩 바꾼 셈인데, 전자제품에 대해 엄청난 지각수용자인 나에게는 아주 적당한 기간이었던 것 같다.

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

앞으로 국내에 혁신적인 기업들과 제품들, 그리고 해커들이 많이 탄생해서 이 책이 계속 개정될 수 있었으면 좋겠다.
구글, 신화와 야망 - 8점
랜달 스트로스 지음, 고영태 옮김/일리
이 책이 구글이라는 회사를 주제로한 몇 번째 책인지 모르겠다.
구글은 언제나 이야기를 몰고 다니며, 그 이야기들은 언제 들어도 재미있다.

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

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


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


Marissa Mayer

Marissa Mayer


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

Paul Buchheit

Paul Buchheit


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

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

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

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

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

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

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

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