Top

클린 코더 [단순 기술자에서 진정한 소프트웨어 장인이 되기까지]

  • 원서명The Clean Coder: A Code of Conduct for Professional Programmers (ISBN 9780137081073)
  • 지은이로버트 마틴(Robert C. Martin)
  • 옮긴이정희종
  • ISBN : 9788960778818
  • 25,000원
  • 2016년 07월 20일 펴냄
  • 페이퍼백 | 276쪽 | 188*235mm
  • 시리즈 : acornLoft

책 소개

요약

세계적으로 유명한 프로그래머 '밥 아저씨' 로버트 마틴이 쓴 책으로, 프로 개발자가 되는 길을 알려준다. 수십 년의 경험을 바탕으로 장인 정신, 실천 기법, 도구뿐만 아니라 프로가 가져야 할 마음가짐과 태도를 알려준다. 빡빡한 일정으로 인한 압박을 견디고 비이성적인 사람들과 대화하고 진창에 빠져 오도가도 못하는 상황을 피하는 법 등 다양한 지혜가 책에 담겨 있다. 위대한 소프트웨어를 만드는 장인 정신을 보여주고 프로만이 가지는 자부심과 충만감을 얻게 해 준다.

이 책에 쏟아진 찬사

“’밥 아저씨’ 마틴은 최신 저서로 업계 기준을 확연히 높였다. 밥은 관리자와 상호작용하는 프로 프로그래머, 시간 관리, 압박, 같이 일하기, 사용할 도구 선택에 대한 자신의 기대치를 풀어놓았다. 마틴은 테스트 주도 개발(TDD)과 ATDD(Advanced TDD)를 넘어 자신을 프로라 생각하는 모든 프로그래머가 알아야 하고, 젊은 프로그래머가 자라나려면 따라야 하는 규칙까지 설명했다.”
- 마커스 가트너(Markus Gärtner),
아이티애자일(it-agile GmbH)의 선임 소프트웨어 개발자(www.it-agile.de/www.shino.de)

“몇몇 기술 서적은 영감과 가르침을 준다. 다른 몇몇은 기쁨과 즐거움을 준다. 드물게 4가지를 다 주는 기술 서적도 있다. 로버트 마틴의 책은 항상 나를 만족시켰고, 이 책도 예외는 아니다. 이 책에 나온 교훈을 읽고, 배우고, 그대로 살다 보면 진짜로 자신을 소프트웨어 프로라 부를 수 있다.”
- 조지 불록(George Bullock),
마이크로소프트의 선임 프로그램 관리자

“만일 컴퓨터 과학 학위에 ‘졸업 후 필독서’가 있다면, 바로 이 책일 것이다. 현실에서는 학기가 끝나도 당신의 나쁜 코드는 사라지지 않는다. 마감 하루 전 마라톤 코딩으로는 A학점 못 받는다. 그리고 가장 나쁜 건, 사람을 상대해야 한다. 그래서 코딩의 달인들이 반드시 프로인 것은 아니다. 이 책은 프로를 향한 여정을 서술한다. 그리고 서술 과정에서 놀랍도록 즐거움을 준다.”
- 일리노이 대학교 어바나-샴페인캠퍼스의 제프 오버베이(Jeff Overbey)

“이 책은 규칙이나 가이드라인 모음집이 아니라 훨씬 더 많은 내용을 담았다. 숙달된 장인의 견습 도제로 일하면서 몇 년에 걸친 시행착오를 통해 힘겹게 얻는 지혜와 지식이 담겨있다. 만일 스스로를 소프트웨어 프로라 부른다면 이 책이 필요하다.”
- 보게티(R. L. Bogetti),
백스터 헬스케어(Baxter Healthcare )의 책임 시스템 설계자(www.RLBogetti.com)

이 책에서 다루는 내용

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

저자/역자 소개

지은이의 말

이 책은 프로 소프트웨어 개발자의 마음가짐, 즉 소프트웨어 프로페셔널리즘에 관한 책이다. 이 책에는 아래 질문에 대한 여러 가지 실용적인 충고가 담겨 있다.

