아주 오래전에 Nephilim님이 카페에서 읽고 있는 걸 보고 번역서가 나왔을 때부터 읽고 싶어하다가 이제야 보게 되었다. 이 책의 저자인 찰스 펫졸드(Charles Petzold)는 윈도우 프로그래밍 쪽에서 유명하므로 나는 이 사람의 책은 본 적이 없지만, 이 책은 정말 좋은 책이다.
특정 플랫폼이 아니라 컴퓨터와 소프트웨어의 역사에 대해서 다루고 있다. 역사하면 범위가 넓은데 컴퓨터가 만들어지는 과정부터 해서 지금의 프로그래밍 언어가 만들어진 과정과 원리를 모두 다루고 있다. 그래서 프로그래머라면 한 번씩(아니 두세 번씩?)은 읽어보라고 하고 싶은 책이다. 컴퓨터의 모든 원리를 담고 있다고 하면 꽤 어려운 내용일 것 같지만 그렇지는 않고 이해하기 쉽게 정말 잘 풀어놔서 책을 보면서 "이래서 이러한 구성으로 동작하는구나"하고 생각한 적이 한두 번이 아니다. 컴퓨터를 이루는 원리가 간단한 것은 아니므로 뒤로 갈수록 좀 복잡한 내용이 나오기는 하지만 다루는 내용의 깊이에 비해서는 아주 잘 풀어놨다고 생각한다. 한마디로 말하면 지은이의 글에도 나오듯이 "CODE라는 책은 컴퓨터가 어떻게 동작하는지 설명하는 책이다!"
처음에는 친구와 대화를 하는 방법부터 시작한다. 옆집에 사는 친구와 밤에 의사소통하기 위해서 수신호를 만들고 플래시를 이용해서 신호를 만들면서 2진수의 개념을 설명한다. 컴퓨터를 설명하면서 이런 이야기부터 시작하나 싶을 정도로 처음에는 아주 쉬우므로 소설을 읽듯이 가볍게 읽을 수 있다. 여기서 설명하는 이진수부터 시작해서 전신을 통해서 신호를 어떻게 보내고 릴레이를 통해서 신호를 보내는 범위를 어떻게 늘리기 시작했는지로 확장하면서 논리게이트를 만들고 이를 바탕으로 작은 컴퓨터를 만드는 원리를 설명한다.
나처럼 기본이 약한 채로 프로그래밍을 하는 사람한테 기본적인 개념을 잡기에 잘 설명되어 있다. 이진수를 이용해서 간단한 덧셈을 할 수 있는 기기를 만들고 뺄셈도 할 수 있게 확장한 뒤에 값을 저장하기 위한 메모리를 추가하는 등 점점 현재 우리가 보는 컴퓨터의 개념으로 확장하고 있다. 중반을 넘어가면 마이크로프로세서가 등장하고 운영체제와 기계어를 포함한 프래그래밍 언어까지 오면서 책이 끝나게 된다.
500페이지 정도의 얇지 않은 책이지만 이 책만큼 잘 설명한 책은 본 적이 없고 더 잘 설명할 수 있을 것 같지도 않다. 때때로 너무 찬찬히 설명하는 게 아닌가 싶을 정도로 자세히 설명하고 있지만 플래시를 이용한 신호에서 프로그래밍언어를 사용하는 컴퓨터까지 발전하는 설명의 진행이 너무 자연스럽게 이루어져서 이 책을 쓰기 위해서 찰스 펫졸드가 얼마나 많은 고민을 했는지 느껴질 정도고 때때로 관련 없어 보이는 예시들까지 뒤의 개념들에 이어지는 것들을 보면서 책을 보는 내내 감탄을 자아내게 했다. 뒤로 갈수록 좀 복잡해져서 확실히 개념을 다 이해하지는 못했기 때문에 나중에 다시 읽어보고 싶은 책이다. 너무 광범위한 내용이라 요약을 하기는 어렵고 직접 읽어보시라 말하는 수밖에 없다.
Comments