이미지 확대/축소가 가능합니다.

닫기


실무 프로그래머로서 잠재력이 획기적으로 향상되는 방법
현실적으로 할 수 있는 행동과 코드 예제 소개


흔히 우리는 이메일과 전화를 하면서 코딩하는 사람이 일을 잘한다고 여겨지기도 합니다. 하지만 성과를 내는 사람은 여러 가지 일을 한 번에 하는 것이 아닌 해야 할 일을 정하고 파고들어야 이뤄낼 수 있다고 말한다. 이 책은 여러분이 실무 프로그래머로서 아홉 가지 원칙들을 적용하여 잠재력을 획기적으로 향상되는 방법을 보여준다. 이 원칙들을 관통하는 한 가지 요점은 모든 일을 단순하게 만들고 집중을 하는 것에 초점이 맞춰져 있다.

불필요한 코드를 빼고 최소한의 기능들을 빠르게 만들어서 사용자들에게 빠르게 피드백을 받는다면 어떤 기능이 필요하고 어떤 기능이 불필요한지 알 수 있다. 이런 과정 자체를 빠르게 이뤄질 수 있으므로 그만큼 사용자의 확보와 출시 일시를 빠르게 정할 수 있다. 반대로 혼자 프로그래밍하게 되면 어떤 기능이 들어갈지 사용자들은 알지 못하게 된다. 그렇다고 시간이 걸려서 나온 프로그램이 사용자들의 요구를 충족한다는 보장도 없다. 저자의 경험도 그렇다. 필요할 것 같은 기능들을 추가해서 제품을 만들었지만 자신의 생각과는 다르게 기능들을 활용하지 않는 모습을 보였다. 그러므로 강력하게 단순하게 하고 한 개의 일을 하는데 집중하자고 전하고 있다.



추천의 글
감사의 말
역자의 말
들어가며

1장 복잡성은 어떻게 생산성을 해치는가

_복잡성은 무엇인가?
_프로젝트 생명주기의 복잡성
_소프트웨어와 알고리즘 이론의 복잡성
_학습의 복잡성
_일상 속에 복잡성 혹은 서서히 죽어가는 복잡성
_결론

2장 80:20 원칙

_80:20 원칙 기본
_응용 프로그램 소프트웨어 최적화
_생산성
_성공 지표
_집중과 파레토 분포
_프로그래머를 위한 시사점
_파레토는 프랙탈이다
_80:20 실천 팁
_참고 문헌

3장 최소 기능 제품 만들기

_문제 시나리오
_최소 기능 제품 만들기
_결론

4장 클린하고 단순한 코드 작성하기

_왜 클린 코드를 작성하는가?
_클린 코드 작성하기: 원칙들
_결론

5장 성급한 최적화는 모든 악의 근원

_성급한 최적화의 유형들
_성급한 최적화 이야기
_성능 튜닝을 위한 6가지 팁
_결론

6장 몰입

_몰입은 무엇인가?
_몰입에 이르는 법
_프로그래머를 위한 몰입 팁
_결론
_참고 문헌

7장 한 개의 일을 잘하기와 다른 유닉스 원칙들

_유닉스의 부상
_철학의 개요
_15개의 유용한 유닉스 원칙들
_결론
_참고 문헌

8장 디자인은 적은 것이 더 많다

_휴대폰 진화에서의 최소주의
_검색의 최소주의
_머터리얼 디자인
_머터리얼 디자인 구현하기
_결론
_참고 문헌

9장 집중

_복잡성에 대한 무기
_원칙들을 통합하기
_결론

저자의 편지
인덱스



상세 이미지 1



[대상 독자층]

- 코딩을 해봤지만 클린 코딩 방법에 대해 잘모르는 프로그래머
- 빠른 코딩과 적은 고통으로 더 많은 가치를 만들고 싶은 프로그래머
- 처음부터 클린 코드를 배우고 적용해보고 싶은 분

