모든 이들이 코드를 작성할때, 좋은 코드를 작성하려 하는 건 당연할 것이다.
1. 클린코드란 무엇을 말하는 것일까?
먼저 클린코드에 대해 소프트웨어의 대가들의 생각을 정리해 보았다.
- 클린코드는 한 가지를 제대로 한다 - 바야네 스트롭스트룹(C++창시자)
- 훌륭한 프로그래머는 사람이 이해할 수 있는 코드를 짠다. - 마틴파울러(리팩토링 저자)
- 클린코드는 단순하고 직접적이다. - 그레디 부치 (객체지향 대가)
- 특정 목적을 달성하는 방법은 여러가지가 아니라 하나만 제공한다. - 데이브 토마스 (실용주의 프로그래머)
- 클린코드는 언제나 누군가 주의 깊게 짰다는 느낌을 준다. - 마이클 페더즈 ("Working Effective with Legacy Code" 저자)
- 코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 클린코드라 불러도 되겠다. - 워드 커닝엄 (위키창시자, 익스트림 프로그래밍 창시자)
공통점은 다음과 같다.
코드를 작성한 의도와 목적이 명확하며 다른 사람이 쉽게 읽을 수 있어야 한다는 점.
코드의 가독성이 좋다는 것은 다른 사람이 코드를 이해하는데 들이는 시간을 최소화하는 방식으로 작성된다는 것을 의미한다.
2. 클린코드는 왜 필요한가?
개발자가 새로운 기능을 추가, 수정하기 위해 코드를 읽고 쓰는 비율을 따져보았을때 읽기:쓰기 = 10:1 에 달한다고 한다. 이처럼 수정 과정에서 읽기 비율이 높기 때문에 읽기 쉬운 코드는 결과적으로 개발시간을 단축할 수 있는 효과적인 방법일 수 밖에 없다.
소프트웨어 노후화 증상과 지표들
(출처:소프트웨어공학센터 공학트렌드 제118호)

3. 클린코드를 만드는 규칙들
- 의미있는 이름
변수나 클래스, 메서드의 이름을 짓을 때, 아래와 같은 질문을 통해 의도가 분명한 이름을 사용하는 것이 중요하다.
- 왜 존재해야 하는가?
- 무슨 작업을 하는가?
- 어떻게 사용하는가?
클래스는 행위의 주채로써 명사나 명사구로 표현하고, 함수 이름은 클래스가 행하는 행위로서 동사 또는 동사구를 사용한다.
-
명확하고 간결하게 주석달기
이해를 돕기 위해 주석을 코드에 적을때, 목적에 대해 반드시 생각해 보아야한다. 필요 없는 주석이나 이상한 주석은 코드를 읽는 것을 더욱 어렵게하기 때문이다.
-
보기좋게 배치하고 꾸며라
코드도 글과 마찬가지로 읽는 사람이 편하게 읽을 수 있도록 구성하는 것이 중요하다.