클린 코더 & 클린 코드

클린코더... 5개월 전쯤에 아는 개발자 형님따라 교보문고 갔다가 얼떨결에 선물 받은 책이다.

그 전까지는 항상 서점에 목좋은 곳에 비치되어 있어서 유명한 건 알았지만, 목차가 지루해 보여서 포기하기 일쑤였다.

그런데 그 형님이 추천하면서 또 사준다고 하니 이게 웬 떡! 덥석 물었다.

혼란스러운 제목

밥 아저씨의 저서로 클린 코드와 클린 코더가 있다.

적어도 내가 아는 개발자들은 이런 제목에 혼란스러워했다.

심지어 나는 개정판이 나오면서 제목 실수 한 줄 알았다.
사실 표지 디자인도 너무 달라서 저자도 다른 사람인 줄 알았을 정도이다. 마치 농심 육개장과 삼양 육개장을 보는듯한...
(지금 글을 작성하면서 발견했는데 두 책이 출판사가 다르다)

클린 코더는 프로그래밍 코드보다는 시니어 개발자로써의 혹은 시니어 개발자가 되기위한 행동을 기술한다.

반면 클린 코드의 경우 좀 더 직접적으로 코드에 대한 가이드가 나온다.

위와 같은 차이 때문에 클린 코더가 좀더 읽기는 재미있다.
밥 아저씨의 실제 경험에 기반을 둔 스토리 텔링이기 때문일까? 그렇다고 클린 코드가 딱딱하고 재미없다는 이야기가 아니다.

클린 코더를 감명깊게 본 나머지 결국 클린 코드까지 보게 된다.

밥 아저씨?

밥 아저씨라 함은 일반인에게는 화가 밥 로스가 더 친숙할 것이다.

하지만 여기서는 로버트 마틴을 가르킨다. 혹자들은 로버트 마틴옹이라고도 한다 :)

로버트 마틴은 1970년부터 이 업계에 종사해온 베테랑이다.

이후 오브젝트 멘토사를 창립하며 풍부한 경험을 바탕으로 컨설팅을 하게 된다.

클린 코더가 다루는 내용

■ 진정한 소프트웨어 장인으로 행동(behave)하는 일이 가지는 의미
■ 충돌, 빡빡한 일정, 비이성적인 관리자를 다루는 방법
■ 코딩에 몰입하고, 막혔을 때 빠져나오는 방법
■ 끊임없는 압박을 다루고 녹초가 되는 상황을 피하는 방법
■ 새로운 개발 패러다임에서도 기존 태도를 지켜내는 방법
■ 시간을 관리하고 막다른 길이나 늪, 진창, 수렁을 피하는 방법
■ 프로그래머와 팀이 번창하는 환경을 조성하는 방법
■ '아니요'라고 말하는 때와 말하는 방법
■ '네'라고 말하는 때와 '네'의 진정한 의미

클린 코드가 다루는 내용

■ 1장 깨끗한 코드
■ 2장 의미 있는 이름
■ 3장 함수
■ 4장 주석
■ 5장 형식 맞추기
■ 6장 객체와 자료 구조
■ 7장 오류 처리
■ 8장 경계
■ 9장 단위 테스트
■ 10장 클래스
■ 11장 시스템
■ 12장 창발성
■ 13장 동시성
■ 14장 점진적인 개선
■ 15장 JUnit 들여다보기
■ 16장 SerialDate 리팩터링

마치며

클린 코더의 경우 스토리텔링이 더 많기 때문에 재밌게 읽을 수 있다.
개발자로써의 행동과 태도에 촛점이 맞춰져 있다.

반면 클린 코드의 경우 좀더 코드에 관련된 내용으로 구성되어 있으며, 내가 지금까지 작성한 코드나 습관들이 오버랩되면서 반성의 시간을 가질 수 있다. 

개발의 장인이 되고 싶어 하는 개발자라면 꼭 한번 보기를 권장한다.