[클린코드] 1장 : 깨끗한 코드

목록으로 돌아가기
  • 코드가 사라질까?
    • 코드는 사라질 가망이 전혀 없다. 코드는 요구사항을 상세히 표현하는 수단이다.
    • 코드는 점점 추상화된다. 좋은 일이지만, 이는 코드가 사라질 것이라는 근거가 되지 않는다. 결국 낮은 단계의, 기술을 명세하는 코드가 필요하기 때문이다.

  • 나쁜 코드가 초래하는 일
    • 나쁜 코드는 버그를 더욱 빈번히 초래하고, 생산성을 저하시킨다.
    • 버전이 거듭됨에도 코드를 정리하지 않으면 이는 결국 퀄리티로 직결된다.
    • 나중에 수정한다고 하는 일은 쉽지 않다. 비개발직군에서는 이에 대한 시간을 거의 투자하지 않으며, 코드를 예쁘게 변경하는 일에 대한 당위성도 설득하기 어렵다.
    • 초창기 설계를 한 팀이 수정하는 일에 들어가는 일도 많지 않다.

  • 나쁜 코드는 왜 나오는가?
    • 대부분 나쁜 코드는 프로그래머가 기한을 맞추기 위해 어쩔 수 없이 양산한다고 한다. 하지만 이는 맞지 않다. 기한을 맞추는 유일한 방법은 언제나 코드를 깨끗히 유지하는 것이다.

  • 깨끗한 코드는 무엇인가
    • 전문가들마다 의견이 다르다.
    • 이 책에서는 오브젝트 멘토 진영이 생각하는 깨끗한 코드를 소개할 것이다.
    • 전문가들에 따르면 효율성, 단순성, 가독성, 명료성, 최소 의존성 등을 이야기한다.
    • 그 외에도 주의 깊게 작성한 코드 등이 있다.

  • 코드를 잘 짜면 끝인가
    • 그렇지 않다. 언제나 깨끗하게 유지해야한다. - 보이스카우트 규칙
    • 한 번에 많이 고치거나 시간을 투자할 필요가 없다. 조금씩 변화를 주어 개선해나가도 된다.

[인상 깊었던 전문가 의견]

“… 깨끗한 코드는 언제나 누군가 주의 깊게 짰다는 느낌을 준다. 고치려고 살펴봐도 딱히 손 댈 곳이 없다. …” -마이클 페더스

→ 깨끗한 코드라는 것은 결국 관찰자가 [깨끗하다]라는 것에 대한 주관적인 견해를 코드에 대입하여 여부를 판단한다.

마찬가지로 작성자가 코드를 깨끗하게 짜려면 자신이 생각하는 깨끗함을 갖춘 코드의 조건에 대해 숙고하며 코드를 작성한다. 그렇기에 작성자가 얼마나 코드에 대해 깊이 생각했는지, 노력을 기울였는지는 코드를 보았을 때 느낄 수 있다.

그렇게 마이클 페더스가 이야기한 것 처럼 ‘주의 깊게 짰다는 느낌’을 주는 코드는 관찰자가 보았을 때 작성자가 기울인 심혈을 느낄 수 있게 된다. 또한 관찰자가 생각했을 때 깨끗함의 조건을 대입하여 코드를 고치려 해봐도 딱히 손 댈 곳이 없다면 이는 작성자가 생각하는 조건에도 부합하다는 이야기가 된다.

일상 생활에서 누군가와 대화할 때 정말 단어 하나하나에 집중하며 이야기하는 사람을 본 적 있을 것이다.

그 사람은 현재 상황 및 맥락에서 최대한 적합한 단어를 내뱉기 위해 수없이 생각하고 이야기한다.

그러한 사람들을 마주하면 그가 심려가 깊다는 생각을 쉽게 가질 수 있다.

언어와 마찬가지로 코드도 의사소통의 수단이다.

누군가가 작성한 코드를 보면 그 사람의 의도를 파악할 수 있으며, 나아가 그 사람이 얼마나 주의를 기울였나 볼 수 있게 된다.

그러므로 깨끗한 코드를 보면 작성자가 정말 주의를 기울였다는 것이 느껴지며, 때로는 경외감도 들 수 있다고 생각한다.

author-profile
Written by 상 한규

댓글