토요일, 7월 27, 2013

[독서광] The Clean Coder

3년 전에 클린 코드: 애자일 소프트웨어 장인 정신이라는 아주 놀라운 책을 번역해서 선을 보였으나... 흥행에 참패한 기억이 아직도 새롭다. 오늘은 클린 코드 저자인 로버트 C. 마틴 큰 형님께서 자신을 재물로 삼아 후배들에게 큰 가르침을 주려 집필한 'The Clean Coder'를 소개해 올리겠다. 현재 한국어 판이 번역 중이라는 소식이 있는데, 더 이상 기다리지 못하고 그냥 영어로 읽어버렸다.

책 제목만 놓고 보면 클린 코드의 후속작처럼 보이는 이 책은 깨끗한 코드를 작성하는 _사람_에 초점을 맞춘다. 솔직히 클린 코드를 읽으며 "뭐 이렇게 독단적이고 자기 중심적인 똥고집이 있나!"라고 버럭했을 독자분들도 있을텐데, 여기에 대한 이유가 바로 'The Clean Coder'에 잘 설명되어 있다. 클린 코드를 집필한 다음 제작 과정과 배경 사상을 설명하는 감독판 보충 책으로 보면 틀림없다. '클린 코드'와는 달리 코드가 전혀 나오지 않기에 프로그래밍 관련 서적으로 착각하고 구입하면 바로 멘붕이 온다는 사실도 미리 알면 좋겠다.

아주 특이하게, 이 책은 목차에 'Pre-Requisite Introduction'라는 제목이 붙은 장이 존재한다. 로버트 C. 마틴 큰 형님이 지금까지 산전수전 공중전에 잠수함전까지 겪은 과정에서 망가진 경험을 초반부터 그야말로 격하게 풀어쓰기 때문에 마음이 여리신 분이라면 읽다가 덮어버릴지도 모르겠다. 하지만 이 부분은 뒤에 나오는 내용의 맥락을 제공하기 때문에 절대로 건너뛰어서는 안 된다. 일단 이렇게 철저하게 망가진 다음에 여기서 얻은 교훈을 소프트웨어 프로페셔널 관점에서 하나씩 풀어쓴 내용이 바로 본문이 된다. 서문에도 나오지만 이 책은 크게 다음과 같은 내용을 다루고 있다.

  • 소프트웨어 프로페셔널이란?
  • 프로페셔널은 어떻게 행동해야 할까?
  • 프로페셔널은 충돌, 빠듯한 일정, 비이성적인 관리자를 어떻게 다룰까?
  • 언제, 어떻게 프로페셔널은 '아니오'라고 단호하게 거절해야 하나?
  • 프로페셔널은 압력을 어떻게 다룰까?

그렇다. 이 책은 그냥 단순 샐러리맨이 아니라 자기 소신이 뚜렸하고 전문 지식을 갖춘 프로페셔널 소프트웨어 개발자의 행동강령을 정의한 책이다. 상사의 압력이나 주변의 동료 압력에 굴하지 않고 '아니오'라고 말할 때와 '예'라고 말할 때를 구분하고, 깔끔한 솜씨로 설계하고 코드를 작성하고, 업무가 아닌 자기 계발 관점에서 별도 시간을 확보해 기량을 갈고 닦고, 확실한 일 마무리 시점을 정하기 위한 수락 테스트를 진행하고, 습관처럼 테스트 주도 개발을 진행하고, 시간을 잘 관리하고, 예측을 확률로 다루고, 압력을 이겨내며, 동료 사이에 짝 프로그래밍 등 협업을 장려하면서도 자기 맡은 몫은 멋지게 해내는 '프로페셔널' 개발자가 될 수 있도록 마틴 횽아는 실용적인 조언을 아끼지 않는다.

안타깝게도 한국에서는 이 책이 흥행하기 어려워 보인다. 아파야 청춘이 된다는 둥 개인의 희생을 미화하고 약을 파는 힐링 서적이 판치는 상황에서 상사에게 감히 '아니오'라는 말을 누가 함부로 할 수 있을까? 특히 개발자의 프로페서녈한 특성을 인정해주지 않는 사회에서 이 책은 금서(자세한 이유는 직접 읽어보면 알게 된다)가 될 가능성이 아주 높다는 생각에 고개를 들어 하늘을 보니 먹구름이 가득하다. T_T 그럼에도 불구하고, 프로페셔널을 향한 집념으로 불타오르는 개발자라면 이 책에서 다양한 교훈을 얻을 것이다. 특히 개발자로서 어떻게 올바르게 살지 고민하는 분들께 강력 추천한다.

