2007년 2월 20일 화요일

"... 그럼에도 불구하고, 사람들은 직무 재조정을 전혀 거치지 않은 상태에서 상급 코딩 기술자를 관리자로 밀어붙이는 작업이 가능하다고 받아들입니다."-조엘 온 소프트웨어

현재 근무하는 회사에서 이러한 현실을 바꿀 수 없는 경우, 관리자로 밀어붙여진 개발자가 선택할 수 있는 길은 무엇일까?

임베디드 시스템 펌웨어 분석, Ed Sutter, 에이콘 ***

http://www.acornpub.co.kr/book/firmware
임베디드 시스템의 펌웨어 개발자가 알아야 하는 내용을 깔끔하게 설명한 책. (너무 깔끔해서 가끔은 좀 불친절해 보임) 이책은 간단한 기능의 디버그 모니터의 소스 코드 전부를 CD로 제공하고 이 디버그 모니터의 구현을 설명하였다.

최초에 H/W팀으로 부터 받은 H/W를 어떻게 동작시키는지부터 시작하여 target보드에 기본적인 개발 환경을 어떻게 만드는지를 설명한다.

디버그 모니터 소스 코드를 통째로 지원하므로 자신의 h/w에 책에서 제공하는 디버그 모니터를 올려서 테스트 해 볼 수 도 있다. (단 당신의 target board가 책에서 지원하지 않는 CPU를 사용하여 구성되었다면 해당 CPU의 assembler를 사용하여 초기화 루틴을 직접 작성해야 한다.)

앞서 잠깐 언급했지만 이 책을 읽다보면 종종 내용이 너무 깔끔해 설명이 충분치 못하다고 느껴지는 부분이 많다. 사실 이런 부분을 모두 제대로 설명하려면 책 분량이 엄청나게 커질 것이기 때문에 저자를 비난하기는 힘들것 같다. 하지만 CD에 첨부된 PDF 문서들을 열심히 읽으면 대부분의 궁금증을 해결할 수 있을 것이다. 물론 이해하려면 약간의 내공이 필요한 문서들이지만 모두 읽고나면 뿌듯히 충만한 공력이 단전에서 느껴질 것이다.

게임 개발자를 위한 C++, 서진택, 민커뮤니케이션 ***

도대체 왜 이 책의 제목에 굳이 "게임 개발자를 위한" 이라는 말이 들어갔는지 이해하기 힘들다. 차라리 이 책은 C++에 처음 입문하여 아직 C++에 완전히 적응하지 못한 개발자들에게 저자가 자신이 맨땅에 헤딩하며 얻은 C++관련 지식을 친절하게 알려주는 그런 책이다.

이 책의 저자는 자신이 C++에 대해서 모든 것을 아는것처럼 이 책을 기술하지 않았다. 오히려 저자는 자신도 모르고 있던 C++의 기능/정의 등이 왜? 그렇게 되었는지 끊임없이 탐구하면서 자신이 찾아낸 결과를 독자들에게 전달하여 주고 있다.

만일 C++ 문법책 한두권을 읽고 C++ 문법을 안다고 생각하는 C++ 초보 프로그래머라면 (설령 C언어의 고수라고 할지라도...) 일반적인 C++ 설명서가 놓친 부분들을 이 책의 저자와 함께 고민해보기를 권하고 싶다.

아직도 나는 헷갈리는 C++문법이 나오면(계속 C만 사용하다 보니, 때론 C++ 문법이 가물가물해진다.) 베게같은 C++ 문법책 대신에 이 책을 먼저 찾는다. 나보다 먼저 고민하고 나름대로의 모범답안을 적어놓은 선배의 족보같은 느낌... (마치 족보처럼 편집이나 구성은 별로 뛰어나지 않다. 하지만 내용은 쪽집게라는거~~ )

C만 사용하다 갑자기 10년전 대학시절에 배우고 쓰지않던 C++로 프로젝트를 수행해야 한다면 강추. 자신이 C++ 고수라고 생각한다면 통과.

P.S. 사실 C++ 문법은 평균적인 IQ의 인간이 익히기에는 너무 복잡하다. 자신이 C++의 고수라고 생각한다면 Effective C++More Effective C++을 읽어보기 바란다. 내용이 이해가 잘되신다면 당신을 고수로 인정합니다. 나는 아직도 이 두 책의 많은 부분이 이해되질 않는다. ㅠㅠ

Inside Windows 2000, Solomon/Russinovich, Microsoft ****

수 많은 리눅스 커널 분석 책들이 있지만 의외로 Windows의 커널 동작에 대해서 설명한 서적은 찾기 힘들다. Windows가 소스 코드가 공개되지 않은 OS라는 점을 생각하면 별로 의외도 아니지만...

Windows 환경에서의 개발자 뿐만 아니라 다른 환경에서 개발을 해야 하는 개발자이더라도 OS의 동작 원리를 아는 것은 일반적으로 개발자의 내공을 높이는데 결정적인 계기를 만들어 준다. OS 마다 최종적으로 제공하는 기능은 비슷 비슷 하지만 이를 구현하기 위한 디자인은 서로 조금씩 다르기 마련이며, 이러한 디자인의 차이점을 공부하는 것은 그야말로 엄청난 내공을 쑥쑥 키우는 영양제가 될 듯하다.

기존에 OS나 전신이론에 대한 기초 지식이 없이 바로 읽기에는 약간 부담되는 내용이므로 내용이 절반 이상 이해되지 않는다면 다른 공부를 좀 더 하고 다시 도전하기 바란다.

내가 읽을 것은 Windows2000용이었으나 Windows XP나 Vista용이 나왔을지도 모르겠다. 하지만 기본 내용이 많이 바뀌었을 것 같지는 않다.

번역서도 있으나, 절.대. 추천하지 않는다. (최소한 내가 본 초판 번역서는 정말 엉망이었다.) 중급이상 개발자라고 생각한다면 강추.