#retrospective 2010년 돌아보기 – 내가 읽은 프로그래밍 관련 서적

3 minute read

게임 & 인터랙티브 애플리케이션을 위한 수학

선형 대수부터 셰이딩, 조명, 래스터화, 강체 역학까지 게임에 필요한 기초 수학은 다 다루고 있다. 자세히 설명을 안 하고 넘어가는 게 간혹 있지만 대부분 충실히 설명. 뒷심이 급격히 떨어지는 게 보이지만 전체적으로 만족하는 책. 소스 코드도 다 있어 실용적이다.

루아를 이용한 민첩하고 효과적인 게임 개발

게임 개발 경험이 있는 개발자는 별로 얻을 게 없는 책. 프로젝트에서 루아를 사용해서 배우려는 디자이너나 기획자가 보기에도 별로인 책이다. 게임 개발 과정에 꼭 들어가는 렌더링, 충돌 처리, AI 등을 다루고 있어 루아에 관심있는 이제 막 게임 개발을 시작하는 프로그래머에겐 좋은 책이 될 것 같다.

DirectX9 셰이더 프로그래밍

다른 책들보다 자세하게 설명한 GPU 렌더링 파이프라인과 조면 효과 설명이 마음에 든 책. 셰이더를 사용해 여러 효과를 맛볼 수 있고 기초 설명 또한 좋아서 처음 셰이더 프로그래밍을 하는 사람이 보기에 최고인 책이다.

디지털 라이팅 & 렌더링 (Digital Lighting & Rendering)

셰이더 코드가 하나도 없는 3D 렌더링에 관한 책. 한 번쯤 들어봤을 법한 내용은 다 나온다. 컬러 CG 예제 화면이 많아서 마음에 들었다. 렌더링에 관심있어 하는 사람들에게 항상 추천하는 책.

Head First SQL

SQLite를 사용하는데, 문법이 가물가물해서 집어든 책. 역시 Head First 시리즈는 실망을 주지 않는다.

이산수학 (Mathematical structures for computer science)

저자가 최대한 컴퓨터 과학에 쓰이는 개념을 끌어서 설명하려는 게 마음에 들었다. 그리고 이론을 설명하고 뒤에 따라오는 예제가 많은 것도 만족. 하지만 너무 난이도가 낮아서 그런지 읽는데 그닥 재미는 없었다.

프로그래밍 면접 이렇게 준비한다

간단해서 짧은 시간에 물어보기 좋은 문제들이 실려있다. 답을 알려주는 방식이 무척 마음에 들었다. 그냥 문제를 내놓고 “이게 답이다.” 딸랑 던져주는 게 아니라 쉽고 바로 생각할 수 있는 해법을 가르쳐 준 다음 조금씩 개선하며 최종 답을 내는 과정을 보여준다. 면접 준비를 안 해도 재미있게 읽어 볼 수 있는 책.

능률적인 프로그래머

내가 쓸데없이 반복 처리를 많이 한다는 걸 깨달은 게 이 책에서 얻은 가장 큰 수확이다. 더 능률적인 프로그래머가 될 수 있다.

실용적 예제로 본 게임인공지능 프로그램하기

게임 인공지능을 공부하는 데 있어 좋은 출발점이 되는 책.

해커와 화가

리스프 빠심 충전 완료. 읽고 나니 진지하게 배우고 싶어진다. 프로그래밍 언어에 대한 통찰력만으로도 충분한 값어치가 있는 책.

Code Complete

구현에 관한 모든 항목을 다루고 있다. 종합선물세트와 같은 책.

실전 코드로 배우는 실용주의 디자인 패턴

자기 주장이 강한 무림고수가 쓴 책. 디자인 패턴을 사용한 소스 코드도 훌륭하고 setter/getter 얘기도 좋았다. 정말 많은 걸 생각하게 하고 많이 배운 좋은 책.

GoF 디자인 패턴! 이렇게 활용한다

평가가 좋던데, 나는 비추한다. 그냥 소스를 C++에 맞춰 짠 책.

