프로그래머가 알아야 할 97가지

Kevlin Henney 저 / 손영수, 김수현, 최현미 역

이 땅의 모든 프로그래머에게 전하는 현장의 지혜를 담은 107가지 의미있는 이야기.

이 책은 다양한 프로그래머들의 지혜와 경험의 목소리를 담았다. 모든 프로그래머가 알아야 하는 것의 큰 그림으로서 크라우드 소싱 모자이크로 구성된 내용에서는 코드에 대한 조언에서 문화까지, 알고리즘의 사용에서 애자일적 생각까지, 구현 노하우에서 전문성까지, 그리고 스타일에서 본질까지 다룬다.


도서 상세

분야: [비즈니스 & 테크놀러지, 프로그래밍]

출간일: May 30, 2012

페이지: 270

도서정가: 20,000 원

ISBN: 9788993827439

부가 정보


출판사 서평

프로그래머는 프로그램을 창조하는 사람을 말합니다. 즉, 프로그래머의 경우 자신의 사상을 바탕으로 소프트웨어를 만드는 사람을 의미하며, 이러한 사상이 있다면 프로그래머라고 불릴 수 있습니다.

하지만 자신의 사상을 창조하기보다는 납기일과 그날의 문제를 해결하기 위해 겨우 하루를 연명하는 코더로서의 삶을 강요받는 것이 우리나라 개발자의 대부분의 현실입니다. 결국 스스로 자신의 경력을 관리해야 하며, 다양한 생각과 관점을 배울 수 있어야 합니다.

이 책은 프로그래머의 장인이라 불리는 유명한 구루가 모여, 그들만의 철학과 사상 그리고 조언을 묶어 놓은 서적입니다. 다양한 선배의 목소리를 한 곳에서 들을 수 있는 이 책과 같은 서적은 없습니다. 또한 원서에는 없는 한국 프로그래머들의 이야기를 추가해 수록했습니다. 대가 없이 후배 분들을 위해 좋은 글을 기꺼이 공유해 주신 동료 프로그래머들에게 감사합니다.

독자 여러분의 성장을 위해, 커뮤니티 모임에 나갈 것을 추천합니다. 회사에서 보지 못 하는 다양한 생각과 관점 그리고 업계의 현실을 보고 들을 수 있는 좋은 곳이기 때문입니다. ‘한국의 프로그래머’라는 추가 에피소드에 소개된 많은 분들이 대부분 커뮤니티의 리더이며, 이 분들을 통해 많은 정보가 생산되고 공유되고 있습니다.

저자 소개

Kevlin Henney : 독립 컨설턴트이자 강사. 패턴과 아키텍처, 프로그래밍 기법, 언어, 개발 프로세스와 프랙티스에 관심이 많다. The Register, Better Software, Java Report, CUJ, C Report를 포함하여 다양한 잡지와 온라인 매체의 칼럼니스트이기도 하다.


역자 소개

손영수 : 소프트웨어 공학과 아키텍팅을 국내 개발자들에게 널리 알리기 위해 노력하고 있는 EVA팀의 한 마리 기러기이다. 국내에 몇 안 되는 패턴 저자이며, 아시아 패턴 학회인 AsianPLoP의 공동 의장이다. 지식 공유를 위해 세미나, 워크숍, 기고 등 왕성한 활동을 하고 있다. 요즘 후배들을 양성하고 있으며, 더 큰 성장을 위해 수련을 하고 있다.

김수현 : 1997년부터 자바의 매력에 빠져 모든 개발을 자바로 하려고 부단히 노력하고 있는 자바사랑 개발자이다. 정적분석 기법으로 아키텍처를 분석/개선하는 업무로 아키텍트의 꿈을 키워가던 도중 오픈 소스의 유혹에 이기지 못하고 오픈소스 컴플라이언스 관련 활동을 진행하고 있다. 현재는 국내 최고의 오픈소스 라이선스 전문가가 되는 것을 최우선의 목표로 하고 있으며 궁극적으로 기업과 오픈커뮤니티 간의 에코시스템 구축을 꿈꾸고 있다.

