본문 바로가기

책이야기

[리뷰]코드 크레프트

반응형

 

 

[도서 소개]

현실 세계에서 올바른 코드를 작성하는 법

 

동작하는 코드 너머에 있는 것들

 

프로그래머는 동작하는 코드를 작성하는 법은 알지만, 그저 동작만 한다는 사실은 알지 못한다. 잘 작성된 코드, 이해하기 쉬운 코드, 요구사항의 균형점에 있는 훌륭한 코드를 작성하는 법은 대부분 알지 못한다. 이 책에서는 동작하는 코드가 아니라 훌륭한 코드를 작성하는 법을 설명한다. 훌륭한 코드를 작성하는 법을 하나씩 익히다 보면 수습생에서 전문가로 변화할 수 있을 것이다.

 

코드마다 스타일이 달라서 정말 한 사람이 작성한 게 맞아요?

 

문법을 설명하고, 예제가 동작하는 법을 설명하는 책은 많지만, 올바르게 코드를 작성하는 법을 설명하는 책은 많지 않다. 그때그때 즉흥적으로 코드를 작성하거나 인터넷 검색을 통해 가져온 코드를 사용하면서 코드를 작성하다 보면 팀 리뷰에서조차 정말 한 사람이 작성한 게 맞느냐는 얘기를 듣기 쉽다. 코드를 작성하는 일관된 스타일을 익히는 것이 중요하다. 코드의 표현 스타일, 변수 이름 짓기, 오류 처리, 보안 같이 코딩에 필요한 요소들을 익혀서 정말 한 사람이 작성한 게 맞느냐는 얘기는 듣지 않게 하자.

 

위대한 코드는 나 홀로 탄생하지 않는다

 

전반부가 코드 작성 그 자체에 대한 이야기라면 후반부는 팀, 개발 프로세스, 명세서 작성, 팀 리뷰, 외부의 제약 조건을 다룬다. 훌륭한 코드는 프로그래머 개인의 코드 작성뿐 아니라 팀, 개발 프로세스, 명세서 작성, 팀 리뷰의 과정을 거친다는 사실을 놓치지 않는다. 전반부가 팀원의 역량이라면 후반부는 팀장, 아키텍처, 조직의 역량이라는 뜻이다. 위대한 코드를 위한 여정을 위해 이 책이 선반에 반드시 있어야 하는 이유다.

 

[목차]

1부 코드페이스에서

1 방어 태세

2 잘 세운 계획

3 이름이 왜 중요할까?

4 무엇을 작성해야 하나

5 부수적 주석

6 사람은 실수하기 마련이다

 

2부 코드의 비밀스러운 생애

7 프로그래머의 도구상자

8 테스트할 시간

9 결함 찾기

10 잭이 개발한 코드

11 속도의 필요성

12 불안 장애

 

3부 코드 형태

13 훌륭한 디자인

14 소프트웨어 아키텍처

15 소프트웨어 진화 혹은 소프트웨어 혁명?

 

4부 프로그래머 무리?

16 코드 몽키

17 뭉쳐야 산다

18 소스 안전 생활화

 

5부 과정의 일환

19 명시적으로

20 완벽한 리뷰

21 그걸 누가 알겠어?

 

6부 위에서 내려다 보기

22 프로그램 레시피

23 외부 제약

24 다음 단계는?



[주요 내용]

- 소스 코드 표현 방식

- 방어적 코딩 기법

- 효율적인 프로그램 디버깅

- 훌륭한 팀워크 기술

- 소스 코드 관리

 

[서평]

 

이 책은 크게 6파트로 나눠져 있다. 미시적 관점에서 거시적 관점으로 확장해 나가는 방식으로 진행 된다. 처음에는 방어적 프로그래밍과 코드 표현, 명명, 문서화 등에 대한 조언 이어서 도구와 테스트, 로깅, 디버깅, 빌드 같은 개발환경 그리고 디자인 과 아키텍처를 다루고 주제를 넓혀 프로그래머와 개발팀을 여러 유형으로 분류해설명한다. 코드 리뷰, 일정 수립등 소프트웨어 개발 과정에 수반되는 활동을 알아보고 마지막으로 보다 수준 높은 개발 프로세스와 프로그래밍 원리를 파헤진다. 