스크럼(Agile Software Development with Scrum)

귀동냥만 해서 엉클어져 있는 개념을 교통정리. 실패 사례가 없이 그냥 킹왕짱 사례만 있어 이건 좀 아쉽.

Design Patterns : Elements of Reusable Object-Oriented Software

명서. 책이 어려워 쉽게 설명한 다른 책을 먼저 읽겠지만 결국 이 책으로 돌아오게 된다.

Debug It! 실용주의 디버깅

정석 맞다. 흑! 내가 신입일 때, 왜 이런 책이 안 나온겨. 꼭 알아야 할 디버깅 지침서.

xUnit 테스트 패턴

좋자고 하는 건데, 내버려뒀다간 테스트 코드가 오히려 발목을 잡는다. 테스트 코드를 어떻게 관리하는지 고민과 노하우가 실려 있는 책. 용어 정리를 칼같이 하는 저자 성격도 마음에 든다.

프로그래머의 길, 멘토에게 묻다 (Apprenticeship Patterns)

견습과정을 걷고 있는 프로그래머에게 하고 싶은 조언을 ‘상황, 문제, 해결책, 실천 방안’으로 만든 패턴들을 모아 놓은 책인데, 내게 필요하고 명심해야 할 패턴들이 많았다.

Java 언어로 배우는 디자인 패턴 입문 멀티쓰레드 편

멀티스레드 프로그래밍 기본 서적으로 추천하는데, 나도 강력히 추천.

맨먼스 미신

35년이나 된 고전. 작은 형님들이 큰 형님이 한 말을 인용해서 재미있게 설명한 걸 본 후라서 정작 직접 큰 형님이 하는 말을 들으니 재미가 없다.

실용주의 프로그래머

이 책에서 뜻하는 실용주의는 만만한 단어가 아니다. 큰 맥락을 보지 못한 채로 어떻게 똑똑한 절충안을 낼 수 있겠냐고 묻고 있다. 이론적인 내용만 나열하지 않고 경험과 통찰로 얻은 지식을 나누고 있는 좋은 책.

지속적인 통합

인터넷에 흩어져 있는 정보를 한 곳에 모은 책. CI를 구축하기 전에 읽어보면 좋다.

실용주의 사고와 학습

어떻게 하면 프로그래머가 더 실용적으로 사고하고 학습을 할 수 있을까? 이것에 집중한 책.

드리밍 인 코드

오픈소스 챈들러 프로젝트 개발 이야기를 담은 책. 극찬하는 서평이 많아서(조엘 아저씨도 극찬.) 기대했는데, 별로였다.

IT 개발자가 쓴 통쾌한 인간관리 이야기

비추천. 말리고 싶다.

이 중에서 내 맘대로 최고는? 난 실전 코드로 배우는 실용주의 디자인 패턴을 꼽는다. setter/getter 얘기도 그렇고 자기주장 강한 것도 그렇고 참 내게 영향을 많이 준 책이다. 안 봤다고 하면 항상 적극적으로 추천하는 책이다.

총 25권. 여기서 아꿈사 스터디를 한 책은 7권이다. ((8권인데, 프로그래밍 클로저는 다 못 봐서 제외했다.)) 어려운 책이 없었던 건 좀 아쉽. 포스트모템에서 말했듯이 great literature가 없었다. 읽긴 읽었는데, 블로그에 리뷰를 안 적은 책을 다시 읽기도 하고 그리 어려운 책도 없었다. 권수만 채우는 데 급급하지 않았나 반성 중.

조슈아 케리에브스키가 언젠가 제리 와인버그에게, 어떻게 하면 쏟아져 나오는 그 모든 책들을 따라잡을 수 있느냐고 물었다. 제리가 대답했다. “그건 쉽습니다. 나는 제일 훌륭한 것들만 읽지요.”

프로그래머의 길, 멘토에게 묻다

너무 조바심을 갖지 않고 이 말을 명심해야겠다.

작년에도 정리했고 매년 정리할 생각.