본문 바로가기
[Review]/Book

[도서 리뷰] 코드 크래프트

by 해피빈이 2021. 10. 31.

> 진행에 앞서

요즘은 개발자로 많이 불리는 것과 동시에, 코딩이라는 용어도 많이 쓰인다.

그러니까 합치면, 개발자는 코딩한다?

코딩을 한다고 코더라고 하면 좋은 뜻은 아니지만, 아마도 개발 자체를 좀 더 대중화시키는 과정에서 코딩이라는 단어가 아마 더 잘 퍼진것이 아닐까 하고 생각이 든다.

 

> 책에 대한 간단한 정보

이 책은 코드를 만드는 방법 관한 고찰 같은 책이다.

정말 많은 고민이 녹아들어있으며, 어떻게 코드를 작성하는 것이 좋은 코드를 만들 수 있을까.

단순히 좋은 코드를 넘어서서,  스피릿, 일명 장인 정신을 가지고 코드를 만들 수 있는지에 대해 고민한 내용이 담겨있다.

코드를 잘 만드는 내용에 대해 담은 책이라고 보면 될 것 같다.

 

> 첫 느낌 및 목차

이 책의 첫 느낌은 사실 그리 좋지는 않았다. 조금은 투박해 보이는 표지와, 개인적인 느낌상으로는 크게 세련되어 보이지 않는 느낌이 드는 분위기 때문이었다.

그리고, 두껍기는 너무나 두껍고, 심지어 내용 자체도 상당히 촘촘하여, 무슨 내용을 담았길래 이렇게 많을까 하는 우려가 함께 있었다.

 

표지

목차는 실로 엄청났다.

세부적인 내용을 적기에는 차마 너무나 많으며, 큰 파트만 기입하면 다음과 같다.

1부 - 코드페이스에서

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

3부 - 코드 형태

4부 - 프로그래머 무리?

5부 - 과정의 일환

6부 - 위에서 내려다보기

 

그리고 장으로는 24장 + 정답해설이 함께 있다.

사실 위의 타이틀로도 유추하기 어려울 것이며, 내용을 적기에는 너무 많으므로 구체적인 내용은 온라인 서점의 설명을 참고하는 것이 나을지도 모르겠다.

 

아래는 네이버 정보이다.

https://book.naver.com/bookdb/book_detail.nhn?bid=20807961 

 

코드 크래프트

현실 세계에서 올바른 코드를 작성하는 법동작하는 코드 너머에 있는 것들프로그래머는 동작하는 코드를 작성하는 법은 알지만, 그저 동작만 한다는 사실은 알지 못한다. 잘 작성된 코드, 이해

book.naver.com

 

 

> 인상깊은 부분들

역자 서문

역자 서문의 첫 마디 말이 기억에 남았다.

톨스토이의 소설 '안나 카레니나'에서 보았던 문구를 오마주하는 듯한 느낌이 드는, 그런 문구이다.

(행복한 가정은 서로 닮았지만 불행한 가정은 모두 저마다의 이유로 불행하다, 펭귄클래식코리아-윤세라역)

 

이에 동의하며, 이 문장을 읽었다.

'좋은 코드는 서로 닮았지만, 나쁜 코드는 모두 저마다의 이유로 나쁘다'

그렇게 나쁜 이유가 너무나 다양하기에, 이 책에서 언급할 내용도 많았던 것 같다.

 

1장의 내용 중

첫 장에서는 방어적 프로그래밍에 대해서 다루고 있었다. 일단 코드를 대하는 전체적인 자세부터 말하고 있다.

방어적 프로그래밍은 신중하고 조심스럽게 작성하는 프로그래밍을 의미하고 있다.

이렇게 작성하는 플로우 또한 그저 작성해서 문제를 발견하고 그것을 수없이 반복하는 것이 아닌, 코팅한 뒤 테스트하고 동작하는 것을 발견하는 과정이 필요하다는 것이다.