최현미 : SW 테스트 기법, 품질평가 모델 개발 등의SW 품질 확보 영역을 시작으로 소프트웨어 공학 분야에 입문하였고, 이후 삼성전자에서 프로세스, 메트릭, 분석/설계 기법 적용(Feature Modeling, QAW, ATAM 등), Reverse Engineering을 통한 소스코드 분석 등 소프트웨어 공학의 다양한 분야에서 멀티플레이어로 활동해왔다. 현재는 이러한 다양한 경험을 바탕으로 삼성전자 산하 해외연구소의 SE조직 컨설팅 및 기술지원 역할을 담당하고 있다.


신중하게 행동하라 Seb Rose 
함수형 프로그래밍 법칙을 적용하라 Edward Garson 
당신은 사용자가 아니다 Giles Colborne 
코딩 표준을 자동화하라 Filip van Laenen 
아름다움은 단순함에 있다 Jørn Ølmheim 
리팩토링하기 전에 Rajith Attapattu 
공용화에 대해 주의하라 Udi Dahan 
보이스카웃 규칙 Robert C. Martine(Uncle Bob) 
다른 사람을 비난하기 전에 먼저 자신의 코드를 리뷰하라 Allan Kelly 
심사숙고해서 도구를 선택하라 Giovanni Asproni 
도메인 언어로 코딩하라 Dan North 
코드는 설계다 Ryan Brush 
코드 레이아웃은 중요하다 Steve Freeman 
코드 리뷰 Mattias Karlsson
이치에 맞는 코딩 Yechiel Kimchi 
주석에 관한 조언 Cal Evans
단지 코드가 말하지 않는 것을 주석으로 추가하라 Kevlin Henney 
끊임없는 배움 Clint Shank 
편리함은 명사형이 아니다 Gregor Hohpe
자주 빠르게 릴리즈하라 Steve Berczuk
상황에 맞는 예외처리가 필요하다 Dan Bergh Johnsson 
많은 의도적 수련-계획된 연습을 하라 Jon Jagger 
도메인에 특화된 언어들 Michael Hunger 
부수는 것을 두려워하지 마라 Mike Lewis
테스트 데이터를 속이지 마라 Rod Begbie
에러는 발견 즉시 고쳐라 Pete Goodliffe
언어만 배우지 말고 문화를 배워라 Anders Noras
프로그램을 너무 높은 곳에 매달아 못박지 마라 Verity Stob 
기적이 일어난다는 생각을 버려라 Alan Griffiths 
중복을 제거하라 Steve Smith 
그 코드를 건드리면 안 된다 Cal Evans 
상태뿐 아니라 행위까지도 캡슐화하라 Einar Landre 
부동소수점 수는 실수가 아니다 Chuck Allison 
오픈 소스를 통해 잠자고 있는 열망을 이뤄라 Richard Monson-Haefel 
API 설계의 황금률 Michael Feathers 
구루에 대한 근거 없는 믿음 Ryan Brush 
고생은 성과를 내지 못한다 Olve Maudal 
버그 트래커를 이용하는 방법 Matt Doar 
제거를 통해 코드를 개선하라 Pete Goodliffe 
나를 인스톨하라 Marcus Baker 
프로세스간 통신은 응용프로그램 반응 시간에 영향을 미친다 Randy Stafford 
빌드를 깨끗하게 유지하라 Johannes Broadwall 
커맨드라인(command line) 도구 사용법을 알아라 Carroll Robinson 
두 개 이상의 프로그래밍 언어를 습득하다 Russel Winder
자신의 통합 개발 환경을 이해하라 Heinz Kabutz 
자신의 한계를 알아라 Greg Colvin 
다음 커밋을 알아라 Dan Bergh Johnsson
서로 연결된 큰 데이터는 데이터베이스에 속한다 Diomidis Spinellis 
다른 세계의 언어를 배워라 Klaus Marquardt 
예측하는 것을 배워라 Giovanni Asproni
‘Hello World’를 작성하는 것을 배워라 Thomas Guest 
프로젝트가 스스로 말할 수 있게 하라 Daniel Lindner 
링커는 마법의 프로그램이 아니다 Walter Bright 
임시 솔루션의 장수 Klaus Marquardt 
정확한 사용이 쉽고, 잘못된 사용이 어려운 인터페이스를 만들어라 Scott Meyers 
보이지 않는 것을 더 잘 보이게 하라 Jon Jagger 
병렬 시스템에서 메시지 전달 방식은 더 나은 확장성을 제공한다 Russel Winder 
미래로의 메시지 Linda Rising 
다형성을 고려하지 않아 놓쳐 버린 기회들 Kirk Pepperdine
이상한 뉴스: 테스터는 여러분의 친구다 Burk Hufnagel
하나의 바이너리 Steve Freeman 
오직 코드만이 진실을 말한다 Peter Sommerlad 
빌드를 소유하라 (그리고 재작성하라) Steve Berczuk 
짝 프로그래밍으로 흐름을 느껴라 Gudny Hauknes, Kari Røssland, Ann Katrin Gagnat 
원시 타입보다 도메인에 특화된 타입을 선호하라 Einar Landre
에러를 예방하라 Giles Colborne 
프로페셔널 프로그래머 Robert C. Martin(Uncle Bob) 
모든 것의 버전을 관리하라 Diomidis Spinellis 
마우스를 내려 놓고 키보드에서 떨어져라 Burk Hufnagel
코드를 읽어라 Karianne Berg 
인문학을 읽어라 Keith Braithwaite 
처음부터 다시 개발하라 Jason P. Sage 
싱글톤 패턴의 유혹을 견뎌라 Sam Saariste 
좋은 성능에 이르는 길에는 더러운 코드 폭탄이 곳곳에 도사리고 있다 Kirk Pepperdine 
단순함은 제거로부터 온다 Paul W. Homer 
단일 책임의 원칙 Robert C. Martin(Uncle Bob) 
“예”로 시작하라 Alex Miller 
한 걸음 물러서라. 그리고 자동화, 자동화, 또 자동화를 하라 Cay Horstmann 
코드 분석 도구를 활용하라 Sarah Mount 
부수적 행위가 아닌, 실제 요구된 행위에 대해 테스트를 수행하라 Kevlin Henney 
테스트를 명확하고 구체적으로 작성하라 Kevlin Henney 
당신이 자는 동안(그리고 주말 동안) 테스트를 수행하라 Rajith Attapattu 
테스팅은 소프트웨어 개발의 엔지니어링 리거다 Neal Ford 
상태에 대해 생각하기 Niclas Nilsson 
종종 한 사람보다 두 사람이 낫다 Adrian Wible 
두 번의 잘못이 옳은 것을 만들 수 있다(그리고 이것은 고치기 어렵다) Allan Kelly 
친구들을 위한 우분투 코딩 Aslam Khan 
유닉스 도구는 여러분의 친구다 Diomidis Spinellis 
올바른 알고리즘과 자료 구조를 사용하라 Jan Christiaan “JC”van Winkel 
장황한 로깅은 잠을 방해할 것이다 Johannes Brodwall 
WET은 성능 병목을 찾기 힘들게 한다 Kirk Pepperdine 
프로그래머와 테스터가 협업할 때 Janet Gregory
마치 평생 지원해야 하는 것처럼 코드를 작성하라 Yuriy Zubarev 
예를 사용해 작은 함수를 작성하라 Keith Braithwaite 
사람들을 위해 테스트를 작성하라 Gerard Meszaros 
코드에 주의를 기울여라 Pete Goodliffe
고객이 말한 것과 의도한 것은 다르다 Nate Jackson 

한국의 프로그래머들
개발자로 늙고 싶다면 코딩(코더)에서 벗어나라 강승준 
과거에서 미래를 찾아라 고재관 
훌륭한 소프트웨어를 개발하기 위해 필요한 것들 김병곤
잘못 알려진 디자인 패턴의 두번째 원칙 손영수
좋은 소프트웨어의 개발은 서로를 이해하면서 시작된다 송홍진
개발자 - "?" = 0 유명환 
피드백 유석문 
너의 언어는 너의 사고의 한계이다 장선진 
개발자들이 가져야 할 것들 장회수 
공유하고 연대해라 조정현