책속에서
이 책에 대해 제가 원래 가지고 있던 생각은, 매우 단순한 개념에서 시작해 서서히 디지털 컴퓨터의 동작에 대해 깊이 이해하도록 하는 것이었습니다. 이런 점진적으로 지식의 언덕을 올라가는 과정을 통해서, 은유와 유추, 바보 같은 삽화 등의 사용을 최소화하는 대신 실제 엔지니어들이 사용하는 언어와 기호를 사용할 수 있었습니다. 또한 이 책에서는 나름 재미있는 기법을 통해서 이야기를 풀어나가려 했습니다. 즉, 이 책에서는 보편적인 원리를 설명하기 위해서 고대의 기술을 사용했는데, 고대의 기술이 매우 오래되었음에도 낡은 기술이 아니라는 생각을 가지고 있었기 때문입니다. 마치 내연기관에 관한 책을 쓰면서 포드 모델 T를 기반으로 설명하는 것처럼 말이죠.
저는 이런 접근방식이 여전히 타당하다고 생각하지만, 몇몇 세부적인 부분에서는 틀린 부분도 있었습니다. 시간이 지남에 따라 문화적 요소를 참고한 부분들이 낡은 내용이 되면서, 책이 나이를 먹은 것이 드러나게 되었습니다. 키보드와 마우스를 스마트폰과 손가락이 보완하게 되었으며, 1999년에도 인터넷이 있었지만 지금처럼 될지는 몰랐습니다. 초판에서는 세계의 모든 언어와 이모티콘을 공통적으로 표현할 수 있는 유니코드에 한 페이지도 채 할애하지 않았으며, 웹에서 가장 많이 사용하고 있는 프로그래밍 언어인 자바스크립트에 대해서는 언급하지도 않았습니다.
이런 문제는 비교적 쉽게 고칠 수 있겠지만, 초판부터 계속해서 저를 괴롭혔던 다른 부분이 있습니다. 바로 컴퓨터의 두뇌, 심장이자 영혼인 CPU가 어떻게 동작하는지 보여 주고 싶었지만, 초판에서는 제대로 보여 주지 못했습니다. 저는 결정적인 돌파구에 거의 도달했다고 느꼈지만 포기하고 말았습니다. 이 점에 대해서 독자들이 불평하지는 않는 것 같았지만, 저에게는 명백한 결함이라는 생각이 들었습니다.
이번 2판에서 이 결함이 수정되었습니다. 이 부분을 추가하면서 70페이지(원서 기준) 정도가 늘어났습니다. 네, 더욱 긴 여정이 되었지만, 이번 2판에서도 저와 같이 페이지를 따라 가다 보면 CPU의 안쪽 깊은 곳까지 도달할 수 있을 거라 생각합니다.
-'2판 서문' 중에서