또한 자세에 대한 한가지 중요한 태도는 급하게 작성하지 말자는 것이다. 할 일이 많기 때문에, 때로는 빠르고 급하게 작성하는 경우도 많지만, 이럴 경우 이 때 아낀 시간뿐 아니라, 훨씬 더 많은 시간을 후에 갚아나가야 할 것에 대해 말하고 있다. 그리고 이에 동의한다.

 

코딩 스타일

코딩 스타일 또한 매우 중요하여(그 어느것이 중요하지 않은게 있겠냐마는..), 매우 앞인 2장에서 언급되고 있다. 사실 좋은 스타일에 대해서 말하고 있고, 그 스타일의 장단점에 대해서 말하고 있지만, 하우스 스타일(내부 스타일)이 중요하다고 말하고 있다. 어느 조직이든 내부의 스타일이 있을 텐데, 이것을 마음에 들지 않는다고 자신의 스타일로 막 바꿔서 하다보면, 규칙이 사라지게 된다.

이 때에는 표준보다 함께 공유하는 스타일이 중요하기 때문에, 이 또한 주의해야 한다.

오히려 본인의 코드 스타일이 티가 나지 않도록, 적절히 개발도구를 설정해서 사용하는 것도 좋은 방법이 될 것이다.

 

테스트 종류와 시점

이 도표의 번역 타이틀이 조금은 어색한 느낌인데, 테스트 시간보다는 테스트 시기 혹은 테스트 시점이라고 하는것이 좋을듯 하다.

사실 그것보다도, 테스트의 종류와 범위까지 다루었다는 사실에 놀라며 이것을 보았다.

개발을 홀로 진행하거나, 환경이 적절치 않은곳에서 일하는 개발자는 이와 같은 프로세스에 대해서 보고 들은것이 없을지도 모른다. 알파, 베타, RC 등에 대해 지레짐작으로 일하고 있을지 모르나, 이런 부분을 잘 짚어서 알려주고 있다. 또한 이러한 테스트를 누가 해야하는지도 알려주기 때문에, 이러한 부분은 사전처럼 잘 발췌하여 필요할 때 참고하는 것이 좋을 것 같다.

 

 

아키텍처에 관해

아키텍처에 관한 설명도 인상적이다.

어느곳에도 통용되는 말이긴 한데, 어떤 개념에 대해서 모를 수록 설명이 복잡하다고 한다. 반면에 어떤 개념을 완벽히 이해하고 있는 사람일 수록 쉽게 그것을 풀어서 설명한다고 한다. 이것과 다르다고 볼 지도 모르지만, 설계도 마찬가지라고 생각한다. 이 책에서 말하고 있듯, 훌륭한 시스템 아키텍처는 단순하고, 문단 하나로 설명할 수 있으며, 간결한 그림 하나로 요약할 수 있다.

내가 이 프로그램을 통해서 이루고자 하는 바가 잘 드러나도록 설계하면 되며, 그것에 대한 검증절차나 내부구현이 설령 복잡할지언정, 설계가 복잡하지 않도록 하는 것은 아키텍처의 중요한 역할이 될 것이라는 말이다.

 

 

코드 몽키 유형 중 하나

여기에서는 코드 몽키라고 개발자들에 대해 말하고 있다. 이러한 코드몽키들의 다양한 유형에 대해 말하고 있는데, 재미있는 부분이라고 생각했다. 그 코드 뿐 아니라, 코드를 만드는 사람의 특성도 잘 파악해야 결국 만드는 결과물도 좋은 영향을 받는다고 여기기 때문일 것이다.

 

정말 이 책이 커버하는 범위가 대단하다는 생각이 들었다.

 

 

> 괜찮은 부분

1. 개발에 대해 다루는 범위가 방대하다.

코딩, 개발자, 프로그래밍 전반에 대해서 다루는 내용이 많다. 이것을 개발자라면 꼭 한 번 읽었으면 하는 마음이 들 정도이다. 물론 막 개발에 뛰어든 사람이 받아들이기에는 공감이 가지 않는 내용도 많이 있을 듯 하지만, 개발 실무에 뛰어든지 10년이 넘게 쌓은 경험을 기반으로 이 책을 보고 있노라니, 흩어져 있는 많은 지식이 정리되어가는 느낌이었다. 또한 빠진 지식도 채워지는 느낌이고, 공감이 많이 되었다.

 

