좋은코드,, 클린한코드,, 과연 기준은 무엇이고 어떤 코드를 의미하는 것인지 차근차근 알아가보자.
저명한 개발자들의 이야기를 먼저 들어보자면 C++ 창시자인 Bjarne Stroustrup는 아래와 같이 말하였다.
“I like my code to be elegant and efficient.
The logic should be straightforward and make it hard for bugs to hide, the dependencies minimal to ease maintenance, error handling complete according to an articulated strategy, and performance close to optimal so as not to tempt people to make the code messy with unprincipled optimizations. Clean code does one thing well.”
-Bjarne Stroustrup, inventor of ‘C++-
즉,코드가 우아하다는 의미는 군더더기 없이 깔끔하다는 의미이고, 효과적이라는 것은 기능을 수행하는 코드를 최대한 작은 라인으로 구현한다는 의미로 보면 될 것 같다 또한 클린코드는 직접적이고 에러 처리가 잘 되어 있으며 하나의 역할을 수행한다고 말한다.
클린코드의 가장 중요한 요소 중 하나는 가독성이라고 생각한다. 즉, 프로젝트를 진행하는 모든 팀원이 이해(understandability)하기 쉽도록 작성된 코드가 클린코드라고 생각한다.
일반적으로 기존 코드를 변경하고자 할 때, 해석하는 시간과 수정하는 비율이 10:1이라고 합니다. 예를 들면 코드를 변경하기 위해서 걸리는 전체 시간이 10시간이라고 하면, 사전에 코드를 분석하는 시간이 9시간 이상 걸린다는 것이다..
이렇게 어마무시한 시간 낭비를 줄일 수 있는 것이 클린 코드라고 생각한다.
또한 오류의 위험성도 줄일 수 있는 가장 쉬운 방법이다.
결론없다. 결국 투입되는 비용 대비 결과물이 있어야 하는 엔지니어링의 영역이기 때문에 상황에 따라 트레이드 오프를 고민하여 코드를 관리해나가는 것이 무엇보다 중요하다고 생각한다.