책리뷰

[책리뷰] 찰스 펫졸드의 "CODE"를 읽고...

Cordilog 2025. 6. 21. 09:00

독서모임에서 세 번째로 읽게 된 책은 찰스 펫졸드의 『CODE』(2판)이다. CODE는 컴퓨터 전공자라면 한 번쯤은 들어봤을 유명한 고전이고(참고로 2판은 1판이 나온 지 15년 뒤인 2022년에 출판되었다.), 우리 모임의 구성원 모두가 방송대 컴퓨터과학과 재학생인 점을 생각하면 이 책이 투표로 선정된 것은 어쩌면 당연한 일이었다. 처음에는 교양서 느낌으로 가볍게 읽기 시작했는데, 실제로 책장을 넘길수록 상당히 밀도 있는 책이라는 것을 실감했다. 그만큼 깊이 있는 사고와 많은 집중력을 요하는 책이었다. 

 

저자는 곧바로 '컴퓨터'라는 본론으로 들어가지 않는다. 인간이 정보를 어떻게 표현하고 전달해왔는지에서 출발해 단계적으로 컴퓨터의 본질에 도달해 간다는 점에서, 완전히 새로운 관점에서 컴퓨터에 대해 가르쳐 준다. 

 

『CODE』를 읽으며 가장 인상 깊었던 부분은, 1과 0이라는 극단적으로 단순한 두 개의 상태가 얼마나 강력한 표현 수단이 될 수 있는가였다. 우리가 잘 알고 있는 모스 부호, 바코드, QR코드 같은 방식의 정보 표현뿐 아니라, 시각장애인들이 사용하는 점자까지도 2진법에 기반하고 있다는 사실이 매우 신선했다. 단순한 이진 표현이 인간의 커뮤니케이션 수단을 이토록 다양하게 발전시켜왔다는 사실은 지금 우리가 공부하는 컴퓨터 역시 동일한 맥락에 있음을 다시 한번 상기하게 해주었다. 

 

또한 추상적인 논리 연산 개념을 현실적인 장치와 연결 지어 설명한 부분이 이해에 많은 도움이 되었다. 나는 올해 컴퓨터과학과에서 첫 학기를 보내며 '이산수학' 과목을 수강했는데, 이 책을 읽으며 수업에서 배운 AND, OR, XOR, NAND, NOR 같은 논리 연산이 실제 회로에서 어떻게 구현되는지 시각적으로 이해할 수 있었다. 또한 책에 나온 회로들(circuits)을 직접 시뮬레이션 해볼 수 있는 무료 웹사이트가 함께 공개되어 있어서, 책을 읽으면서 직접 회로의 스위치를 눌러 다양한 입출력에 따른 결과를 직접 확인해 볼 수 있다는 것도 좋았다. (사이트는 하단 링크에 걸어둠.) 내년에 디지털논리회로 수업을 들을 예정인데, 이 책에서 논리게이트의 구조와 개념을 미리 접했기 때문에 따라가기가 훨씬 수월하지 않을까 기대해본다.

 

단순히 하드웨어적 원리를 설명하는 데 그치지 않고 컴퓨터의 소프트웨어적 진화까지도 함께 짚어준다는 점 역시 매우 유익하다고 느꼈다. 아날로그와 디지털의 차이, 텍스트 인코딩의 발전, 아스키(ASCII) 코드의 역사, 운영체제가 어떤 역할을 수행하게 되었는지 등도 자세히 다루고 있는데, 이런 내용을 통해 하드웨어와 소프트웨어가 단절된 분야가 아니라 긴밀하게 맞물려 있는 하나의 유기체임을 느낄 수 있었다. 소프트웨어만 공부하다 보면 물리적인 기반을 망각하기 쉬운데, 『CODE』는 그 기반을 이해해야만 진정한 컴퓨터적 사고가 가능하다는 점을 끊임없이 상기시킨다. 이런 관점에서 파이브북스 첫번째 책이었던 『IT 세계의 괴물들』과 그 맥을 같이 한다고 할 수 있겠다. 물론 그보다 훨씬 심화된 내용이기는 하지만 말이다.

책의 후반부에서는 컴퓨터의 가장 핵심적인 구성 요소 중 하나인 메모리 구조와 제어 흐름을 어떻게 설계할 수 있는지도 보여준다. 단순한 전기 신호에서 시작한 이야기가 메모리 셀, 레지스터, 스택 구조로 연결되고, 나아가 루프와 분기, 서브루틴 호출 같은 고수준의 프로그램 구조로 이어지는 과정이 마치 한 편의 연대기 같다. '반복문'과 '조건문'이라는 익숙한 프로그래밍 개념이 전기 회로의 조합으로 어떻게 구현되는지를 다루고 있기 때문에, 우리가 실제로 코딩을 할 때 적용하는 제어 구조들이 사실은 매우 정교하게 설계된 하드웨어 논리의 결과물이라는 사실을 깨달을 수 있었다. 사실 이 부분은 너무 어려워서 완벽하게 이해하지 못하고 대충 넘기면서 봤다. 역시 한 번 읽어서 제대로 이해하기는 어려운 책인 것 같다. 

 

결론적으로 컴퓨터과학 또는 컴퓨터공학을 전공하는 학생들에게 이론 위주의 전공 교재와는 전혀 다른 방식으로 컴퓨터를 이해할 수 있는 실마리를 제공한다는 점에서, 또한 저자가 나름의 위트를 동원해 자칫 딱딱해서 소화하기 힘든 원리를 어떻게든 독자에게 설득시켜보려고 하는 노력이 돋보인다는 점에서 꼭 한번은 읽어볼 만한 책이라 생각한다. 특히 내용의 흐름이 전공과목들과 자연스럽게 연결되는 점이 큰 장점인 것 같다.  

 

마지막으로 방송통신대학교 학생이라면 이 책의 원서를 무료로 읽는 방법이 있어서 소개한다.

방송대 계정으로 O'Reilly를 가입하면 무료로 이용할 수 있다. (방법은 중앙도서관 홈페이지에 나와있음.)

O'Reilly에 들어가서 다음 제목으로 검색하면 이 책의 영어 원서를 찾을 수 있다. 

Code: The Hidden Language of Computer Hardware and Software, 2nd Edition

 

 

 

https://codehiddenlanguage.com/

 

“Code” by Charles Petzold

A few interactive circuits from “Code” 2nd edition

codehiddenlanguage.com