clean code 에 대하여

정성욱·2019년 11월 25일
0

모든 이들이 코드를 작성할때, 좋은 코드를 작성하려 하는 건 당연할 것이다.

1. 클린코드란 무엇을 말하는 것일까?

먼저 클린코드에 대해 소프트웨어의 대가들의 생각을 정리해 보았다.

  1. 클린코드는 한 가지를 제대로 한다 - 바야네 스트롭스트룹(C++창시자)
  2. 훌륭한 프로그래머는 사람이 이해할 수 있는 코드를 짠다. - 마틴파울러(리팩토링 저자)
  3. 클린코드는 단순하고 직접적이다. - 그레디 부치 (객체지향 대가)
  4. 특정 목적을 달성하는 방법은 여러가지가 아니라 하나만 제공한다. - 데이브 토마스 (실용주의 프로그래머)
  5. 클린코드는 언제나 누군가 주의 깊게 짰다는 느낌을 준다. - 마이클 페더즈 ("Working Effective with Legacy Code" 저자)
  6. 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 클린코드라 불러도 되겠다. - 워드 커닝엄 (위키창시자, 익스트림 프로그래밍 창시자)

공통점은 다음과 같다.

코드를 작성한 의도와 목적이 명확하며 다른 사람이 쉽게 읽을 수 있어야 한다는 점.
코드의 가독성이 좋다는 것은 다른 사람이 코드를 이해하는데 들이는 시간을 최소화하는 방식으로 작성된다는 것을 의미한다.

2. 클린코드는 왜 필요한가?

개발자가 새로운 기능을 추가, 수정하기 위해 코드를 읽고 쓰는 비율을 따져보았을때 읽기:쓰기 = 10:1 에 달한다고 한다. 이처럼 수정 과정에서 읽기 비율이 높기 때문에 읽기 쉬운 코드는 결과적으로 개발시간을 단축할 수 있는 효과적인 방법일 수 밖에 없다.

소프트웨어 노후화 증상과 지표들
(출처:소프트웨어공학센터 공학트렌드 제118호)
스크린샷 2019-11-25 오후 8.54.24.png

3. 클린코드를 만드는 규칙들

  1. 의미있는 이름
    변수나 클래스, 메서드의 이름을 짓을 때, 아래와 같은 질문을 통해 의도가 분명한 이름을 사용하는 것이 중요하다.
  • 왜 존재해야 하는가?
  • 무슨 작업을 하는가?
  • 어떻게 사용하는가?
    클래스는 행위의 주채로써 명사나 명사구로 표현하고, 함수 이름은 클래스가 행하는 행위로서 동사 또는 동사구를 사용한다.
  1. 명확하고 간결하게 주석달기
    이해를 돕기 위해 주석을 코드에 적을때, 목적에 대해 반드시 생각해 보아야한다. 필요 없는 주석이나 이상한 주석은 코드를 읽는 것을 더욱 어렵게하기 때문이다.

  2. 보기좋게 배치하고 꾸며라
    코드도 글과 마찬가지로 읽는 사람이 편하게 읽을 수 있도록 구성하는 것이 중요하다.

profile
Show me the code

0개의 댓글