Clean Code 클린 코드 - 예스24
애자일 소프트웨어의 혁명적인 패러다임을 제시하는 책이다. 저자 로버트 마틴은 오브젝트 멘토(Object Mentor)의 동료들과 힘을 모아 ‘개발하며’ 클린 코드를 만드는 최상의 애자일 기법을 정제
www.yes24.com
강연 내용이 클린코드에 관한 내용이여서 읽게 되었다. 정리한 걸 올리다가 너무 공부할 게 많다보니, 멈추고 독후감을 먼저 올리게 되었다.
한줄평 : 너무나 좋지만, 오래된 책
장/단점이 너무 뚜렷한 책이라 생각한다.
참고로, 이 책은 코드가 아니라 유지보수에 관한 책이다. 코드를 잘 짜야 유지보수를 잘 할 수 있기 때문에, 코드 스타일, 코드 아키텍처, 코드간의 관계를 깔끔하게 작성하는 법을 알려준다.
좋았던 점
1. OOP와 SOLID 원칙을 무엇보다 잘 설명하는 책
이 책은 추상화와 객체지향을 무엇보다 잘 설명한다. 정말 무엇보다 잘 설명한다.
"왜 이렇게 설계를 하였고, 이 부분이 유지보수에 어떤 영향을 미칠 수 있고 그렇기 때문에 이를 코드 작성 원칙으로 잡아서, 유지보수를 최대한 효율적으로 만들고자 했다."이고 이 과정에서 SOLID가 하나하나 다 설명된다. (I를 설명안했던 거 같기도 한데 기억이 가물가물하다)
2. 주관(기준)이 뚜렷하다.
주관이 뚜렷하여 자신의 생각을 잘 전달하며 필요한 예시를 많이 들어준다. 그런 부분에서 코드에 대한 통일성과 기준이 확실해진다. 예를 들면, 저자는 길어도 정확하게 의미를 전달하는 네이밍을 선호하며 이를 강하게 전달해준다.
또한, 이 과정에서 TDD와 Test를 아주 자연스럽게 설명하면서 중요성을 강조해주는데, 이 부분도 나는 굉장히 긍정적으로 보았고, 테스트에 대해서도 가볍지만 중요한 부분을 배웠다 생각한다.
아쉬운 점
밑에 단점들이 아마 모두 "오래되었다"와 연관이 있을 것이다. 거의 20년 가까이 된 책이다. OOP와 관련된 개념 부분은 틀린 게 아예 없지만, 코드 스타일과 관련된 부분에는 굉장히 많은 비판이 있다. 또한, 주관이 강하신 만큼 강한 어조를 사용하는 데 이 부분이 비판의 대상이 되는 것 같다.
1. 너무너무너무 자바와 객체(지향)가 중심이다.
예시나 여러 부분이 자바가 중심이여서 좀 아쉬운 부분이 있었다. 언어나 프레임워크 특성에 따라서, 적용이 불가능할 수도 있다. 또, 시간이 지난 만큼 구글 스타일 가이드나 여러 다른 대체안이 존재한다.
2. 가독성은 주관적인 영역이다.

이 부분은 사람마다 다르지만, 코딩애플님께서는 왼쪽이 낫다고 한다.
근데 이 사진이 특히 별로였던 예시였는데 괜찮은 예시도 있었다.
여기서 이 분의 목적은 함수가 하나의 기능(책임)을 가지게 하여서, 테스트에 적합하게 만드는 것이라고 나는 이해하였다. 그 과정에서, 함수가 늘어날 수 밖에 없고, 이를 추상화과정을 통일시켜서 가독성을 향상시킨 것이 나의 추측이다.
통일된 추상화단계를 신문 읽듯이 읽으면 생각보다 가독성이 좋다. 이 부분은 나에게 꽤 호감으로 다가왔지만, 익숙하지 않은 동료들은 불호를 외친 동료도 많았고, 호를 외친 동료도 많아서 "아 적당히 써야겠다" 생각하게 만들었다.
(이외에도 긴 함수 이름 등 여러 이슈가 있다.)
3. 성능 이슈
어떤 개발자분은 클린 코드 방식대로 코드를 작성할 경우, 성능이 1.5배,10배,15배,21배 정도 낮아지는 결과를 얻었다고 합니다.
아래 영상이 있는데, C언어이고 책에 나온 특정 예시를 그대로 사용할 경우 심각한 성능이슈를 유발할 수 있다는 것이였습니다. 실제로, 클린코드 방식으로 작성하면, 함수를 정말 많이 호출하는데 성능에 이슈가 생길 수도 있겠다 생각되긴 했었습니다.
이 영상에서 말하는 것이 클린 코드가 나쁘다 보다는 클린 코드 방식으로 짤 때 성능이 저하될 수 있으니 비판적인 시각을 가지면서 필요한 원칙만 지키자에 가깝기 때문에 유연함과 비판적 시각이 더 강조되는 것 같습니다.
결론
객체지향을 이해하는 데 참 좋은 책이다.
하지만, 너무 자바에 한정되고 오래된 책이라 아쉬운 점이 있었습니다.
결국, 이 책의 저자는 좋은 코드와 유지보수를 위해서 방향성을 제시한 것이다. 그 방향성이 오래되었으니, 좋은 점을 챙기고 나쁜 점은 개선해서 나가는 유연한 태도가 중요하다 생각됩니다.
그래서, 몇 가지 비판적인 부분을 중도 수용한다면 정말 너무 훌륭한 책이라 생각됩니다.
마이클 페더스가 설명한 클린 코드로 마무리하겠습니다. “클린 코드를 신경 쓴 사람이 쓴 코드가 클린 코드다.” 로버트 C. 마틴은 이 말을 인용하면서 자신이 본 클린 코드에 대한 정의 중 최고라고 이야기했어요. 일방적으로 원칙을 따르는 게 클린 코드가 아닙니다. - 구름 커밋 마무리 멘트
참고
코딩애플의 클린코드 영상 - https://www.youtube.com/watch?v=th7n1rmlO4I
Molly Rocket의 클린코드 영상 = https://www.youtube.com/watch?v=tD5NrevFtbU
'책과 강연 > 독후감 - 개발' 카테고리의 다른 글
| [도서 리뷰] 리액트 훅을 활용한 마이크로 상태 관리 (0) | 2025.01.21 |
|---|---|
| [도서 리뷰] 가상 면접사례로 배우는 대규모 시스템 설계 기초 (3) | 2025.01.20 |
| [독후감] 혼자 공부하는 컴퓨터구조 + 운영체제 / 네트워크 (2) | 2024.11.18 |
| [독후감] 구글 엔지니어는 이렇게 일한다 (1) | 2024.02.12 |
| [독후감] 쉽게 시작하는 타입스크립트 (1) | 2023.08.01 |