생각하는 프로그래밍에 이어서 또다시 다 읽은 실용주의 프로그래머. 생각하는 프로그래밍과 함께 굉장히 오랜 시간 묵혀져 있던 책이다. 생각하는 프로그래밍은 그냥 번번히 읽기 실패했던 이유가 나의 내공 부족이었던 반면, 이 책은 이상하게 오래 묵혀져 있었네. 이유가 뭐였을까. 생각하는 프로그래밍과 비슷한 표지 형태가 나를 지레 겁먹게 만들었던 것일까. 아무튼 예전에 구매했을 때도 초반에만 조금 깔짝하고 읽지 않았던 것 같다.

이 책은 이제는 진부하디 진부한 내용을 다시금 언급하는 느낌이었다. 사실 그만큼 중요한 내용들이라는 것이겠지. 전체적인 내용은 실용적인 프로그래밍을 하기 위한 전략들이다. 그러니까 뭐, 코드를 대하는 마음가짐, 유지보수에 대한 철학, 프로토타입이나 예광탄, 추정, 메타 프로그래밍을 통한 데이터 생성, 자동화, 리팩토링, 문서화, 명세, 테스트, DRY 등. 이 정도만 언급해도 이 책이 말하고 있는 바가 어떤것인지 충분히 추측이 가능하리라 본다.

말하자면 개인적인 측면에서 프로젝트 팀까지 범위를 좁혔다 넓혔다 하며 어떤 식으로 프로젝트를(미시적으로든 거시적으로든) 이끌어 나가야 잘 해나갈 수 있다는 것을 말하고 싶어하는 것이다. 물론 금과옥조같은 말들이지만, 솔직히 말해서 좀 지겹다. 지금까지 너무나 많은 이런 류의 책을 읽어왔기 때문에… 물론 이런 글들을 내가 모두 실천하고 있는 것은 아니지만 왠지 공자님 말씀처럼 들린단 말이지…

그렇지만 내가 부끄러워지는 대목들도 있었다. 우연에 맡기는 프로그래밍을 하지 말라는 충고라거나 내 상상력의 한계를 깨부수는 많은 문제들. 정말 적어두고 계속해서 연습하고 싶을 정도로 많은 부분들이 나의 마음을 콕콕 찔렀다.

결국 이 모든 것을 해나가야 하는 사람은 바로 나이고, 그걸 위해서 여러 책들이 당연한 말들을 계속해서 언급하고 있는 것이리라. 아무튼 책은 다양한 연습 문제들과 예제를 실어서 재미있고 즐겁게 책을 읽을 수 있게 해두었고, 그건 나에게 참 의미가 깊었다. 훌륭한 책이었어. 재미있었다.