독후감 - 2019년 5월

틀리지 않는 법 - 수학적 사고의 힘

조던 엘렌버그 지음 | 김명남 옮김 | 열린책들 | 2016년 04월 25일 출간

틀리지 않는 법 이미지

세상을 더 깊게, 더 올바르게, 더 의미있게 이해하는 법

작년부터 보기 시작했던 것 같은데, 엄청 두껍고 수학을 다루고 있어서 좀처럼 속도가 나지 않은 책이다. 속도가 느려서 그렇지 읽는 내내 너무 재미있어서 시간 가는 줄 몰랐다. 연 초에 스터디도 하고 볼 게 많아 시간 날 때마다 조금씩 읽다가 전주영화제 기간에 해치워서 엄청 뿌듯하기도.

많은 내용이 담겨 있지만 커버지에 적힌 것처럼 세상을 더 깊게, 더 올바르게, 더 의미있게 이해하며, 복권을 사지 않도록 제안한다. 캐시 오닐의 대량살상수학무기가 운동권의 느낌이라면, 이건 일상 생활 속의 지혜랄까. 정확하게 현상을 이해하는 노하우를 얻을 수 있다. 읽는 동안은 자극을 받아서 일상적인 고민에 대해 수학적으로 올바르게 해석했을까 의문도 들기도 하지만 결국 사람이란 무릇 제 버릇 남 못 주기에 다시 원래의 미련한 중생으로 돌아와 고통을 받게 되리. 가끔 들춰보고 내가 세상을 잘 해석하고 있을까 돌아보기 좋은 책이라 생각한다.

올해 읽은 책 중에 최고라고 손에 꼽을 만 하다. 교육적인 의미를 떠나서 작가가 이야기를 엄청 재미있게 한다. 내가 살면서 수학과는 한 대여섯명은 본 것 같은데, 말이 적은 사람이 없다. 저자는 그게 수학적으로 틀린 생각이라고 하겠지만.

테스트 주도 개발로 배우는 객체 지향 설계와 실천

스티브 프리먼 , 냇 프라이스 지음 | 이대엽 옮김 | 인사이트 | 2013년 06월 20일 출간

테스트 주도 개발로 배우는 객체 지향 설계와 실천 이미지

오래 전 S66 스터디와 올 해 회사에서 진행한 TDD 스터디 교재로 썼던 책이다. S66 스터디 때는 제대로 이해도 못했고 책을 완독하지도 못했는데, 이번에는 나름 열심히 잘 읽어냈다. 8장까지의 이론은 스터디 진행 과정이었기 때문에 여러번 주의깊게 읽었고, 중간 코드로 이해해야 하는 부분은 문법의 낯선 부분과 가독성 때문에 쉽게 진도가 나지 않아서 괴로웠다. 그러나 이후 테스트에 관한 노하우는 쉽게 쉽게 읽고 넘어갈 수 있었고, 나도 그동안 이해도가 많이 높아졌는지 전보다 이해하는 폭이 넓어졌다.

어떤 분은 이것이 ‘일반적인 TDD는 아니다’라고 하셨지만, 다 읽어본 결과 TDD나 테스트를 공부하기에는 매우 좋은 책이라고 생각한다. TDD 만을 공부한다는 건 사실 현실성이 없고, 객체지향이나 설계 관점에서 같이 이해력을 높여야 하기 때문이다. TDD를 공부하는데 이보다 더 좋았던 책이 없었을 정도다. 다만 입문용으로는 너무 어렵다.

내가 TDD를 잘 몰랐을 때나 TDD가 불가능 하다는 사람들처럼, 테스트를 만들어가는 과정에서 많은 혼란이 있다. 정석이라면 이렇게 해야하는데, 이게 구조상 가능한가? 이거 배보다 배꼽이 더 큰데? 이런 의문도 들고. 그런데 이 책에서도, TDD를 잘하는 사람도 정석으로만 테스트를 만들어 나가진 않는다. 당시 생각하는 가장 적절한 선택을 할 뿐이다. 그리고 실패도 하고, 잘못을 인정하기도, 설계를 뒤엎기도 한다. 초보에게 힘든 것이 이 지점인데, 내가 몰라서 TDD가 어려운 건지, 원래 쉽지 않은 테스트인 건지 구분이 어렵다.

그런 면에서 TDD가 현실적이지 않다는 사람들이 이해되기도 했다. 설계 역량이 없다거나 TDD에 관한 충분한 지식이 없는 상황에선 잘못된 선택이 지속될 가능성도 크다고 생각한다. 물론 이건 코딩도 마찬가지겠다만. 라이브러리 익히는 것처럼 튜토리얼 한두번 따라해서 잘 되지도 않고, 정답도 없고, 잘 선택하는 안목을 기를 수 밖에.

지금보다 더 설계나 테스트에 관한 역량이 늘어났을 때 또 다시 훑어보면 좋을 책이라고 생각한다.