스크랩

개발자 인생책 9권: 알고리듬부터 컴퓨터 구조까지 한 번에 정리

개발자 인생책 9권: 알고리듬부터 컴퓨터 구조까지 한 번에 정리

왜 이 책들일까요?

좋은 개발자가 되는 길에는 수많은 지름길이 있다고들 하지만, 결국 기본기를 탄탄히 다져주는 건 잘 쓰인 책 몇 권인 경우가 많습니다. 오늘 소개할 9권은 알고리듬·자료구조부터 컴퓨터 시스템 전체를 이해하는 책까지, 수십 년이 지나도 여전히 유효한 통찰을 담고 있는 고전들입니다. 하나씩 살펴볼게요.

알고리듬과 프로그래밍을 깊이 이해하고 싶다면

📘 The Art of Computer Programming

자주 인용되지만 실제로 완독하는 사람은 드문 책입니다. 한 페이지를 이해하는 데도 꽤 시간이 걸릴 만큼 밀도가 높지만, 연습문제 해답을 비롯해 곳곳에 숨은 통찰이 있어 투자한 시간이 아깝지 않습니다. 어셈블리 코드가 나온다고 지레 겁먹고 덮어버리면 정작 이 책의 진짜 매력을 놓치게 됩니다.

📘 Algorithms, 4th Edition

아름다운 도해와 풍부한 예제, 명확한 Java 코드가 특징인 알고리듬 교재입니다. 동반 웹사이트에서 코드와 데이터, 강의 슬라이드까지 제공하니 학습 자료로도 손색없습니다. 다만 판본이 중요한데, 꼭 제4판을 찾아서 보시길 추천합니다.

📘 The Practice of Programming

마지막 세 페이지에 책 전체에서 다룬 프로그래밍 규칙을 정리해 두었는데, 이 부분만으로도 학생이든 현업 개발자든 곱씹을 가치가 있습니다. "프로그래밍 언어 선택은 우리가 생각하는 것만큼 중요하지 않다"는 메시지가 특히 인상적입니다.

📘 Purely Functional Data Structures

순수 함수형 자료구조가 왜 필요하고 어떻게 구현하는지, 그 복잡도는 어떻게 분석하는지를 다룹니다. 특히 분할 상환 분석(amortized analysis)과 지연 평가(lazy evaluation)를 함께 엮어 설명하는 점이 돋보이고, 이항 힙(binomial heap) 같은 익숙한 자료구조를 새로운 시각으로 재해석해줍니다. SML 코드를 한 줄씩 짚어가며 설명해서 따라가기도 좋습니다.

📘 Programming Pearls

출간된 지 30년이 넘었지만 여전히 유효한 조언들로 가득한 책입니다. 정교한 문체와 예제 덕분에 읽는 재미도 있는데, 그중에서도 Writing Correct Programs, The Back of the Envelope, Sorting, Heaps 장은 특히 강력하게 추천합니다.

📘 Hacker's Delight

재미로 보는 트릭부터 실무에 바로 쓰이는 산술 기법까지 폭넓게 다룹니다. 코드가 상수로 나눗셈을 수행할 때 컴파일러 내부에서 실제로 무슨 일이 벌어지는지 알고 싶다면 꼭 봐야 할 책입니다. 원래 웹사이트는 사라졌지만 아카이브 사이트에서 여전히 확인할 수 있습니다.

📘 Algorithms on Strings, Trees, and Sequences

텍스트 알고리듬을 중심으로 다양한 알고리듬의 설명과 증명, 그리고 실제 응용 사례까지 폭넓게 다룹니다. 접미사 트리(suffix tree)에 통째로 한 파트를 할애하는데, 특히 이해하기도 구현하기도 까다롭기로 유명한 Ukkonen 알고리듬을 매우 명료하게 풀어냅니다.

컴퓨팅 시스템 전체를 이해하고 싶다면

📘 Computer Systems: A Programmer's Perspective

하드웨어부터 링킹(linking)까지, 프로그래머가 실력을 한 단계 끌어올리는 데 필요한 시스템 지식을 담고 있습니다. 링킹 하나에만 한 장 전체를 할애하는 흔치 않은 책으로, 제목 그대로 '프로그래머가 프로그래머를 위해' 쓴 느낌이 물씬 납니다.

📘 The Elements of Computing Systems

일명 nand2tetris로 잘 알려진 책으로, 모든 걸 직접 만들어보며 컴퓨팅 시스템 전체를 이해하도록 이끕니다. 논리 게이트로 기계를 만들고, 어셈블러와 컴파일러, 나아가 운영체제까지 차례로 구축하는 여정인데, 필요한 인터프리터는 미리 제공되니 부담 없이 도전할 수 있습니다. 설령 직접 구현까지는 못 하더라도, 처음부터 끝까지 읽어보는 것만으로도 충분히 가치 있습니다. 동반 웹사이트는 nand2tetris.org에서 확인할 수 있습니다.

마무리하며

이 목록의 공통점은 하나같이 '유행을 타지 않는' 지식을 다룬다는 점입니다. 특정 프레임워크나 언어가 아니라 알고리듬, 자료구조, 시스템의 근본 원리를 설명하기 때문에 몇 년이 지나도 여전히 유효합니다. 당장 다 읽기는 부담스럽더라도, 관심 가는 주제부터 한 권씩 곁에 두고 천천히 곱씹어보는 걸 추천합니다.


원문: https://news.hada.io/topic?id=32838