뱀다리: 본문 중 마틴 횽아가 기운이 빠지고 힘이 없을 때 짝 프로그래밍을 하면 힘이 샘솟는다는 재미있는 이야기가 나온다. 심지어 협업 장에서는 "Programming is all about working with people."이라는 결론을 내리기까지 한다. 이성 친구가 없어 혼자 '퍼시픽 림'을 본 개발자들이라도 컴퓨터 세상에서는 동료 프로그래머와 드리프트 신공을 펼쳐 짝 프로그래밍으로 4등급 하이젠버그를 때려 잡을 수 있으니(응?) 모두 기운냅시다! (T_T)

따끈한 새소식: 기존 출판사에서 절판 예정인 '클린 코드'를 인사이트 출판사에서 복간하기로 결정이 났다. 'The Clean Coder'를 읽고 나서 어떻게(how)가 궁금한 분들께서 편한 마음으로 읽어보실 수 있게, 현재 전반적인 검토 작업을 진행하는 중이다. 많은 성원 부탁드리겠다!

EOB

댓글 7개:

  1. 평소 여기 블로그에 올라오는 서평을 자주 찾아보다 오늘 클린코드 복간이라는 희소식을 접하는군요. :)
    그래서 감히 여쭙니다. 혹시 전자책으로도 나오는건지...하구요..

    답글삭제
  2. // 익명 님

    전자책 관련해서는 출판사 담당자분과 한번 논의를 해보겠습니다. ;)

    박재호 올림

    답글삭제
  3. 어쩌다보니 클린코드 스터디를 두 개의 회사에서 두 번이나 했는데... 저에게는 개발자에게 추천책 1순위의 책인데, 흥행에 참패했나요? -_-;;; 어찌됐건 좋은 책 번역해 주셔서 감사합니다. ^^;;;

    답글삭제
  4. 용운님, 찻잔 속 태풍이었습니다. T_T

    그래도 격려해주시는 독자님들 덕분에 복간이 가능해졌기에 다시 한번 감사드립니다. :)

    - 박재호 올림

    답글삭제
  5. 클린코드는 얼마전에 절판된다고 해서 교보문고 오프라인 재고 확인해서 서둘러서 샀는데...좀 기다릴 걸 그랬나보네요...
    이전에 야스미디어에서 나온 소프트웨어 개발의 지혜인가 하는 책을 나중에 사지 하다가 결국 사지 못한 적이 있어서...^^;
    소프트웨어 개발의 지혜야 말로 복간되면 냉큼 서점에 달려가서 사고 싶은 책인데...그러고보니 프로그래밍 수련법도 도서관에서 읽어보고 구매를 결정하려고 했는데 어째 대출하려고 할 때마다 대출중이군요.;;

    비슷한 내용의 책인 읽기 좋은 코드가 좋은 코드다 라는 책이 더 얇은 책이고 내용도 쉽게 읽혀져서 현재 10독(자바의 정석 남궁성님이 말씀하신 그 10번 읽기)을 위해서 노력하는 중입니다. 현재 3번 읽었네요...그런데도 내용을 모두 기억 못해서 간혹 일하다가도 다시 펼쳐보고 있습니다.

    여튼 복간되면 서점 가서 다시 한번 봐야겠네요.
    그런데 복간되면서 바뀐 부분이 없다면 도서관에 신청은 해도 구매는 안 할 듯 합니다. 저희 집에서 돈 버는 사람에겐 돈이 없습니다...쓰는 분께 있죠. ㅜ.ㅜ

    기초체력이라는 말은 알고리즘이나 자료구조에 더 맞는 것 같고...뭐라고 해야할까요...습관? 기본? 기본형? 기본동작? 그런 쪽에 관한 절판된 책들을 인사이트에서 복간해주시니 감사합니다.
    솔직히 이거저거 다 치우고 읽어서 동작이 읽히는 코드가 처음이자 끝이라고 생각합니다.
    대학이나 교육기관에서 기본에 관한 책들을 수업교재로 해야 한다고 생각합니다.
    클린 코드 같은 책이 많이 팔려야 일하기 편해질 텐데...안타깝네요.
    그러고보니 자바를 기준으로 나온 클린코드 말고 C# 을 기준으로 나온 클린코드도 있던데...번역 계획은 없으신가요? ^^;

    클린 코더 책 나오면 저는 마누라님 치맛자락 붙잡고 매달려서라도 구매하겠습니다. 힘내세요.

    답글삭제
    답글
    1. 저랑 같네요. 저도 와이프 졸라서 절판되길래 오프라인에서 얼른 구매했는데 기다릴껄 그랬네요. ㅋ

      삭제
  6. // 류호승님

    0. 우선 성원 감사드립니다. 미리 복간 관련 정보를 드렸어야 하는데, 출판사와 계약을 맺은 시점이 얼마 되지 않아서 여유가 없었습니다.
    1. 클린 코더는 다른 분이 번역하는 것으로 알고 있습니다. ;)
    2. 'Agile Principles, Patterns, and Practices in C#'은 번역 가능성이 낮아 보이네요.

    앞으로도 성원 부탁드리겠습니다.

    - 박재호 올림

    답글삭제