■ 소프트웨어 프로란 무엇인가?
■ 프로는 어떻게 행동해야 하는가?
■ 프로는 어떻게 사람들 사이의 대립, 빡빡한 일정, 불합리한 관리자를 감당해 내는가?
■ 프로는 언제, 어떻게 ‘아니요’라고 말해야 하는가?
■ 프로는 어떻게 주위의 압박을 처리하는가?

이 책에 나오는 충고를 따르다 보면 힘든 상황도 돌파할 수 있는 마음가짐을 배우게 된다. 정직, 명예, 자기존중, 긍지가 바로 그 마음가짐이다. 이는 기술 장인이 되겠다는 막중한 책임을 기꺼이 짊어지겠다는 의지다. 그 책임은 일을 훌륭히 그리고 깔끔히 완수해야 한다는 책임이다. 원활히 의사소통하고 추정을 할 때 신뢰감을 줘야 한다는 책임이다. 시간을 잘 관리하고 위험보상(risk-reward)에 대한 힘든 결정을 감내하겠다는 책임이다.
하지만 책임지는 일은 무서운 일이다. 기술자라면 시스템과 프로젝트에 대해 관리자는 알기 힘든 깊은 지식을 알아야 한다. 그 지식을 가지고 행동으로 옮겨야 할 책임이 있다.

지은이 소개

로버트 마틴(Robert C. Martin)

1970년에 프로그래머 경력을 시작했으며, 주식회사 오브젝트 멘토의 창립자이자 대표다. 오브젝트 멘토는 숙련되고 경험이 충분한 소프트웨어 개발자와 관리자들이 다른 회사를 도와 프로젝트를 완수하도록 도와주는 일이 전문이다. 프로세스 개선 자문, 객체지향 소프트웨어 설계 자문, 훈련, 기술개발 서비스를 전 세계에 걸쳐 주요 회사에 제공하고 있다.
다양한 잡지에 많은 글을 올렸으며 국제 컨퍼런스와 전시회에서 정기적으로 연설하고 있다.
또한 다음 책들을 쓰고 편집했다.

■ 『Designing Object Oriented C++ Applications Using the Booch Method』
■ 『Patterns Languages of Program Design 3』
■ 『More C++ Gems』
■ 『Extreme Programming in Practice』
■ 『소프트웨어개발의 지혜 – 원칙, 디자인패턴, 실천방법』(야스미디어)
■ 『UML, 실전에서는 이것만 쓴다 - aJva 프로그래머를 위한』(인사이트)
■ 『Clean Code 클린 코드 - 애자일 소프트웨어 장인 정신』(인사이트)

소프트웨어 산업의 지도자로서 C++ 리포트의 편집장, 애자일 연합의 의장을 맡아 업계에 기여했다.
또한 엉클 밥 컨설팅(Uncle Bob Consulting)의 창립자며, 아들 미카 마틴과 함께 클린 코더스(Clean Coders)를 세웠다.

옮긴이의 말

이 책을 번역하면서 가장 마음에 와 닿았던 부분은 10장, ‘추정’에서 밥 아저씨가 울었다는 고백입니다. 당시 26살이었던 밥 아저씨는 한 달로 추정한 기한을 못 지키고 무려 세 달이 지나서야 업무를 완료하게 됐고, 크게 상심한 밥 아저씨는 술에 취해 직장 상사를 붙잡고 울게 됩니다. 이 이야기가 가장 기억에 남는 이유는 저도 추정에 실패하고 일정을 못 지키는 일이 많았기 때문입니다. 10년 넘게 개발자로 일하면서 제일 힘들었던 부분이 추정이었습니다. 밥 아저씨조차 이런 경험을 했다니 조금이나마 위로가 되더군요. 저는 눈물을 흘리는 대신 머리카락이 빠졌습니다.
또한 “이건 정말 못 하겠는데...”라는 생각이 든 부분도 있었습니다. 2장, ‘아니라고 말하기’에 나온 마이크와 폴라의 대화가 그 부분입니다. 억지를 부리며 일정을 줄여보라는 마이크에게 끝까지 안 된다고 말하는 폴라가 인상적이었습니다.
이 책을 봤으니 여러 고민이 사라졌냐면 그건 아닙니다. 이 책은 은총알이 아닙니다. 경험이 녹아 있는 유용한 방법을 알려주지만 개개인의 부단한 노력과 연습이 필요하겠지요. 수많은 시행착오를 거치며 수련을 해야 합니다. 행복한 프로 개발자가 많아졌으면 좋겠습니다.

