실용주의 프로그래머 (The Pragmatic Programmer)

The Pragmatic Programmer: From Journeyman to Master

pp_eng.jpg

Andrew Hunt, David Thomas
김창준, 정지호 옮김
인사이트

실용주의 프로그래머는 컴퓨터 과학의 기본 원리(이론)와 실제 프로젝트 수행을 통한 경험(실천)을 조화시켜 효율적이고 생산성 높은 작업을 할 수 있는 프로그래머다.

이 책은 프로그래밍과 관련된 다양한 분야의 지식과 경험을 통해 실용주의 프로그래머가 갖추어야 할 자질과 마인드를 70가지의 팁과 위트 있는 예제와 및 비유로 제시하고 있다.

1장 실용주의 철학에서는 실용주의 프로그래머가 프로젝트에 임하는 자세나 생각하는 방식에 대해 언급한다.
* 자신의 기술 (Craft)에 관심과 애정을 가진다 / 새로운 것에 빨리 적응한다 / 캐묻기 좋아한다 / 비판적인 사고의 소유자 / 현실적 / 다방면의 기술에 익숙하다 / 학습을 습관으로 삼고 지식 포트폴리오를 관리한다

2장 실용주의 접근법에서는 보다 구체적인 실용주의 방법론들을 제시한다.
* DRY(Don’t Repeat Yourself) 원칙이나 확장성 및 재사용성을 고려한 설계, 독립적인 컴포넌트 설계

3장 기본적인 도구는 실용주의 프로그래머가 사용할 수 있는 다양한 도구에 대한 관점을 담고 있다.
* 명령어 셸을 익히고, 에디터에 능통하고, 소스코드 관리 시스템을 사용하고, 텍스트 처리언어를 익히고, 코드생성기를 사용하라

4장 실용주의 편집증에서는 완벽한 소프트웨어는 불가능하다는 사실을 인지하고 에러와 오작동으로부터 프로그램과 사용자를 보호하는 방법에 대해 언급한다.

5장 구부러지거나 부러지거나에서는 지속적으로 개선 가능한 유연한 코드를 만들기 위한 팁을 제공한다.
* 모듈간의 결합도를 최소화하고, 메타프로그래밍을 통해 통합보다는 설정옵션을 활용하며(코드에는 추상화를, 메타데이터에는 세부 내용을), 동시성과 독립성을 고려하여 설계하라

6장 코딩하는 동안 해야 할 일들에서는 우연에 맡기는 프로그래밍을 지양하고 알고리즘과 함수를 지속적으로 테스트하고 리팩터링하라고 강조한다. 또한 마법사가 자동생성한 코드는 피하라고 말한다.

7장 프로젝트 전에에서는 프로젝트를 시작할 때 고려해야 할 기본원칙을 다룬다.

8장 실용주의 프로젝트에서는 프로젝트 차원에서 성패를 좌우하는 핵심부분에 대한 통찰을 제시한다.
* 형식의 노예가 되지 말고 명세의 나선에 빠져 코딩을 시작도 못하는 일이 없도록 하라. 수작업 절차를 피하고 테스트를 보다 일찍, 자주, 자동으로, 정교하게, 극한상황에서 수행하라. 문서는 나중에 추가하는 것이 아니라 애초부터 하나의 프로그래밍 언어를 다루듯 프로젝트의 일부가 되도록 작성하라.
Continue reading “실용주의 프로그래머 (The Pragmatic Programmer)”