2. 하나의 에세이를 읽는 느낌과 교과서를 읽는 느낌이 공존한다.

이 책은 실제 코드 자체를 다루는 느낌이 아니다. 그래서 그냥 자기계발서를 읽듯이 읽힌다. 하지만 동시에 개발이라는 분야에 대해 다양하게 다면적으로 정리한 느낌도 많이 들었다. 실제 코드를 예로 든 부분들도 많기 때문이다. 뭐랄까 한마디로 정의하기는 어렵지만 빠르게 읽기도 어렵지 않지만, 그렇다고 빠르게 읽기에는 곱씹어 보게 만드는 알짜 지식이 많이 녹아들어 있다.

 

3. 어느 특정 개발 분야를 타게팅하고 있지 않다.

이것은 일반적인 개발자라면 모두에게 도움이 된다는 뜻이기도 하다. 프론트엔드, 백엔드, 앱 개발자, 머신러닝 개발자 등 많은 분야의 개발자가 공존하는 이 시기에 이 책은 그 모두에게 공감가는 주제들로 수록되어 있다. 그래서 함께 읽고 그 느낌을 나누기에 좋다. 만약 팀을 매니징하고 있는 입장이라면 이 책을 가지고 함께 스터디나 나눔을 해도 좋을 것 같다. 반드시 얻는 것이 많을 것이다.

 

> 아쉬운 부분

1. 색인이 잘 되어있는지 모르겠다.

책의 흐름은 괜찮다고 생각이 든다. 하지만, 서술로 되어있는 구성으로 인해, 순서대로 보기에는 편하지만, 내가 원하는 부분이 어디에 들어가 있는지는 바로 찾아서 보기엔 쉽지 않다고 생각이 든다. 목차를 보고서도 그 부분을 찾기는 어려워보인다. 이 책을 한 번 읽고나서 나만의 정리가 되어있지 않다면, 빠르게 원하는 부분만 찾아보는 것은 포기하는게 좋을지도 모른다.

 

2. 표지 및 첫 느낌이 매력적이지는 않다.

책 이름처럼 코드 공작소의 느낌을 주기 위해 나무 책상에 프라모델 조립하는 부분을 코드처럼 두었다고 생각이 든다. 하지만 이러한 부분이 오래된 책같은 느낌을 주었으며, 한글로 된 제목이 눈에 띄지도 않아서, 외국에서 낸 책인가 하는 착각도 들었다. 이 책의 안에 있는 내용이 꽤나 매력적인 데 비해 끌어들이는 매력이 부족하여 아쉬움이 남았다.

 

3. 읽기에 시간이 많이 필요하다.

당연한 부분이지만, 책의 분량이 상당하다. 두께도 두꺼워서 들고다니며 읽기는 어려울 것 같고, 내용 또한 촘촘한 편이라 적은 분량이 아니다. 시간들여 읽을만한 부분도 많아서 더욱 그러하다.

 

> 개인적인 평점

- 가격: 8 / 10

- 내용: 10 / 10

- 디자인: 6 / 10

- 구성: 7 / 10

 

내용에 있어서는 만점을 주고 싶은 책이다. 비록 다른 부분은 아쉬움이 있지만, 이 책에서 달성하고자 하는 장인정신을 가진 코드 개발자를 양성하기 충분히 이룰 수 있다고 본다.

 

간단히 말해, 여러분이 개발자라면 이 책을 추천한다.

 

> 정보

저자: 피트 구들리프

옮긴이: 심지현

출판사: 길벗

가격: 42,000원

전체 페이지: 668페이지

 

** 이 리뷰는 "길벗 출판사"를 통해 도서를 제공받아 작성하였습니다.

반응형

댓글