옮긴이 소개

정희종

행복하고 싶은 개발자다. win32 프로그래밍으로 입문해 .net을 거쳐 자바로 넘어왔다. 현재는 스프링(spring) 프레임워크를 주로 사용한다.

목차

목차
  • 미리 읽어두기

  • 1장. 프로의 마음가짐
    • 함부로 바라지 마라
    • 책임감을 가져라
    • 무엇보다도 해를 끼치지 마라
    • 직업 윤리
    • 참고문헌

  • 2장. 아니라고 말하기
    • 반대하는 역할
    • 손익관계가 높을 때
    • 팀 플레이어
    • 예라고 말하는 비용
    • 훌륭한 코드는 불가능한가?
    • 코드 코드 임파서블

  • 3장. 예라고 말하기
    • 약속을 뜻하는 말
    • 예라고 말하는 법 익히기
    • 결론

  • 4장. 코딩
    • 준비된 자세
    • 몰입 영역
    • 진퇴양난에 빠진 글쟁이
    • 디버깅
    • 속도 조절
    • 일정을 못 지키다
    • 도움
    • 참고문헌

  • 5장. 테스트 주도 개발
    • 배심원 등장
    • TDD의 세 가지 법칙
    • TDD와 관련 없는 사실
    • 참고문헌

  • 6장. 연습
    • 연습의 배경지식
    • 코딩 도장
    • 경험의 폭 넓히기
    • 결론
    • 참고문헌

  • 7장. 인수 테스트
    • 요구사항 관련 의사소통
    • 인수 테스트
    • 결론

  • 8장. 테스트 전략
    • QA는 오류를 찾지 못해야 한다
    • 테스트 자동화 피라미드
    • 결론
    • 참고문헌

  • 9장. 시간 관리
    • 회의
    • 집중력 마나
    • 타임박스와 토마토
    • 피하기
    • 막다른 골목
    • 진흙탕, 늪, 수렁, 기타 엉망진창
    • 결론

  • 10장. 추정
    • 추정이란 무엇인가?
    • PERT
    • 업무 추정하기
    • 큰 수의 법칙
    • 결론
    • 참고문헌

  • 11장. 압박
    • 압박 피하기
    • 압박 다루기
    • 결론

  • 12장. 함께 일하기
    • 프로그래머 vs 보통 사람들
    • 소뇌
    • 결론

  • 13장. 팀과 프로젝트
    • 갈아서 만들었나요?
    • 결론
    • 참고문헌

  • 14장. 스승과 제자 그리고 장인 정신
    • 실패의 정도
    • 스승과 제자
    • 수습기간
    • 장인 정신
    • 결론

  • 부록. 도구 활용
    • 도구
    • 소스 코드 제어
    • IDE/편집기
    • 이슈 추적
    • 지속적인 구축
    • 단위 테스트 도구
    • 구성요소 테스트 도구
    • 통합 테스트 도구
    • UML/MDA
    • 결론

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

2016. 8. 5 기준 수정사항

수정 사항은 여기에서 내려받으세요.

2016. 12. 9 수정사항

[p. 215: 9행]
압력솥 안에 있는 것 상황을 빠져나가는 유일한 길은 좋은 방법임을 이미 아는 자신의 규율에 기대는 것이다.
->
압력솥을 빠져나가는 유일한 길은 이미 좋은 방법임을 아는 자신의 규율에 기대는 것이다.