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

한빛미디어

독자리뷰

내 노트북 옆의 클린코드 마법서

thdud2***

|

2024-08-25

실무로 통하는 클린 코드

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

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

프로젝트를 진행하면서 구현에 급급했던 모습에서 한 단계 발전해서 ‘어떻게 하면 코드를 더 잘 쓸 수 있을까?’ 를 고민하는 나를 발견했다. 현업에서는 어떻게 코드를 작성하고 리팩토링하는지 알고 싶었다.

 

‘내가 지금 작성하고 있는 코드가 맞는 코드인가? 어떻게 하면 더 잘 쓸 수 있을까’ 코딩을 하면서 내가 작성한 코드에 대해 피드백을 받고 더 발전하고 싶은 욕심이 생겼다. GPT의 도움과 나의 검색 그리고 머리굴리기로 코드를 작성하고 있지만 늘 2%가 부족함을 느끼고 있었다.

 

그런 고민과 함께, 마침 서평을 쓸 기회를 얻게 되었는데, 내가 고민 하고 있는 두 단어가 떡하니 들어간 책이 눈에 들어왔다. 그것은 ‘실무’와 ‘클린코드’였다.

 

책의 첫 머리에는 내가 하고 있는 고민이 적혀 있는 것 같았다.

  • 사람들이 이해하기 쉬운 코드를 작성하려면 어떻게 해야 할까?
  • 코드를 오랫동안 안전하게 유지 보수 할 수 있는 방법은 무엇일까?

 

어떤 내용이 있나?

어떤 내용이 담겨 있을지 목차를 먼저 훑어봤다. 목차만 읽었음에도 꽤 흥미로운 주제들이 많았다. 평소에 궁금했던 내용들이 들어있었고, 책은 그에 대한 답을 어떻게 설명해 줄 지 기대되었다.

  • 코드 스멜이란 무엇인가? 리팩터링은 무엇인가? 왜 클린코드인가?
  • 객체의 본질 파악하기, 기본형 데이터 구체화하기, 문자열 남용 제거하기
  • var를 const로 변경하기, 본질 변경 금지하기, 지연된 초기화 제거하기, 호이스팅 방지하기
  • 명시적 반복 대체하기, 재사용 변수 범위 좁히기
  • 헬퍼와 유틸리티 이름 변경 및 분리하기, 추상적인 이름 변경하기
  • 주석을 함수명으로 변환하기, 주석을 테스트로 대체하기
  • 반복되는 코드 제거하기, 메서드를 객체로 추출하기, 기능 토글 제거하기
  • 과도한 인수/변수/괄호/메서드 줄이기

 

어떤 문제 상황을 설명할 때 하나의 언어로만 이야기 하지 않는다. JavaScript( or TS ), Ruby, Java, PHP 등 다양한 언어로 코드를 설명하기 때문에 JavaScript만 공부했던 나는 약간의 혼란이 오기도 했다. 하지만 클린코드는 특정 프로그래밍 언어에만 제한되는 것이 아니기 때문에 일부러 다양한 언어로 설명한다고 이야기하는 저자를 보며, ‘음 그렇지 클린코드는 프로그래머의 숙명이지’ 하며 내가 쓰는 언어에 적용해가며 이해하려고 했다.

 

각 장에서는 코드를 작성하며 일어날 수 있는 여러 상황들을 <문제><해결><설명>의 순으로 설명하는데 책에서는 이것을 레시피라고 칭햔다. 저자는 '책의 레시피를 최대한 활용하려면, 내가 사용하는 프로그래밍 언어와 디자인 솔루션으로 변환해 적용해보기를 추천한다. 레시피를 통해 문 제를 이해하고 원하는 결과를 파악하고 코드를 개선하는 방법을 배워봐라' 라고 이야기 한다.

 

나 또한  책의 스타일에 적응해가고 보니 내 코드로 변형해서 생각할 수 있는 활용력?이 생겼다. 책을 읽으면 읽을수록 내가 작성하고 있는 코드가 떠오르면서 ‘이렇게 고쳐볼 수 있겠다’는 아이디어가 떠올라서 굉장히 재미있게 읽고 있는 중이다.

 

어떻게 책을 활용해 볼 수 있을까?

실제로 책을 통해 아이디어가 떠올라 현재 진행하고 있는 프로젝트에 적용해보고 싶은 욕구가 뿜뿜했다. ‘당장 코드로!!!’ 이런 상황이 되는 것은 아니기 때문에 이렇게 아이디어가 떠오른 것을 어떻게 정리할 수 있을까 고민을 하던 중에 목차를 활용해야 겠다는 생각을 했다.

 

(1) 노션에 정리

각 장의 내용에서 내가 이해한 내용을 나만의 언어로 바꿔서 정리해봤다. ( 진 행 중 ) 이렇게 정리하고 보니 클린코드에 대한 개념이 훨씬 쉽게 다가왔다. 그래서 내 코드에도 적용해 볼 수 있을 것 같다는 자신감이 뿜뿜 커졌다.

 

(2) 목차 활용하기

또 다른 방법은 목차에 내용 요약해 놓는 것이다. 이 책은 번역본이기 때문에, 목차만 봤을 때 어떤 내용인지 감이 안 오는 경우가 종종 있다. 그리고 목차에 모든 내용을 담을 수 없기에 내가 꼭 적용해보고 싶은 부분이 어디인지 기억이 안나는 경우가 있을 수 있기에 해당 레시피를 간단하게 정리해서 목차에 써 놓고 있다. ( 진 행 중 )

 

이렇게 정리해서 옆에 요약본처럼 두고 싶을 정도로 알찐한 내용이 들어있었던 책이다. 현재 진행형으로 읽고 있는 책이라 앞으로 적용해 볼 수 있는 레시피들이 더욱 궁긍해진다.

첫 진입시 약간의 마음의 준비가 필요하지만 ㅋㅋㅋㅋㅋ ‘한번은 읽어보자’ 하고 마법을 걸고 시작만 한다면 분명 내 코드에도 변화가 있을 거라 생각한다.

 

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

닫기

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