
“서평단으로 활동을 위해서 책을 협찬 받아 작성된 서평입니다.”
개발자로 살아가다 보면 “코딩 실력”만큼이나 절실해지는 능력이 하나 있습니다. 바로 ‘남이 쓴 코드를 읽는 힘’입니다. 사실 신규 프로젝트를 바닥부터 구축하는 경험은 생각보다 드뭅니다. 대부분의 실무는 이미 누군가(혹은 과거의 나)가 만들어 놓은 거대한 코드 숲에 들어가 버그를 잡거나 기능을 개선하는 유지보수 업무에서 시작되니까요. 하지만 우리는 대개 ‘어떻게 쓸 것인가’만 배웠지, 암호 같은 남의 코드를 ‘어떻게 읽을 것인가’에 대해서는 체계적으로 배워본 적이 없습니다.
오늘 소개할 『프로그램을 읽는 기술』은 바로 그 막막함을 뚫고 나갈 실무적인 나침반이 되어주는 책입니다.
1. 왜 우리는 남의 코드를 읽을 때 벽을 느끼는가?
책의 초반부에서는 우리가 실무에서 느끼는 피로감의 원인을 아주 현실적으로 짚어냅니다. 단순히 “내 실력이 부족해서”라고 자책할 일이 아닙니다. 사람마다 설계를 할 때의 논리 구조가 다르고, 변수 이름을 짓는 습관이나 주석을 활용하는 방식이 천차만별이기 때문입니다. 언어의 특성이나 실력의 차이까지 더해지면 타인의 코드는 마치 외계어처럼 느껴지기도 하죠.
이 책은 이러한 현실을 인정하는 것에서 시작합니다. 그리고 “이해할 수 없는 코드를 붙잡고 씨름하는 시간”을 줄이기 위해, 어떤 언어로 작성되었든 공통적으로 적용할 수 있는 ‘코드 분석의 알고리즘’을 제시합니다.
2. 모든 프로그램의 본질, ‘입력-처리-출력’의 톱니바퀴
이 책이 제시하는 가장 핵심적인 통찰은 50페이지에 나오는 구조에 대한 설명입니다.
“본질적으로 프로그램은 입력, 처리, 출력이라는 3단계로 나뉠 수 있습니다. 어떤 목적의 프로그램이든 전체적으로 보면 입력이 있고, 그것을 어떠한 처리 과정을 거쳐 출력을 얻는 과정으로 이루어져 있습니다.”
저자는 한 걸음 더 나아가, 단순히 프로그램 전체가 이렇다는 것이 아니라 그 안을 구성하는 작은 함수, 심지어 코드 한 줄 한 줄조차 이 ‘입력-처리-출력’의 반복으로 이루어져 있다는 점을 강조합니다.
예를 들어 ‘가위바위보’ 게임이라는 거대한 시스템을 분석한다고 가정해 봅시다. 처음에는 막막하겠지만, 이를 쪼개보면 ‘플레이어의 손을 입력받는 과정’조차 독립적인 구조로 볼 수 있습니다. “플레이어가 선택한 손”이라는 입력을 받아, 이를 “변수에 저장”하는 처리를 거쳐, 최종적으로 “플레이어의 손을 가리키는 변수”라는 출력을 내놓는 식이죠. 이렇게 프로그램을 계층적인 결합으로 바라보는 눈을 갖게 되면, 아무리 복잡한 코드라도 논리적인 단위로 분해해서 정복할 수 있게 됩니다.

3. 나무가 아닌 숲을 먼저 장악하는 ‘메인 부분’ 우선 전략
또 하나 실무자들이 깊이 새겨야 할 조언은 91페이지에 등장합니다. 코드를 읽을 때 가장 흔히 하는 실수가 첫 번째 줄부터 순차적으로 읽어 내려가는 것입니다. 저자는 이 방식 대신 다음과 같은 전략을 제시합니다.
“메인 부분을 읽는 것은 무엇보다도 우선입니다. 갑자기 한 줄씩 코드를 읽는 것이 아니라 메인 부분부터 읽어야 합니다. 그리고 처리만 쫓는 것이 아니라, 데이터의 흐름이나 입력, 출력도 의식하면서 읽음으로써 읽는 속도와 정확도가 부쩍 올라갈 것입니다.”
전체적인 설계의 뼈대인 메인 로직을 먼저 장악하면, 그 이후에 나타나는 세부 함수나 데이터 구조는 자연스럽게 그 맥락 안에서 이해됩니다. 마치 지도를 먼저 보고 목적지로 가는 길을 파악한 뒤에 주변 풍경을 감상하는 것과 같습니다.
4. 파이썬을 넘어 모든 개발자에게 필요한 기술
이 책은 가장 대중적인 파이썬을 예제로 활용하지만, 그 원리는 어떤 언어를 사용하는 개발자에게도 동일하게 적용됩니다. 6장부터 이어지는 숫자 맞추기 게임이나 틱택토, 그리고 실제 파이썬 모듈(random, calendar)과 업무 시스템(고객 관리 등) 실습은 이론으로 배운 분석 관점을 실전에서 어떻게 활용하는지 몸소 체험하게 해줍니다.
마치며: 유지보수가 두려운 당신에게 권하는 처방전
이 책은 단순히 ‘코드를 읽는 요령’ 몇 가지를 알려주는 책이 아닙니다. 프로그램을 바라보는 관점 자체를 ‘데이터의 흐름과 구조’ 중심으로 재편해주는 가이드북입니다.
유지보수를 하러 들어간 코드 앞에서 막막함을 느껴본 적이 있다면, 이 책을 꼭 읽어보시길 권합니다. 읽을 줄 아는 개발자가 결국 더 좋은 코드를 쓸 수 있다는 진리를 이 책을 통해 확인하실 수 있을 것입니다.
