메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

클린 코드에 대해서 배우고 싶으면 추천

fbf***

|

2024-08-25

실무로 통하는 클린 코드

당신의 코드를 변화시킬 클린 코드 혁명. 개발자 성장을 위한 최적의 코드 작성법

  • 저자 : 막시밀리아노 콘티에리
  • 번역 : 이태영
  • 출간 : 2024-08-05


 

 

 

안녕하세요

이번에 한빛미디어에서 실무로 통하는 클린 코드 (Clean Code Cookbook) 책이 나왔습니다.

책 내용은 제목 그대로 클린 코드 작성법입니다.

이 책의 장점 중 하나는 책에 나오는 언어가 한 개의 언어로 고정된 것이 아니라 여러 언어로 코드를 보여주는 것입니다.

 

1장에서는 클린 코드가 무엇인지와 코드 스멜이 무엇인지부터 정의하고

책 전반에 필요한 단어들을 정리합니다.

 

책의 구성은 문제 -> 해결 -> 설명으로 이루어져 있습니다.

문제가 뭔지 정의하고 바로 해결법을 알려주고 설명을 자세하게 해줍니다.

대부분 문제에 대해서 코드를 꼭 보여주고 넘어갑니다.

Java, Kotlin, Ruby, PHP, Python, Javascript 등등 여러 언어로 알려줍니다.

 

그리고 노트 영역을 활용해서 키포인트나 단어를 설명해 줍니다.

책의 일부를 찍어보았습니다. 6장에서는 선언전 코드 관련한 내용을 설명합니다.

재사용 변수 범위 좁히기, 문서화하기, 조건문 재작성하기 등 어떻게 선언적 코드를 작성하는지 알려줍니다.

 

11장은 블로터입니다. 블로터(bloater)는 코드가 커지고 많은 사람과 협업할 때 피할 수 없는 현상입니다.

성능에 문제를 일으키는 경우는 적지만 유지 관리 및 테스트 기능을 손상시켜 소프트웨어가 발전하는데 방해가 되는 것입니다. 저도 요즘 레거시를 만지고 있는데 코드가 심각하게 커서 유지 관리하기 어려움을 많이 겪고 있습니다. 11장 파트를 보면서 공감이 많이 되었네요

 

뚱뚱한 인터페이스 분리, 과도한 변수 줄이기, 과도한 메서드 제거, 객체에 너무 많은 속성이 있으면 나누기 등 큰 코드를 작은 코드로 나누는 법을 알려줍니다.

 

12장은 You aren't gonna need it의 줄임말인 YAGNI 원칙입니다.

저도 자주 놓치게 되는 원칙입니다. 현재 필요한 기능만 구현하면 되는 데 미래에 쓰이지 않을까 해서 개발하는 경우입니다.

 

Spring 코드에 보면 controller -> service interface -> service class -> repository interface -> reposity class 이렇게 인터페이스와 클래스와 일대일로만 대응이 되는 코드가 엄청나게 많이 있습니다.

개인적으로 굉장히 안 좋아하는 코드 스타일입니다. 이 방식은 오히려 코드 양만 많아지고 뎁스만 많아져서 보기가 불편해집니다.

책에서도 이런 일회성 인터페이스를 제거하는 걸 추천하고 있습니다.

 

테스트를 하다 보면 꼭 나오는 얘기인 private 메서드를 테스트해야 되나에 대해서도 알려줍니다.

 

22장은 예외 관련한 부분으로 예외 관련한 코드를 어떻게 작성해야 되는지 알려줍니다.

중첩된 try ~ catch를 지양하고 재작성하는 방법에 대해서 알려주고 있습니다.

 

책의 마지막에는 용어 사전이 있어서 궁금했던 용어를 찾아서 설명을 볼 수도 있습니다.

 

내가 코드를 제대로 짜고 있는 걸까?라는 생각이 드시는 분들한테 추천드리는 책입니다.

책을 읽게 되면 어떤 코드들이 코드 스멜을 풍기게 되는지 알 수 있게 되고 어떻게 코드를 짜야 가독성이 좋고 유지 보수하기 좋은지에 대해서 배울 수 있다고 생각이 듭니다. 또한 여러 언어로 코드를 설명해 주고 있어서 좀 더 다양한 상황에 대해서 배울 수 있다고 생각이 드네요

 

클린 코드에 대해서 배우고 싶은 분들에게 추천합니다!

 

 

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?