Media Log

The Internet Book - 10점
Douglas E. Comer 지음, 박준철 옮김/지&선(지앤선)

언제부터인가 강컴에 하루에 3번 정도 들어가서 오늘은 무슨 책이 나왔나 훑어 보는 습관이 생겼다. -아마 회사에 입사하고 나서 부터였던 것 같다.

관심이 가는 책들은 항상 우리집 옆에 있는 금천 구립 도서관에 신청을 한다.
웹페이지는 버그 투성이에 형편 없지만, 그래도 작고 사랑스러운 나의 도서관이기 때문에 눈감아 줄 수 있다. :-)
( 한달에 3권씩 신청 할 수 있고, 신청한 책들은 원서이거나 오래된 책이 아니라면 대부분 승인된다. 만일 금천구에 살고 있다면 이 곳에서 많은 책을 신청해가며 읽어보고 작은 행복을 느끼길 바란다. 하하하. )

최근 2달여간 괜찮은 책들이 별로 안나왔었는데, 이 책이 눈에 띄여서 신청을 했다.
이 책의 저자는 'TCP/IP 인터네트워킹 : Principles, Protocols, and Architectures'
이라는 책을 저술한 유명한 사람이다.

'TCP/IP 인터네트워킹'과는 다르게 이 책은 독자들의 수준을 엄청 낮게 잡았다는 점이 주목할 만 하다. 과연 같은 저자가 맞는지 의심이 갈 정도로 기술적으로 얻을 수 있는 것은 별로 없다.

그럼에도 불구하고 이 책의 장점은, 기술적인 설명이 전혀 없이도 인터넷 전반적인 내용에 대해 잘 이해할 수 있도록 쓰여졌다는 점이다.

내가 3학년 때에 데이터 통신이란 과목을 통해서 처음 네트워크를 접하게되기 직전에,
나는 C언어로 자료구조를 구현하는 것이라던지 MFC로 그저 그런 프로그램을 만들 수 있는 수준 정도 였었다.
프로그램에 대해서 어느정도 자신감을 얻었을 때 였는데, 당시 선배였던 형과 자취방에서 대화했던 기억이 난다.

"형 랩실에 있는 내 컴퓨터에 연결하면 될꺼에요."
"그래? 아이피가 뭔데"
"10.x.x.x 요"

그래서 그 형은 마구 웃었고, 설명을 듣고나서 나는 너무 부끄러웠다.
왜 도대체 그런 것을 대학교 3학년이 되어서야 가르쳐준단 말인가!

이 책은 학부 1학년들이 보기에 아주 적합하다고 생각된다.
NAT Box, 서버 사이드 스크립팅, HTTP, VPN 에 대한 설명은 특히 좋았다.

대학 1학년 때, 이런 책으로 인터넷 개론을 다져놓기만 해도 나중에 고급 네트워크 수업을 들을 때 -혹은 일상생활에도 많은 도움이 될 것이다.

학교 교수님들께 편지라도 써서 꼭 후배들이 1학년 때 공부할 수 있게 만들고 싶은 책이다.

submit
Debugging Applications for Microsoft .NET and Microsoft Windows - 10점
John Robbins 지음, 서우석 옮김/정보문화사


이 책은 John Robbins의 하나뿐인 명작 시리즈이다.

이 디버깅 시리즈는 총 3판 까지 발행 되었는데, 1판은 Debugging Applications란 이름의 오직 native code만을 다룬 서적이고, 지금 옆에 있는 이 책이 native와 managed 코드를 같이 다루는 2판, 그리고 2006년 말 즈음에 나왔던 것 같은 3판은 오직 관리코드에 대해서만을 다룬다.(그래서 2판이 가장 두껍다.)

그러나 닷넷프레임워크 환경 내에서 프로젝트를 한다고 해도 3판을 선택하기 보다는 2판을 고르는 것이 더 좋을 것이다. 왜냐하면 3판은 번역서가 없기 때문이다^^
이 책을 번역한 서우석씨는 debuglab.com 의 운영자인데, 튼튼한 내공이 있어서 그런지 프로그래밍 서적 번역을 정말 잘한다.( 하지만 이책의 3판은 번역하지 않을 것이라고 들었다. 그래서 재출간판이 나온 것이고 )
이 책의 번역이 엉망이다, 또 다른 책인 Code Complete2의 번역이 엉망이다 하는 사람들이 있는데 아마도 그 사람들의 기본기가 엉망일 것이다. 원서를 읽는 것보다는 100배 정도는 이득이니 영어실력이 부족하다면 꼭 번역서를 구해보라.

