개요
이 책은 크게 이론/실전/단위 테스트로 총 3개 파트로 나뉘어 있습니다.
1부 이론 편에서는 코드품질, 추상화 계층, 다른 개발자와의 코드 계약, 오류에 대한 내용을 다룹니다. 좀 더 자세하게는
1. 고품질의 소프트웨어를 만들기 위해서 코드를 어떻게 작성해야 하는지
2. 추상화 수준을 어떻게 가져가면 코드를 이해하기 쉽고, 재활용하기 쉽고, 테스트를 쉽게 할 수 있는지
3. 자신이 작성한 코드를 다른 개발자가 사용하려면 어떻게 코드 계약을 맺어야 하는지
4. 문제가 어떻게 발생하고 어떻게 대처해야 하는지에 대해서 배웁니다.
2부 실전 편에서는 가독성 높은 코드 작성, 예측 가능한 코드 작성, 코드를 오용하기 어렵게 만들라, 코드를 모듈화 하라, 코드를 재사용하고 일반화하라에 대한 내용을 다룹니다. 세부 사항으로는
1. 다른 개발자가 오해하지 않도록 코드 작성하고, 의도치 않게 오류를 발생시키는 코드를 예방하는 방법
2. 코드가 오용하기 않도록 작성하는 방법
3. 코드를 모듈화 하는 방법
4. 같은 코드를 재사용하는 방법에 대해서 배웁니다.
3부 단위 테스트 편에서는 단위 테스트의 원리, 단위 테스트의 실제에 대해서 배웁니다.
예상 독자
이 책을 이해하려면 정적 타입의 객체 지향 언어(자바, C#, TypeScript, C++, Swift, Kotlin 등등) 중 하나 정도는 잘 알아야 이해하기 쉬울 것 같습니다. (코드를 이해하기 위해서) 이제 막 프로그래밍 입문을 하신 분들께는 추천드리지 않습니다.
총평
프로그래밍 언어에 익숙한 사람이 좀 더 좋은코드를 작성하기 위해서 어떻게 해야 될지 고민하시는 분들께 추천드립니다. 다시 한번 말씀드리지만 프로그래밍에 익숙하지 않으신 분들께는 추천드리지 않습니다.
책에 대한 아쉬운 부분이 조금 있다면 이론 부분이 굉장히 지루할 수 있다고 생각합니다. 책에 나와 있는 코드량이 많기는 하지만 그 많은 코드에 대한 더 많은 이론적이 내용이 오히려 책에 대한 흥미를 떨어 뜨릴 수 있다는 생각이 들었습니다. 책이 생각보다 두껍고 내용이 방대해서 모든 내용을 이해하려고 한다면 시간이 걸릴 것 같다는 생각도 들었습니다. 책의 내용을 이해하기 위한 보조 지식도 많이 필요하다고 느꼈습니다. 의존성 주입, 디자인 패턴(널 객체 패턴, 팩토리 메서드 패턴, 빌더 패턴 등등), 함수형 프로그래밍 등등.
반면 책의 장점에 대해서 말씀드리자면 책의 구성이 괜찮고, 어떤 특정 문제가 주어지는 코드를 보여주며 이 코드에 대한 문제는 무엇이고 이것을 어떻게 개선해 나갈 수 있는지 해결책을 제시하고 있는 부분이 좋았습니다. 그리고 어떤 문제가 있는데 그것들이 왜 문제가 되는지 나열해 주는 것도 좋았습니다. 예를 들면 7.1에서 "불변 객체로 만드는 것을 고려하라"라 부분에서 가변 객체가 왜 문제가 되는지 설명하고 있는데 그 이유는 가변 객체는 추론하기 어렵고, 가변 객체는 다중 스레드에서 문제가 발생할 수 있다는 것을 이유 1, 이유 2 이런 식으로 설명해 주고 있어서 매우 좋았습니다. 마지막으로 flow-chart와 코드에 대한 상세 주석이 이 책의 장점이라 할 수 있을 것 같습니다.
"제이펍의 [믿고 보는 제이펍 IT 전문서 리뷰어]_2기 활동을 통해 작성된 서평입니다. "
'서평' 카테고리의 다른 글
[서평] AWS로 시작하는 인프라 구축의 정석 (0) | 2022.06.20 |
---|---|
[서평] 쏙쏙 들어오는 함수형 코딩 (1) | 2022.05.02 |
[서평] 프로그래머의 뇌 (The Programmer's Brain) (0) | 2022.04.03 |
가상 면접 사례로 배우는 대규모 시스템 설계 기초 (0) | 2021.07.31 |
나는 LINE 개발자입니다. (0) | 2021.03.28 |