이 책은 처음부터 끝까지 같은 이야기를 하고 있습니다. 더 많은 결과에 집중하는 것이 아닌 복잡성을 줄이고 클린한 코드를 작성하여 한 개의 일을 집중적으로 잘하고 사용자의 피드백에 맞춰 빠르게 제품을 완성시켜야 한다고 말합니다.

1장에서 처음 나오는 개념이 복잡성입니다. 복잡성에 대해 빠르게 통제하지 못한다면 여러분의 소중한 시간이 의미 없이 흐르게 되고 소비됩니다. 프로그래밍 언어와 편집 도구는 날이 가면 갈수록 가지 수는 많아지고 복잡해져 갑니다. 이것저것 프로그래밍 언어를 바꾼다거나 편집 도구를 바꿔가며 쓰는 데 시간을 낭비하지 말고 하나의 프로그래밍 언어, 편집 도구에 깊게 몰입하라고 합니다. 한국에서는 어떤 프로그래밍이 유행을 하느냐에 따라 많이 흔들리는 모습을 보게 됩니다. 유행에 따라 프로그래밍을 하는 것이 아닌 하나의 언어를 선택하고 깊게 배울 수 있도록 자신에게 물어보는 체크리스트를 제안합니다. 매일 스스로 확인해보면서 프로그래밍을 한다면 계속 성장할 수 있는 프로그래머가 될 수 있을 것입니다. 또한, 프로그래머로서 생소한 80:20 원칙을 어떻게 적용해야 하는지 그리고 최소 기능 제품을 어떻게 만들고 빠르게 피드백을 받아 어디에 집중해야 할지 배울 수 있습니다.

클린 코드는 읽고 이해하고 고치기 쉬운 코드입니다. 가독성을 해치지 않기 때문에 생산성을 높여주고 복잡성의 문제를 해결하는 클린 코드 작성 원칙을 배우고 집중하게 되면 몰입의 상태에서 코딩하는 즐거움을 경험할 수 있게 도와줄 것입니다. 한 개의 일을 하고 그것을 완벽하게 할 수 있게 노력해보세요. 과정들이 쉽진 않겠지만, 이 책에 서술된 원칙들을 적용하면 훌륭한 프로그래머가 되는 경로를 단축시켜줄 것입니다. 다재다능하기 전에 하나의 일을 차근차근 1단계부터 마스터 해보시기 바랍니다. 마무리 단계에서는 다시 집중의 힘을 살펴보고 모든 원칙들을 다시 말하면서 통합하는데 스스로 확인을 다시 하면서 앞으로 프로그래머로 해야 할 일을 정리할 수 있습니다.

[옮긴이의 말]

파레토 법칙(80:20 원칙). 적은 것이 더 많다. 몰입과 집중. 보통 개발 도서에서는 보기 힘든 키워드로 이 책의 주제는 클린 코드지만 개발자뿐만 아니라 일반 직장인에게도 도움이 되는 내용들로 가득합니다. 저는 LG 전자의 휴대폰 사업 철수로 인해 10년 넘게 근무한 MC 사업본부를 떠나 현재는 webOS 개발실에서 C++ 및 파이썬 개발자로 일하고 있습니다. 개발 언어는 자바에서 C++과 파이썬으로 바뀌고, 개발 환경은 안드로이드에서 오픈 소스 Chromium으로 많은 것이 달라졌습니다.

이 책은 사소한 다수(trivial many)는 버리고 핵심 소수(vital few)에 역량을 집중하라고 주문합니다. 그렇게 불필요한 것을 제거하고 핵심적인 것만 남기면 자연스럽게 클린 코드가 되고 MVP(최소 기능 제품)가 되고 최소주의적(minimalistic) UX가 됩니다. 기존의 〈클린 코드〉가 코드의 군살을 덜어내는 방법을 알려주었다면 이 책은 코드뿐만 아니라 그 이면에 있는 생각의 군살을 덜어내고 더 중요한 것에 과감하게 집중할 수 있게 해 줍니다. 현직 개발자인 저에게도 큰 도움이 되었습니다.