실용주의 프로그래머 (데이비드 토머스, 앤드류 헌트, 2005) 독후감
실용주의 프로그래머는 무엇이 다른가? 우리는 태도와 스타일 그리고 문제와 해법에 접근하는 철학에 차이가 있다고 생각한다. 그들은 직면한 문제 너머를 생각하며, 문제를 항상 더 큰 맥락에 놓으려 노력하고, 항상 더 큰 그림을 보려 한다. 어쨌건 이런 더 큰 맥락 없이 도대체 어떻게 실용적일 수 있겠는가? 어떻게 똑똑한 절충안을 내고, 정확한 사실에 근거한 결정을 내릴 수 있겠는가
실용주의. 좀 느낌이 가볍지 않나? 정치인들은 뜻도 모르는 상태에서 가볍고 생각 없이 사용하고 있지만, 이 책에서 뜻하는 실용주의는 만만한 단어가 아니다. 큰 맥락을 보지 못한 채로 어떻게 똑똑한 절충안을 낼 수 있겠냐고 책은 묻고 있다. 참 단어 뜻을 깊이 헤아리지 않고 내가 만만하게 생각하고 있었구나. 상황에 가장 맞는 해결책을 내놓는다. 맞다. 이렇게 하려면 정말 큰 그림을 봐야 한다. 실용주의란 정말 힘든 거구나.
이론적인 내용만 나열하지 않고 경험과 통찰로 얻은 지식을 나누고 있다. 책을 통해서 어떤 부분을 더 배워야 하는지. 내가 잘못 생각하고 있는 건 뭔지. 다시 생각할 수 있었다. 책에서 말하는 실용주의에 다가갈 수 있도록 격려하고 돕는 건 물론이고. 아무래도 긴 항해가 될 것 같다.
기억나는 문장
- 우리가 단지 돌을 자를지라도 언제나 대성당을 마음속에 그려야 한다. - 채석장 일꾼의 신조
- 허락을 얻는 것보다 용서를 구하는 것이 더 쉽다. - 그레이스 호퍼
- 지식에 대한 투자가 언제나 최고의 이윤을 낸다. - 벤자민 프랭클린
- 결정이 돌에 새겨지는 것이라 가정하고, 발생할지도 모를 우연한 사건들에 대해 준비하지 않는 데에서 실수가 나온다. 결정이 돌에 새겨진 것이 아니라 해변가의 모래 위에 쓰인 글씨라 생각해 보자. 언제든지 큰 파도가 글씨를 지워버릴 수 있다.
- 프로토타이핑은 학습 경험이며, 프로토타입의 가치는 생성된 코드에 있는 것이 아니라 이를 통해 배우게 되는 교훈에 있다. 이것이 프로토타이핑의 진정한 핵심이다.
- 언어의 한계가 곧 자기 세계의 한계다. - 루트비히 비트겐슈타인
- GUI의 장점은 WYSIWYG(What You See Is What You Get), 즉 여러분이 보는 것이 여러분이 얻는 것이라는 것이다. 단점은 WYSIAYG(What You See Is All You Get)
- 리팩터링을 하지 않는 핑계로 자주 사용되는 이유가 일정의 압박이다. 하지만 이것은 설득력 있는 이유가 되지 못한다. 지금 리팩터링을 하지 않으면, 일이 더 진척되었을 때, 곧 신경 써야 할 의존성이 더 많이 생겼을 때 문제를 고치기 위해 훨씬 더 많은 시간을 투자해야 한다. 그때가 되면 일정에 더 여유가 생길까? 우리의 경험에 비추어 봤을 때 그런 일은 없다.
- 우리는 단위 테스트를 계약을 잘 지키는지 보는 테스트로 생각하길 좋아한다.
PS : 처음 읽은 게 언젠지 기억이 안 난다. 다시 읽어도 와닿는 조언이 많다.
Update
표지 사진 교체