이 책 3판을 어쩌면 다른 사람이 번역할지도 모르니 기다려 보는 것도 좋겠지만, 2판에 있는 주옥같은 native 예제들과 설명들을 버리고 가긴 너무 아깝지 않은가. 아무리 닷넷 개발자라 할지라도^^

음, 어쨌뜬 아쉬운 소식 중 하나는 이 책을 읽고 반해 버렸던 존 로빈스가 더 이상 책을 쓰지 않기로 했다는 것이다.
책만 쓰면 인터넷에 여기저기 돌아다니고 하는 것에 어지간히 화가 났던 것 같다.
정말 아쉬운 부분이긴 하지만, 그래서 이 책이 더더욱 아름다운 명서로서 자리매김 하게 될 것 같다.

내가 이 책을 처음 알았던 것은 역시 신입사원 때였다.
(지금 생각해보니, 도대체 학교 다닐 때는 왜 이런 책들을 모르고 소설같은 C#, 자바 이런 책들만 봤는지 모르겠다. 물론 그 책들이 형편없다고 비하하려는 의도는 아니다. 그냥 이런 훌륭한 책으로 학생 때 여유를 가지고 공부하지 못했던게 아쉬울 뿐이다.)

음 어쨌든 신입사원 때, 회사 위키에 누군가가 올려놓은, 오류보고서 정보를 통해 위치를 역추적 하는 글을 읽었는데 도대체가 무슨 말인지 전혀 이해가 되지 않았다.
그 분에게 하나씩 다 물어볼 수도 없고 해서 무슨 책 읽으면 됩니까. 했더니 이 책을 보라고 권해주셨다.( 그분은 사실 카발온라인과 알집을 만든 개발실장님이었다. 신입사원이 가서, 아니 이게 도대체 무슨 외계어를 써논겁니까! 하나씩 차근 차근 설명해주십시오! 할수도 없는 노릇 아닌가. 하하하 )

음 어쨌든 이 책을 읽고 나서는 나도 map 파일과 pdb 파일이 뭔지 알게 되었고, 빌드 할 때마다 버전별로 저런 디버깅 정보들을 자동으로 모아둘 수 있도록 구성해 두었고, 또한 사람들이 비즈하드 전용탐색기를 사용하면서 프로그램이 비정상 종료되었을 때 오류보고서 정보를 보내주면 그 정보들을 보고 프로그램이 어디서 죽었는지 찾을 수 있게 되었다.

물론 이 커다란 책에 단지 충돌주소로 소스코드 위치를 찾는 방법만 나와 있는 것은 아니다.
이 책은 Windows 환경에서 디버깅하는데 필요한 거의 모든 지식을 다룬다.

내가 재미있게 읽고 프로젝트에 유용하게 적용 할 수 있었던 것들은 다음과 같다.

심볼서버 구성,
ASSERT와 TRACE,
경고 없는 코드를 작성하는 방법,
컴파일, 링커 옵션에서 각 스위치들의 의미,
DLL이 로드되다가 충돌 하였을 때 재배치되는 과정과 방지하는 방법,
멀티쓰레드 프로그래밍시에 주의사항,
기타 브레이크 포인트 고급 옵션들.

어떤 Windows 프로그래머들에게도 좋은 책이 될 것이라 확신한다.


  1. 김재호 at 2008.04.30 18:35 [edit/del]

    오 이런, 오늘 강컴에 3판 번역서가 올라왔군요. 5월 15일 출시에 역시 서우석씨 번역이네요^^

    Reply

submit
프로그래밍 수련법 - 10점
브라이언 W. 커니핸.롭 파이크 지음, 장혜식.신성국.김정민 옮김/인사이트


회사에 처음 들어왔을 때 쯤, 이런 저런 명서들을 찾아서 구해 볼 때에 이 책을 알게 되었다.

원서로 가지고 있긴 하지만, 앞 부분만 깨작깨작 거리다가 결국 못 읽고 있었는데, 얼마전에 '프로그래밍 수련법' 이란 이름으로 번역서가 출간 되었다.


이미 훨씬 이전에도 '프로그래밍의 모든 것' 이라는 이름으로 번역서가 있기는 했는데, 책 표지에서 80년대 냄새를 잔뜩 풍겨 번역 또한 엉성할 것만 같아 구해 보지는 않았다.

이 책의 목차는 다음과 같다.

Capter 1: Style
Chapter 2: Algorithms and Data Structures
Chapter 3: Design and Implementation
Chapter 4: Interfaces
Chapter 5: Debugging
Chapter 6: Testing
Chapter 7: Performance
Chapter 8: Portability
Chapter 9: Notation

프로그래밍의 전반적인 내용들을 주제로 삼고 있으며, 이 책을 보면서 스티브맥코넬의 Code Complete와 너무 닮았다는 느낌을 받았다.

물론 Code Complete는 2004년도에 2판이 다시 쓰여진 반면에 이 책은 1999년도에 쓰여졌다. 또한 Code Complete는 1000 페이지에 달하는 분량이고 이 책은 300여 페이지의 정도의 내용을 담고 있기 때문에 깊이 면에서는 이 책이 Code Complete를 따라 갈 수 없는게 당연하다.

Code Complete가 이 책보다 훨씬 낫다! 라고 말을 하는 꼴이 되어 버렸지만 그렇지는 않다. 타겟으로 하는 독자 수준이 다르기 때문이다.
Code Complete는 Jeffrey Richter가 10년이나 읽고 있지만 아직도 이 책에서 배운다고 말할 정도로 깊이 있고 수준 있게 작성되었지만,
The Practice of Programming은 프로그래밍에 처음 입문 하는 사람들을 목적으로 작성 되었다.

저자가 의도한 바에 맞게 책을 골라서 읽으면 될 것이다.

모든 사람들이 읽을 수 있도록 언어는 C로만(브라이언 커니건의 주무기인) 작성된 것이 아니라, C++ 과 Java를 섞어서 타겟층을 넒게 잡았다.

어쩌다 보니 Code Complete 이야기를 너무 많이 하게 되었는데, 비슷한 주제를 담고 있어서 비교를 안할 수가 없었던 것 같다.

다음 주에는 Code Complete에 대해서도 한 번 써봐야겠다.

아참, 이책의 번역서 모습이다.^^
좋은 책을 힘들여 번역해 주신 분들께 진심으로 감사드립니다.

submit
해커와 화가 - 10점
폴 그레이엄 지음, 임백준 옮김/한빛미디어

어떤 사람들은 폴 그레이엄이 건방지거나 혹은 그가 주장하는 바가 틀렸다고 말하면서도 하나 같이 그의 글은 재밌다고 한다. -에릭 싱크, 조엘, 그리고 이 책의 역자인 임백준까지

나도 폴 그레이엄의 글을 좋아한다.

이 책을 읽고 나서 그의 글에 매료되어서 개인 블로그를 즐겨찾기 해두고 종종 가보곤 한다.( 물론 내 빌어먹을 영어 실력 탓에 그 재밌는 최신 글들을 잘 이해할 수 없다는 것이 화가 나지만. )

이 책의 내용은 조엘 온 소프트웨어 처럼, 폴 그레이엄의 블로그에 이미 쓰여진 많은 에세이들을 기반으로 작성되었다.

나는 그가 그림을 얼마나 잘 그리는 지는 따위는 관심 없다.
단지, 이 책에서 그가 LISP, Python, 펄, 그리고 해커를 말할 때면 내 집중력은 200%가 되었다.

프로그래밍 언어에 대한 비교는 언제나 많은 논란거리를 가지고 오는 위험한 주제이기도 하면서 또한 프로그래머들의 흥미를 유발하는 최고의 주제이기도 하다.

그는 LISP에 대한 광신도였다.

그의 블로그에서 그는 자바가 쓰레기라고 말하고 있지는 않지만, 자바 프로그래머는 파이썬 프로그래머보다 멍청하다고 말한다.
자바 사람들이 반발하자, 그는 자바 프로그래머가 멍청하다는 것이 아니라 상대적으로 파이썬 프로그래머가 영리하다. 라고 다시 말한다.

그는 LISP에 대한 광신도이면서 다른 언어로는 파이썬과 펄, 그리고 루비를 인정한다.
에릭 레이몬드가 윈도우즈를 쓰레기라고 번번히 말하듯이 그 역시 다른 언어들은 가차없이 깍아내린다.
아마 그는 속으로 이렇게 생각하고 있을 것이 분명하다.
( 도대체 어떻게 자바 따위로 프로그래밍을 할 수 있다는 말이지? )

하지만 내가 사용하는 언어가 쓰레기가 된들 뭐 어떤가. 그의 글은 재밌는걸.
그리고 LISP와 파이썬이 미치도록 공부하고 싶어지는 것을.

실제로 그랬다. 이 책을 덮고나서부터 머리속에 LISP와 파이썬 밖에 없었다.
LISP를 접해보려고 했지만, 괜찮은 국내 서적을 찾을 수가 없었다.
인터넷에서 배우지 뭐, 했으나 괴물 형상의 괄호 투성이 언어와 영어로된 설명은 날 금방 질리게 만들었다.

LISP는 나중으로 미뤘지만 Python과 펄 그리고 루비 마저 버릴 수는 없었다.
하나씩 책을 구해서 읽어보고는 그 중 내 두번째 무기로써 Python을 선택하게 되었다.
( 첫 번째 무기는 물론 C++ 이다. ^_^ )

비즈하드 프로젝트를 하면서 파이썬으로 뭔가를 만들어보고 싶은 욕구가 넘쳐난다.
꽤 적당하다고 생각되는 몇 몇 기능들은 이미 다른 언어로 만들어져 있기 때문에 굳이 바꾸지 않고 앞으로 새로 추가될 기능에 대해서 한 번 시도해 보려고 한다.

아 얼마나 즐거울까.



  1. at 2010.03.25 10:18 [edit/del]

    비밀댓글입니다

    Reply

submit
C로 배우는 알고리즘 1 - 10점
이재규 지음/세화


2004년 8월. 제대하고 설레이는 마음으로 학교에 복학했을 때, 내가 가진 것이라곤 0점대 방어율의 끝내주는 성적표 밖엔 없었다.

컴퓨터학과지만 컴퓨터는 나하고 적성에 안맞는다고 생각해서 전과를 하려했으나 전과도 학점이 뒷받침이 되어야 할 수 있다는 것을 깨달은 때였다.

선택의 여지가 없었다. 학교를 버리고 다른 일을 해보겠다는 용기는 내게 없었기 때문이다.

지금도 너무 고맙게 생각하는 먼저 복학한 좋은 친구들의 도움을 받아 공부를 했다.
C언어로 숫자를 입력받아 홀수인지 짝수인지 결과를 출력하는 프로그램,
점수를 입력받아 평균을 구하는 프로그램.
이 정도의 간단한 프로그램을 작성할 수 있게 되었을 때 쯤에,
어라 이것도 꽤 재밌네? 라는 생각을 갖게 되었다.

하지만 군대가기전 그토록 고통스러웠던 링크드리스트에 다시 부딪히게 되었을 때 나는 다시 한 번 절망했다.
C 언어 책을 몇 권을 읽었는지 모르겠다. 연결리스트가 어떤 특징을 가지고 있으며 어떻게 어떻게 동작한다. 라는 것은 충분히 이해했다.
하지만! 책을 덮고 텅빈 에디터 안에서 코드를 작성 해보려고 하면 내 머리 역시 비어버렸다. 코드를 한 줄도 작성할 수가 없었던 것이다.

그 때 나를 구해줬던 것은 바로 이 책이다.
대학교 1학년 때 이미 이 책이 좋다는 이야기를 듣긴 했었지만, 너무 옛날 책이라서 이제 나오는 책들은 당연히 이 책보다 좋을 것이라고 생각을 했다.

물론 이 책을 보고도 바로 연결리스트를 이해할 수는 없었지만, 코드를 작성하고 지우고 다시 설명을 읽어보고 하면서, 슬슬 C 언어에 눈을 뜨게 되었다.

그 이후의 학부 생활은 순탄했다. 학부생 수준의 컴퓨터 과학은 C언어만 할 줄 알아도 그것을 못하는 다른 학생들에게 이미 절반 이상 승리한 것이나 다름 없기 때문이다.

저 때 즈음에 힘들어서 포기하고 다른 길을 찾는 사람들에게 이 책을 강력히 추천한다.
만일 지금 이 글을 읽는이가 학부 1,2학년생이라면 이 책의 모든 내용을 따라 해보고, 또 나중에는 책을 덮고 직접 작성해보라.
아마도 학기가 지나 갈수록 점점 더 재밌고 편해질 것이다.

  1. Favicon of http://voidworker.tistory.com BlogIcon i'm in at 2008.03.18 19:55 [edit/del]

    공감하는 부분이 있어서 트랙백 남겼습니다.

    Reply
  2. Favicon of http://hotk.tistory.com BlogIcon Tae Jung, Kim at 2008.03.21 10:31 [edit/del]

    우~ 이건 오픈아이디 지원해주냐??
    왜 내건 안되는겨?? -0-;
    암튼;;
    내가 생각할 때는 너는 아직도 부족해 ㅋ
    컴퓨터랑 적성이 안 맞는거 같아;;
    접어;;

    Reply
  3. 홍환민 at 2009.01.08 14:05 [edit/del]

    이책 참 좋지요^^

    Reply

submit
HTTP - 10점
David Gourley & Brian Totty & Marjorie Sayer 외 지음/OReilly(오라일리)


회사에서 MFC 기반의 윈도우즈 데스크탑 어플리케이션과
윈도우즈 기반의 서버들을 개발하고 있지만
클라이언트고 서버고 웹페이지와 연동 되어야 하는 작업이 많다.
앞으로는 더욱 더 그렇게 변할 것이고.

항상 웹 어플리케이션에도 관심이 있어서 이런 저런 책들을 봤었는데,
이 책이 브라우저 내부 동작과 전반적인 웹 애플리케이션 지식에 대해서 가장 많은 이해를 가져다 주었다.

원서이기는 하지만 영어 찐따인 내가 처음으로 완독했을 정도로
쉽게 작성되어 있다.

매 개념을 소개 할 때 마다 항상 존재하는 주옥같은 그림들은 문장을 잘 이해하지 못했더라도 꼭 이해하고 다음으로 넘어갈 수 있게 해준다.
이 책이 가진 최고의 장점이다.

submit
C++ Standard Library : 튜토리얼.레퍼런스 - 10점
니콜라이 M. 조슈티스 지음, 문정환 외 옮김/정보문화사

이 책을 읽기 위해선 먼저 C++, 템플릿 그리고 자료구조에 대한 이해가 필요하다.
자료구조는 리스트, 큐, 스택, 해쉬 테이블 정도를 직접 구현해봤거나 내부 동작을 잘 이해하고 있다면 충분하다.

STL 자체를 어떻게 사용하는가에 대한 예제 코드도 물론 필요 하겠지만,
STL이 얼마나 잘 정립된 개념을 가지고 있는지 이해하는 것도 중요할 것이다.

이 책에서는 위 2가지를 다 얻을 수 있다.

C++로 거의 모든 작업을 하고 있지만 나는 종종 C++에서 벗어나고 싶다.
널 포인터 검사를 꼬박꼬박 하는 것도 싫고, new delete 쌍 맞춰주는 것도
머리 아프다.

하지만 잘 작성된 C++ 클래스들은 나를 다른 언어로 도망치지 못하게 만든다.
STL의 모든 클래스들은 아름답다.

번역 또한 마음에 들며, STL을 처음 시작하는 사람들은 이 책으로 시작하면 좋을 것이다.( 스캇 마이어스의 Effective STL 이런거 고르지 마시고. )


C++, stl,
  1. Hot K at 2008.03.15 22:51 [edit/del]

    Java 짱!!

    Reply

submit
윈도우즈 API 정복 1 - 10점
김상형 지음/한빛미디어
윈도우즈 API 정복 2 - 10점
김상형 지음/한빛미디어

이재규씨의 C로 배우는 알고리즘 시리즈와 함께,
국내 서적 중 내용면으로 가장 완성도를 가진 책이라고 생각한다.

찰스페졸드의 책이 훌륭하다고는 하지만,
그 번역본을 읽었을 때 너무나 지루하고 힘들었다.
번역 자체가 나쁜 것은 아니었지만,
번역서 자체의 딱딱한 느낌과 찰스페졸드 특유의 고지식한 설명이 아마도
그런 느낌을 갖게 했던 것 같다.
 
이 책 저자도 말하듯이,
한국 사람에겐 역시 한국 사람이 쓴 책이 좋다.
 
개정판이 나오면서 내용도 예전보다 많이 보강되어,
이제는 굳이 찰스페졸드의 책을 같이 볼 필요도 없어져 버린 것 같다.
 
이 책 저자는 강컴에서 요새 많은 서평을 남겨주고 있다.
서평들을 읽어 보면 DB와 .NET 프레임워크 쪽을 공부하고 계신 것 같은데, 앞으로도 이 책과 같은 훌륭한 명서가 나오길 기대한다.

submit