“코드 크래프트”가 다른 개발서와 다른점은 개발자의 사고방식이 어떻게 소프트웨어의 품질을 결정하는지에 대한 메시지를 분명하고 일관되게 전달한다는 것이다. 책 제목에서 알수 있듯이 뛰어난 프로그래머는 장인 정신이 있어야 한다는 것이다. 이책에서 프로그래머가 가져야 하는 올바른 사고방식이 무엇인지 배울수 있다.

 

설명

 

이책을 사야만 했던 가장 홍미로운 내용은 바로 설명 곳곳에는 핵심 개념이 흩어져 있다. 주요 팁과 이슈, 사고방식을 강조하니 유념하면서 봐야 한다.

 

핵심 개념

 

요약

설명을 마루리 짓는 짧은 영역으로 각 장을 끝마친다. 내용이 한눈에 들어오도록 제공하고 시간이 촉박하면 핵심 개념과 끝맺음 영역만 봐도 이해 할수 있을 것이다.

 

참고

연관된 장을 나열하고 이 장의 주제와 어떻게 연결되는지 잘 설명한다.

 

생각해보기

마지막으로 생각해 볼 만한 질문을 던진다. 그저 책 내용을 늘리려고 넣은 부분이 아니라 장마다 없어서는 안 될 부분이다. 방금 읽은 내용을 그대로 반복하지 않고 생각해 보고, 배운 것 이상을 고심하게 한다. 질문은 두가지 분류로 나뉜다.

궁리하기 - 주제를 더 깊이 살피고 주요 문제를 제기한다.

 

스스로 살피기 - 업무 관행과 개발자 및 개발자가 속한 소프트웨어 개발팀의 코딩 숙련도를 알아본다.

 

각 장은 하나의 주제 모던 소프트웨어 개발의 문제 영역을 하나씩 다루고 있다. 개발자가 형편없는 코드를 작성하는 이유 혹은 코드를 제대로 작성하지 못하는 일반적인 원인들에 대해서 말한다. 장마다 올바른 접근법과 사고방식에 대해서 설명하고 있다.

 

1부 : 코드 페이스에서

1부에서는 소스 코드 개발의 기초를 살펴본다. 방어적 프로그래밍 기법과 어떻게 코드를 구성하고 배치하는지 알아본다. 이후 명명과 코드 문서화로 넘어간다. 주석 작성 관례와 오류 처리기법도 다룬다.

 

2부 : 코드의 비밀스러운 생애

다음으로 코드를 어떻게 생성하고 수정하는지와 같은 코드 작성 과정을 살펴본다. 구조화 도구와 테스트 방법, 디버깅 기법, 실행 파일을 빌드하는 올바른 과정, 최적화를 알아본다. 끝으로 안전한 프로그램을 작성하는 방법을 검토해 본다.

 

3부 : 코드 형태

이어서 소스코드를 구성하는 더 광범위한 주제를 살펴본다. 코드 디자인 개발과 소프트웨어 아키텍처, 시간이 흐르며 소스코드가 어떻게 성장하는지 논한다.

 

4부 : 프로그래머 무리

외부와 단절된 프로그래머는 별로 없다. 4부에서는 더 넓은 세계에 발을 담가 훌륭한 개발 사례와 이러한 사례가 전문 프로그래머의 일상과 어떻게 맞물리는지 살펴본다. 뛰어난 개인 및 팀 프로그래밍 기술과 버전 관리 시스템 사용법을 다룬다.

 

5부 : 과정의 일환

5부에서는 명세작성과 코드 리뷰 수행, 기간 추정 마술 같은 소프트웨어 개발과정의 의식과 의례를 알아본다.

 

6부 : 위에서 내려다보기

마지막 6부에서는 소프트웨어 개발방법론과 다양한 프로그래밍 원리를 알아봄으로써 보다 높은 수준의 개발 절차를 소개한다.

 

이 책은 경험이 부족한 프로그래머, 코드 품질을 높이고 싶은 개발자가 꼭 읽어야 할 필독서 이다. 개발자라면 누구나 높은 품질의 코드 작성과 더나은 프로그래머가 되기를 갈망 할것이다. 그리고 그 목마름을 코드 크레프트가 해결해 줄것이라 생각한다. 



 "길벗 출판사에서 개발자 리뷰어 이벤트 진행을 위해 제공 받은 도서 리뷰입니다"

 

반응형