클린 코드(Clean Code)는 코드 작성의 기초적이고 기술적인 부분을 향상시켜 줄 수 있는, 더 나은 프로그래머가 되기 위해 필요한 책이다.
저자인 Robert C. Martin는 Agile과 TDD의 선구자, SOLID 원칙의 창시자이며, 밥 아저씨(Uncle Bob)라고 불리기도 한다.
저자는 이 책을 읽고 나면 아래와 같은 내용을 배울 수 있다고 말한다.
1. 좋은 코드를 작성하는 방법
2. 좋은 코드와 나쁜 코드를 구분하는 능력
3. 나쁜 코드를 좋은 코드로 바꾸는 실력
책에 나오는 내용 중 본인에게 필요한 부분을 습득하면서 읽으면 좋을 것 같다.
나쁜 코드를 나중에 손보겠다고 생각한다면 오산이다. 나중은 결코 오지 않으니까! (르블랑 법칙)
'코드 감각'이 있어야 한다.
경험으로 습득한 '청결' 이라는 '코드 감각'을 활용해 자잘한 기법들을 적용하는 절제와 규율이 필요하다.
'코드 감각'이 있으면 나쁜 코드와 좋은 코드를 구분할 수 있고, 그 절제와 규율을 적용해 나쁜 코드를 좋은 코드로 개선할 방안을 떠올릴 수 있다.
(좋은 코드와 나쁜 코드를 구분할 수 있다고 깨끗한 코드를 작성할 수 있는 건 아니다.)
1. 보기에 즐겁고 효율적인 코드
나쁜 코드는 나쁜 코드를 유혹하고 더 나쁜 코드를 만드는 법이다.
2. 철저한 오류 처리
메모리 누수, 경쟁 상태(race condition), 일관성 없는 명명법 등 세세한 사항까지 꼼꼼하게 신경써야 한다.
3. 가독성 좋은 코드
깨끗한 코드는 잘 쓴 문장처럼 읽혀야 하고, 명쾌한 추상화를 포함한다.(단호하고 구체적인 사실만 기재) 추측이 아니라 사실에 기반하여 반드시 필요한 내용만 담아야 한다.
4. 다른 사람이 고치기 쉬운 코드
읽기 쉬운 코드와 고치기 쉬운 코드는 다르다.
중요한 소프트웨어 방법론 중 하나인 테스트 주도 개발(Test Driven Development)에 따른 테스트 케이스가 있어야 한다.
5. 주의 깊게 작성한 코드
6. 중복이 없고 표현력이 높은 코드
추가적으로 초반에 간단하게라도 추상화를 고려해서 구현한다면 나중에 '진짜' 문제에 신경 쓸 여유가 생긴다.
이 책은 읽기 쉽고 이해하기 쉬운 코드를 작성하는 것을 강조하며, 코드는 가독성이 좋아야 하고 유지보수가 쉽도록 작성되어야 한다는 원칙에 기반한다.
좋은 코드를 작성하기 위해서는 여러 예시를 접하고 연습, 또 연습해야 한다.