ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 실무로 통하는 클린 코드
    2024. 8. 26. comments
    반응형

    막시밀리아노 콘티에리 지음, 이태영 옮김

    어떤 기술을 학습해 가는 방법은 여러 가지가 있다. 최근 가장 관심 있는 방법 중 하나로써 기본적인 개념을 익힌 뒤 실용적인 관점에서의 예시들을 포함, 어떻게 활용하는지 익혀나가고 점진적으로 왜 이렇게 했는지 등 사고의 폭을 넓혀가는 방법이 와닿는다. 그런 관점에서 한빛미디어에 나온 "실무로 통하는..." 시리즈의 책들은 인과추론, 타입스크립트, 엑셀, 데이터 시각화등 책이 나와있는데 "실무로 통하는 클린코드" 또한 이러한 시리즈 책 중 하나이다.

    클린코드는 읽고, 이해하고, 유지보수하기 쉬운 코드를 의미합니다. 이를 위해 잘 구조화되고 간결하며 변수, 함수, 클래스에 의미 있는 이름을 사용합니다. 또한 모범 사례와 디자인 패턴을 따르며 성능과 구현 세부 사항보다 코드의 가독성과 동작을 우선시합니다. 

    p31 왜 클린 코드인가요?

     

    클린 코드란 읽고, 이해하고, 유지보수하기 쉬운 코드를 위한 모든 활동들을 의미한다. BigData와 같이 여러가지 의미를 함축하는 용어로써 "클린 코드"란 말은 로버트 C 마틴에 의해 널리 알려졌다. 클린 코드 책이 나온 지 꽤 오래되었지만 여전히 개발자들의 바이블이다.  하지만 Java 언어를 바탕으로 예시들이 설명되고 있어 요즘과 같이 다양한 언어를 다루는 사람들에게는 예시에 대한 갈증이 있었을 것이다.

    이러한 관점에서 실무로 통하는 클린 코드(Clean code Coookbook)는 꽤 유용한 책이다. Java뿐 아니라 Javascript, Python, PHP를 사용한 예시들이 제공되고 있고 짧은 예시들이 가득가득하여 읽어나가는데 부담이 없다. 사실 예시가 너무 많아서 머릿속으로 기억하는 게 어려울 지경이다. 

    지은이 막시밀리아노 콘티에리는 약 25년동안 소프트웨어 업계에 종사하였는데 그 중 14년째는 대학 강의를 하고 있는 사람이다. 이름이 익숙하지 않은 발음이라 어느 국가 사람일까 궁금했는데 아르헨티나 국적을 가진 사람이었고 링크드인 프로필을 보면 책과 관련된 언급을 찾아볼 수 있다. 대략 1년이 안된 책이 한국어로 번역까지 되어 출판된 것을 보면 얼마나 따끈따끈한 책인지를 알 수 있다.

    저자의 링크드인 글 일부를 발췌

    Chapter 1,2에서 클린코드에 대한 설명 그리고 공리(수학에서 가장 근본이 되는 기초 명제)를 시작으로, Chapter 3부터 다양한 예시들을 설명해 나가는데 "문제", "해결", "설명" 순으로 진행이 된다. 문자열 남용 제거하기처럼 선언적으로 변환하는 간단한 예시들부터 시작하여 디자인 패턴에 대한 인용 그리고 놓치기 쉬운 과도한 일반화에 대한 내용을 첨부한다.

    4.4 문자열 남용 제거하기
    (노트) 퍼사드 패턴
    과도한 일반화 줄이기

    이 책을 관통하는 하나의 단어가 있다면 MAPPER(Model: Abstract Partial and Programmable Explaining Realiity) 일 것이다. 저자가 말하는 MAPPER에 대해서는 매우 동의한다. 프로그래밍을 처음 배울 때 추상화 그리고 모델링에 대한 부분을 배우게 되는데 실제 내용이 와닿지 않다가 경험이 쌓일 수록 이러한 개념이 와닿는 순간들이 점차 많아지게 된다. 시점을 생각해보면 유지보수를 하게 됨에 따라 기존 코드를 변경하고 문제 없이 동작하게 해내가는 과정들을 겪으면서가 아닐까 싶다. 버그가 나와서 고쳤는데 다른 버그가 나타난다던가, 기능 요구사항이 있어 수정을 하려는데 강결합된 코드들로 인하여 거의 다 뜯어고쳐나가는 일들 그리고 배포시 겪는 장애들의 연속등 실제로 주변에서 많이들 겪고 보게 되는 일들이다.  

    나에게 클린 코드란 관리/담당하는 코드들이 내 손을 떠나서도 정해진 요구사항과 목표에 맞게 잘 동작시키는 기본 바탕을 의미한다. 좀 더 말하자면 유닛테스트 및 회귀테스트 그리고 적정 수준의 설계 문서들이 함께 있어야 하겠지만 말이다. 개인적으로는 "Chapter 4 기본형 집착", "Chapter 16 섣부른 최적화", "Chatper 17 결합도", "Chatper 19장 계층"을 재미있게 읽었다.

    하루 한 Chapter 이렇게 읽으면 딱 좋을듯 한데 부담이 된다면 하루에 2,3페이지씩 정해서 읽어도 좋다. 첫번째 읽을 때에는 이해하기 위해 그리고 두 번째 읽을 때 비판적 사고로 읽어보면 본인의 코딩 스타일에 충분히 도움이 되지 않을까 생각한다. 팀 또는 함께하는 사람들이 있다면 같이 읽어도 좋다고 생각한다. 

    개발자란 코드를 가지고 글을 쓰는 사람이다. 글을 잘쓰기 위한 전략이나 학습이 필요하다. 물론 글을 많이 써야겠지만 변해가는 요구사항에 맞춰 고객에게 빠르고 안전하게 서비스를 제공하기 위한 유지보수 관점에서의 글쓰기가 필요하다. 클린 코드는 이러한 관점을 위한 전략이고 유지보수는 거의 모든 대부분 개발자들이 하는 일이다. 

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

    반응형

    댓글

Designed by Tistory.