본문 바로가기

책 리뷰

[책 리뷰] 클린코더

반응형

클린코더 책

코딩의 아샬 채널에서 책 소개 해주는 것을 보고 이 책을 보게 되었다.

이 책은 좋은 개발자가 되려면 어떻게 해야하는지에 대해서 본인의 경험했던 사례들을 들려주면서 말해준다.

내가 이 책이 매우 좋았던 이유는 회사에서의 개발자 생활을 하면서 고민되었던 것이나 느꼈던 것들이 이 책에 그대로 적혀있었기 때문이다.

이 책에서는 저자의 사례가 매우 많이 등장하고, 그에 따라서 조언을 해주는 식으로 되어있다. "프로그래머의 길, 멘토에게 묻다" 의 책 처럼 일종의 패턴들을 모아두었다고 봐도 좋을 것 같다.

내가 이 책을 읽으면서 좋은 구절을 몇 문장 인용해 보자면 아래와 같다.

 

1. 소프트웨어를 출시할 떄는 QA가 문제를 찾지 못할 것이라고 어느 정도 자신할 수 있어야 한다. 코드에 결함이 있는 걸 알면서도 QA에게 코드를 보내는 일은 매우 프로답지 못한 행동이다.
2. 내일까지 완성하는 일이 불가능하다는 사실을 충분히 알고 있다면, 좋아요 한번 해볼게요라고 말하는 것은 맡은 업무를 처리하는 것이 아니다 일을 제대로 처리하는 유일한 방법은 아니요 불가능합니다 라고 말하는 것이다. 
3. 이 시점에서 피터는 원칙을 깨고 싶다는 유혹을 받는다. 테스트를 작성하지 않으면 빨리 끝날지 모르다, 리팩토링을 하지 않으면, 빨리 끝날찌 모르다.. 중략 .. 여기가 바로 프로가 선을 그어야 할 자리다
4. 당시에는 오랜 시간 일한 자신이 대견했다. 헌신한다는 느낌이었다.새벽3시까지 일하는 것을 진지한 프로의 모습이라 생각했다. 얼마나 어처구니 없는 생각인가! 그때 만든 코드는 두고두고 골칫거리가 됐다
5. 풀고 있는 문제를 다 풀기 전에는 집에 못 간다고? 아니다. 가도 된다. 창의성과 총명함은 지속되지 않고 스쳐 지나가는 정신의 상태다. 피곤하면 창의성과 총명함이 사라진다
6. 모든 프로는 어떤 식으로든 연습을 한다. 연습을 하는 이유는 가능한 한 최고의 기량으로 업무를 수행해야 한다는 사실에 신경을 쓰기 때문이다
7. 프로 개발자는 요구사항을 정의할 때 자동화된 인수 테스트를 적극 사용한다.
8. 사업 분석가들은 전형적으로 테스트의 행복한 경로 버전을 작성한다. QA는 좋지 않은 경로 테스트, 경계조건, 예외사항, 그리고 구석 사례들을 작성한다
9. 프로는 당장의 이익이나 큰 이득이 없는 회의에는 적극적으로 참석을 거부한다.
10. 프로는 달성할 수 있다는 사실을 알지 못하면 약속하지 않는다 가능한지 확신이 없는데 약속해 달라고 부탁을 받으면 명예를 걸고 거절해야 한다

 

이중에서 내가 가장 와닿았던 문장은 1, 2, 4, 6 번이다

1번은 업계 전반적으로도 잘못 생각되어지고 활용되고 있는 상황에서 나도 QA 의 역할이 오류를 잡아내는 것으로 착각하고 있었다. QA 역할은 경계조건들에 대한 체크, unhappy path에 대한 테스트라고 책에서는 나온다. 이 부분을 읽은 후, 개발자는 어떤 오류도 QA 단계에서 발견되지 않도록 해야 한다 라고 생각하고 모든 개발을 진행 중이다.

2번과 4번은 업무 시간 관리와 관련된 일이다. 내가 회사와서 가장 어려웠던 것은 '추정' 하는 것이였다. 이 책을 읽기 전, 완전 신입 시절에 이미 여러번 잘못된 추정으로 인해서 급하게 개발을 해야만 했던 적이 몇번 있었고, 어쩔 수 없이 다 될 때 까지 야근하는 일이 자주 발생하였다. 이 책을 읽은 이후에는 내가 하는 말에 대해서 책임을 지기 위해서 대략의 추정도 할 수 없을 때는 절대로 한번 해보겠다 라는 식의 답변을 하지 않았다.

4번의 경우에는 내가 처음 지금 다니는 회사의 인턴으로 왔을 때, 부터 다른 개발자 분들에게 들었던 말이다. 퇴근시간이 되면 집에 바로 가야한다 라고 말씀해주셨는데, 이전 직장에서 인턴을 할 때도 야근을 강요 받았던 나로썬 굉장히 충격이였다. 난 항상 부족하다고 느끼는데 야근을 하지 않으면 불안하기도 하고 기분도 이상하였다. 하지만, 실제로 어쩔 수 없는 야근으로 인해서 멘탈과 체력이 털릴 만큼 털린 이후에는 야근을 절대로 하지 않는 방향으로 확실하게 정하게 되었다.

마지막으로 6번은 책에서도 나오지만, 개발자에게 자기계발은 숙명적인 것이라고 생각한다. 기술의 트렌드는 계속 변해가고, 신기술들은 계속해서 나오는데 이것들을 다 따라가려면 정말 긴장 상태에서 개발공부를 열심히 해야한다. 새로운 것 뿐만 아니다. 기존에 이미 나온 기술들에 대해서도 까먹지 않아야 하고, 능숙하게 잘 활용할 수 있어야 한다. 이처럼 개발자는 늘 공부하고, 발전해야만 하기 때문에 6번의 내용은 개발자 에게는 어찌보면 매우 당연한 말이고, 나는 대학교 졸업 이후에, 하루도 빠짐없이 수행하고 있다. 물론 내 기대만큼의 역량적 향상은 없었지만..

아무튼 간에 많은 개발자 들이 실용주의 프로그래머를 추천 하는데, 나는 이 책이 정말로 개발자들의 필독서이고, 최소 분기에 한번씩 이 책을 다시 보면서 내가 잘하고 있는지? 한번 회고 해 볼 필요성이 있다고 생각한다.(실용주의 프로그래머 보다 덜 추상적으로 적혀 있어서, 글 읽기에도 편하고, 사례들이 딱딱 와닿는다)

막 개발자가 된 신입 개발자 부터, 시니어 개발자 까지 모두 도움이 될 수 있는 책이라고 생각한다

반응형

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

[책 리뷰] 혼자 하는 공부의 정석  (0) 2021.01.03
[책 리뷰] 1등의 습관  (0) 2020.12.29
[책 리뷰] 탤런트 코드  (0) 2020.12.19