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

2 minute read

Git, 분산 버전 관리 시스템

git을 배우기 위해 고른 책. 초심자에게 좋다. github가 아니면 git을 배울 생각도 안 했겠지.

Head First iPhone Development

iOS App 개발에 관심이 있다. Head First 시리즈가 있다. 망설일 필요가 없지. 다만 이 책이 xcode 3 기준이라 아쉽.

자바 개발자를 위한 오브젝티브 C

if, for, … 이런 거 책에서 배우자니 슬퍼. 그래서 고른 책. ‘nil을 염두에 둔 설계‘ 챕터가 제일 마음에 들었다. 특징 설명과 그 특징을 살리기 위한 지침까지 얘기한다. 더 깊었으면 좋으련만 아쉬웠다.

Pro Git

git 메뉴얼 종결자. git 책 두 권을 봤는데, 둘 중 하나만 추천하라면 이 책을 추천.

제프리 리처의 Windows via C/C++

윈도우 하부구조를 알려주는 책. 프로세스, 스레드, 동기화 오브젝트, 메모리 관리, DLL, IOCP 등을 자세히 다룬다. 정말 윈도우 지식이 부족했구나. 책에서 정말 많이 배웠다.

C++ 템플릿 가이드 (C++ Templates: The Complete Guide)

템플릿 만으로 이만큼 분량을 뽑아낼 수 있구나. 자세한 설명으로 템플릿 내공을 쌓는데 그만이다.

Game Physics Engine Development, Second Edition

force generator, integrator, collision detection, contact resolution으로 구성되는 큰 그림을 잘 설명해서 도움이 됐다. 물리 엔진에 관심이 있다면 게임 물리 관련 공식들이 가득 담긴 책보다는 큰 그림을 그려주는 이 책이 나은 선택.

Game Engine Architecture

게임 엔진에 관한 모든 부분을 다룬다. 타겟팅 공격보다는 광역 공격에 가까운 책. 많은 부분을 다뤄서 깊이가 없지만, 핵심을 간단히라도 다 언급하니 도움이 된다. 엔진 통합 부분을 빼먹지 않고 꼭 언급하는 게 마음에 들었다.

소프트웨어개발의 지혜 : 원칙 디자인패턴 실천방법 (Agile Software Development, Principles, Patterns, and Practices)

OOP 설계 원칙 SOLID, 패턴, 사례 연구, 그리고 애자일 방법론 얘기 약간. 이렇게 구성. 설명 다 좋다. 마음에 든다.

Game Programming Gems 7

예전과 마찬가지로 대충대충 봤다. 내 관심사가 바뀌고 있어서 그런지, ’프로그래밍 일반’과 ’수학 및 물리’ 섹션이 재미있었다.

Foundations of Algorithms

다시 읽어 보고 싶었다. 하지만 급한 다른 책 때문에 우선순위가 낮았던 책. 마침 최근에 시간이 좀 생겨서 다시 읽었다. 알고리즘 이해는 어렵지 않다. 머릿속에 남아 있는 것들도 있고 예전에 배운 것들도 생각나고. 하지만 복잡도 분석은 아직도 어렵다. 점화식이 왜 그리 새로운지. 뒤로 왔다갔다 appendix가 너덜너덜해지겠다.

Refactoring 리팩토링

리팩토링 카탈로그 부분은 좀 지겹지만, 의사소통을 간편하게 할 수 있는 용어를 배울 수 있다. 안전하게 해당 리팩토링을 할 수 있는 절차를 적어 놓은 게 인상적.

패턴을 활용한 리팩터링 (Refactoring to Patterns)

리팩토링을 통해 패턴을 도입한다. 이 책에서 주장하는 핵심. 차근차근 코드를 발전시킨다. 그러다가 패턴과 연관성을 발견한다. 바로 그때 패턴으로 코드를 정규화한다.

Programming in Lua

Lua 장점을 살리는 방법에 대해 배울 수 있었다. 언어 설계자는 왜 이런 결정을 했을까? 이런 질문을 하게 되고 내 나름대로 추측도 하게 됐다.

ShaderX5

렌더링 테크닉에 대한 글을 모아놓은 책. 질질 끌다가 이번에 마무리했다.

Thinking in Java, 4th edition

다른 언어를 배울 때, 가장 걸림돌이 되는 게 기존에 배웠던 언어이다. 예전에 배웠던 언어 스타일로 프로그래밍하게 되거든. 그런 면에서 풍부한 예제는 많은 도움이 된다. 스타일을 익힐 수 있으니깐.

인사이드 머신(Inside the Machine, Jon Stokes)

학부때 배우는 ’컴퓨터 구조’를 더 쉽고 재미있게 배울 수 있는 책. 그림도 많다. 비전공자에게 추천하고 싶다.

돌아보니

올해 읽은 책은 총 17권. 실용적인 책이 많았다. 10:7로 내공에 밥도 적절히 줘서 비율은 괜찮다고 생각.

17권 중에 한 권만 꼽는다면 망설임 없이 패턴을 활용한 리팩터링 (Refactoring to Patterns). 패턴은 우리가 가고 싶은 곳. 리팩터링은 우리를 그곳으로 데려다 주는 도구. 이 사이를 책에서 배울 수 있었다.