빠에야는 개발중

실용주의 프로그래머 & 실용주의 디버깅 본문

책 리뷰

실용주의 프로그래머 & 실용주의 디버깅

빠에야좋아 2019. 2. 27. 23:08

왜 두 책을 같이 리뷰하는가?

“실용주의 프로그래머”라고 하면 두말할 것 없이 유명한 책이다. 개발자들의 필독서처럼 여겨지고 있고, 나도 그래서 구매해서 읽게 되었다. 그렇게 유명한 책을 저술한 저자 앤드류 헌트, 데이비트 토머스 씨에게는 죄송하지만 나는 연달아 읽은 책 “실용주의 디버깅”에서 두 책간의 연결고리 비슷한 무언가를 느꼈다. 그렇기에 두 책이 가르쳐준 방법적인 교훈도 유용했지만 독서 전반적으로 느꼈던 그 느낌적인 것들을 이 글에서는 적으려고 한다. 좀 더 자세한 기술적 부분들은 나중에 기록할 기회가 있을 것이라 믿는다.

실용주의는 경험주의다

실용이라는 말을 풀어쓰면 실제로 사용한다는 의미다. 직접 해보는 것, 그리고 거기서 얻어지는 것들을 우선으로 삼는다는 것이고 이는 결국 경험이라고 일축할 수 있을 것이다. 하지만 단순한 경험만 가지고는 도움이 되는 교훈을 얻는 것이 힘들거나 비효율적일 수 있다. 같은 경험을 하더라도 사람마다 느끼는 것이 다르고 생각하는 것이 다르기 때문에 같은 배움을 얻지 못할 수도 있을 것이다. 어느 게임에서나 들을 수 있는 “아는만큼 보인다”는 여기에도 적용된다고 할 수 있다. 그렇다면 비슷한 경험을 나보다 훨씬 많이 하고 거기서 수많은 경험을 얻어본 사람들이 체득한 요령들을 빠르게 전수 받는 것이 가장 좋은 방법이 아닐까? 두 책에서는 최선의 경험을 얻을 수 있는 방법들을 우선 소개한 뒤, 그 방법들을 통해 어떻게 경험을 분석하고 판단해야하는지를 말한다. 그것이 무엇을 목적으로 하든. 디버깅이든, 무엇이든…

사고를 경험하다

책을 읽으면서 전반적으로 들었던 생각은 “어떻게 이렇게 생각하지?”였다. 책의 저자들은 어떤 사건을 마주했을 때 그것을 쪼개고, 뒤집고, 반대로 생각해보는 등의 사고 전개 과정을 말해줬다. 물론 그런 정보 전달도 도움이 되겠지만 한편으로는 그렇게 생각하게 된 경위, 그야말로 “왜” 그렇게 생각했는지가 궁금했다. 정말 직관적인 부분은 이해가 갔지만, 그렇지 않은 부분들은 나의 생각하는 능력 부족이라고 느꼈다. 그리고 그걸 극복하기 위해 책을 읽을수록 생각하는 루틴을 내 속에 정하게 되었는데, 더해보고, 빼보고, 쪼개보는 등의 사고 순서가 정립되는 느낌이었다. 미숙하게나마 그들처럼 생각하게 된 것이 아닐까? 하고 기뻤던 순간이다.

“결국은 글쓰기”

내가 책을 읽으면서 기술적인 것 이외에 본 글귀 중 가장 와닿는 문구다. 우리 개발자는 세상의 일에서 문제를 찾아내고 그 문제를 논리적으로 해결해나가는 것을 직업으로 삼고 있고(개인적으로는 스스로 좋아해야한다고 생각한다. 내 스스로 그런지는 아직 잘 모르겠지만..), 각 문제와 해결은 어떤 방식으로서 표현이 되어져야한다. 그것은 자연적으로 스토리를 가진다. 우리가 스토리를 얻을 수 있는 가장 보편적이고 편한 수단은 바로 글이다. 어떤 문제가 있었는지, 그리고 어떤 방법으로 해결했는지를 나 스스로는 물론이고 다른 사람에게 잘 알려주기 위해서는 글을 잘 써야한다. 글을 잘 쓰려고 노력하다보면 자연스럽게 내 사고 전개를 잘 다듬어 나갈 수 있을 것이다. 지금은 많이 부족하다. 당장에 지금 쓰고 있는 이 글도 굉장히 완성도가 떨어지니까… 일단은 내가 쓴 API 명세서, use case를 보면서 이들을 잘 다듬는 것부터 시작해야겠다고 생각했다.

'책 리뷰' 카테고리의 다른 글

테스트 주도 개발  (0) 2019.07.02
자바 성능 튜닝 이야기  (0) 2019.03.19
클린코드 리뷰  (0) 2018.01.16
Comments