#2 Clean Code란?

KangMyungJoe·2020년 12월 29일
0

cleancode

목록 보기
2/3

Clean Code는 총 17장으로 이루어져 있으며, 그 중 1장 깨끗한 코드를 읽고 작성하는 글이다.

클린 코드란 무엇일까?

위 그림은 코드 리뷰 시, 어떤 코드가 좋은 코드인지를 판별할 수 있는 지표인 wtf/minute을 나타내고 있다. 실제 있는 지표는 아니다

(wtf/minute - 코드 리뷰를 진행하며 1분에 외치는 What The *uck 횟수)


프로젝트 경험이 있는 개발자라면, 누구나 깨끗한 코드의 중요성을 알 것이다. 깨끗한 코드는 좋은 코드라고도 말할 수 있고, 그에 반대 되는 코드는 나쁜 코드, 지저분한 코드 등으로 불리울 수 있다.

책의 저자는 깨끗한 코드의 중요성을 매우 강조한다. 나쁜 코드로 인해 발생하는 문제들이 너무 많고, 모든 부분에서 좋은 결과를 도출해내지 못하기 때문이다.


나쁜 코드로 인해 발생하는 문제

  • 다른 개발자가 읽기 힘듬
  • 리팩토링 힘듬
  • 의존성 심함
  • 생산성 떨어짐
  • 재설계 힘듬

등이 있는데, 모두 개발자의 머리를 아프게 하는 문제들이다. 나쁜 코드를 작성하지 않기 위해 우리는 깨끗한 코드를 작성하는 법을 익혀야한다.


깨끗한 코드에 대한 프로그래머들의 생각

책은 세계적으로 훌륭한 프로그래머들의 깨끗한 코드에 대한 생각을 정리했다. (C++ 창시자, 이클립스 프로젝트 관계자 등)

개발자들의 고충은 누구나 공통적인 요소인지, 대부분 비슷한 시각을 가졌다.

  • 코드 중복이 없어야 함
  • 내가 아닌 다른 사람이 읽었을 때 읽기 수월해야 함
  • 함수는 1가지의 기능만 수행해야 함
  • 작은 부분의 추상화

이미 대 다수의 개발자들이 알고 있는 사실들이다. 하지만, 이론적으로 알고 있는 것과 실제 업무 환경에서 적용하여 프로그래밍 하는 것은 차원이 다른 문제다.


책의 저자는 보이스카우트 규칙으로 깨끗한 코드를 설명한다.

  • 캠프장은 처음 왔을 때보다 더 깨끗하게 해놓고 떠나라

코드를 작성할 때 먼저 깨끗한 코드를 작성한다면, 코드는 절대 나빠지지 않는다. 한번에 너무 많은 시간과 노력을 투자해 코드를 정리할 필요가 없고, 한번에 하나씩 꾸준히 진행하면, 시간이 지날수록 코드가 좋아지는 프로젝트가 된다.

우리는 새로운 코드를 작성할 때 기존 코드를 자연스레 읽게된다. 이럴 경우 기존 코드가 나쁜 코드라면, 새롭게 작성할 코드도 나쁜 코드가 될 확률이 매우 높다. 그렇기에, 코드를 처음 작성할 때 부터 깨끗한 코드를 고려하며 코드를 작성해야 한다.


객체 지향 설계의 5가지 원칙

책은 객체 지향 설계의 5가지 원칙을 반복적으로 참고하며 설명한다.

5가지 원칙은 다음과 같다.

  • SRP(Single Responsibility Principle) : 클래스에는 한 가지, 단 한 가지 변경 이유만 존재해야 한다.
  • OCP(Open Closed Principle): 클래스는 확장에 열려 있어야 하며 변경에 닫혀 있어야 한다.
  • LSP(Liskov Substitution Principle): 상속받은 클래스는 기초 클래스를 대체할 수 있어야 한다.
  • DIP(Dependency Inversion Principle): 추상화에 의존해야 하며, 구체화에 의존하면 안 된다.
  • ISP(Interface Segregation Principle): 클라이언트에 밀접하게 작게 쪼개진 인터페이스를 유지한다.

깨끗한 코드를 작성하기 위해..

우리가 예술 책을 읽는다고 해서 예술가가 된다는 보장은 없다. 단지 예술가가 사용하는 기법, 스타일 등을 책으로써 접하는 것이다.

이 책도 같다. 깨끗한 코드를 작성하는 방법, 기교 등을 책으로써 접한다. 책에 나온 지식들을 습득하고, 실제 예제들과 내 코드에 적용시켜보며 고뇌의 시간을 가져야 비로소 내가 깨끗한 코드를 작성할 수 있다.

profile
소통을 잘하는 개발자가 되고 싶습니다.

0개의 댓글