본문 바로가기
일반 책 리뷰/추천책

[책] 클린 코더 - 로버트 마틴

by 크라크라 2019. 3. 25.
클린 코더 The Clean Coder
국내도서
저자 : 로버트 마틴(Robert C. Martin) / 정희종역
출판 : 에이콘출판사 2016.07.20
상세보기



 프로그래밍 업계를 꿈꾸는 학생 또는 업계 사람이라면 이미 들어봤거나 언젠가는 무조건 듣게 될 거장 로버트 마틴의 책이다. 사실 이 사람의 다른 책들도 있으나, 개인적으로는 이 책을 먼저 손에 들어보는 것은 어떨까 싶다. 원작은 2011년에 출간되었으나, 아마도 번역료나 기타 문제로 인해서 한국에는 2016년에야 출판되었다는 그 아쉬움만 제외하고 나면 매우 좋은 책인 것 같다. 


 이 책을 통해서 저자는 "프로페셔널"이라는 전문가의 삶의 방식, 삶의 자세와 같은 것들을 이야기한다. 거기에는 본인의 40여년에 이르는 경험은 물론이고, 다른 사람들의 경험과 가상의 인물들을 통한 우화까지 다양한 에피소드를 기반으로 독자에게 친절하게 설명해준다. 


 개인적으로 이 책을 매우 감명 깊게 읽을 수 있었던 이유는, 바로 내가 다니던 회사에서 겪었던 "언프로페셔널"한 경험들 때문이었다고 생각한다. 사실 프로페셔널하다고 말 할 수 있는 전문가가 어떤 사람을 말하는 것인지는 불분명하기도 하고, 본인은 아직 그 레벨에 닿지 않았다고 생각하기는 한다. 결국 프로그래머의 세계는 잘하는 사람이 가장 칭송받는 세계이기 때문에 삶의 자세 같은 것만으로는 프로페셔널하다고 볼 수는 없다. 그렇지만, 돈을 받고 남의 일을 한다는 측면에서 매우 배울 것이 많다.(그것이 자신의 일이라도) 


 다시 이야기로 돌아가보면 본인 스스로도 그렇지 못했지만, 회사는 중소기업인만큼 엉망진창이었다. 한국 중소기업의 한계일지도 모르겠지만 각종 테스트의 부재, 멘토링의 부재, 좋은 것이 좋은 것이다. 기획팀과 개발팀의 의사소통 문제 같은 것들을 많이 겪었고 이 불합리함이 어디에서 기인하는 것일까?라는 생각을 꾸준히 해왔다. 이유는 너무나도 분명했던 것 같다. 전문가 의식의 부재, 책임의 부재가 회사를, 제품을 더 좋게 만드는 것을 거부하게 한다. 사실 어쩌면 이것은 돈 문제에 기인하는 것일지도 모른다. 어쨋건 회사의 아마추어리즘이 많은 사람들을 지치게 하고 있다는 점은 분명한 사실이다. 


 사실, 모든 경우에 꼭 본받아야할 내용들은 아닐 것이다. 모두가 저자처럼 높은 마음가짐으로 소프트웨어를 대하지 않을 수 있고 그것이 필요하지 않을 수도 있다. 본인만 해도 프로그래밍은 기술적인 부분의 필요성이 더 컸고, 그 삶을 겪어보고 느낀 것이지만 프로그래밍보다는 다른 무엇인가를 업으로 삼고 싶은 사람이기 때문이다. 그럼에도 "프로"로서의 자세는 어떤 직군에서나 가져야 할 필수적인 내용이라는 점도 업계를 지나가는 사람들에게 도움이 될 내용이라고 생각한다. 


 책 내용은 직접 읽어보는 것이 더 좋겠지만 몇 가지만 언급해보겠다.


 저자의 강조는 태도, 원칙, 행동이 프로의 핵심이라고 한다. 뒤의 모든 내용들은 다 이것들을 뒷받침하는 내용이다.


1장 프로의 마음가짐  


- 책임감을 가져라. 

- 프로그래밍 기술과 지식을 끊임없이 익히고 발전시켜라. 

- 개발하는 프로그램이 다루는 분야에 대한 지식을 일정 수준까지는 배워라.


2장, 3장 "예", "아니오" 라고 말하기.  


- 당장의 눈 앞의 것을 위해서 두루뭉술하게 말하고 넘어가는 것은 팀에게, 본인에게, 회사에게 모두 해가 된다. 아니오라고 말하자. 

- 할 수 없는 것을 명확히 얘기하지 않고, 예라고 말했을 경우에 발생하는 비용은 어마어마할 수 있다.

- "노력하겠다"라는 말은 좋지 않다.

- 약속을 한 것은 지키자.(보통은 그래서 약속을 하지 않고 얼버무리는 경우가 많은 듯하다.)

- 모든 것에 "예"라고 대답할 필요는 없지만, "예"라고 대답할 방법을 찾는 것을 고민해야 한다.


4장 코딩


- 다른 사람을 돕는 것, 도움 받는 것을 주저하지 마라.

- 디버깅 시간을 가능한 한 줄이는 것이 프로의 의무이다.(원칙적으로 프로그램에 오류는 없어야하므로..)

- 초과 근무에 대해서 잘 생각해라

- 하지 않은 것을 완료했다고 하지 말아라.


5장 TDD


 - 테스트 주도 개발로 프로그램을 짜라.


9장 시간 관리


 - 스스로 본인의 기력과 집중력을 관리하라

 - 참석 요청을 받은 회의에 반드시 참석할 필요는 없다

 


댓글