Post

[독서] Clean Code - Ch.1

드디어 그 유명한 클린코드의 책을 펼쳤다!
그동안 읽어야지, 하고 매일 할일 목록에 클린 코드 1시간 읽기를 써두었지만.. 세모표시조차 되지 못하고 지나가버렸었다.
드디어 책을 펼치는 것에 성공했으니, 포스트에 잘 정리하면서 책을 최대한 빨리 읽어보도록 하겠다.

Ch 1. 깨끗한 코드

코드는 요구사항을 표현하는 언어이다. 프로그램이 원하는대로 동작하기 위해서는 요구사항을 명확하게 표현해야 한다.
나쁜 코드로 작성한 코드를 고치는 데에는 많은 노력이 필요하고, 나쁜 코드로 이루어진 시스템에서 기능을 추가하고 수정하는 일 또한 많은 노력이 필요하다. 결국, 빠르고 효율적으로 일을 처리하기 위해서는 언제나 코드를 깨끗하게 유지하는 습관을 들여야 한다.

깨끗한 코드란?

그렇다면 깨끗한 코드란 무엇인가?

  • 한가지에 ‘집중’하는 코드
    깨끗한 코드의 함수와 클래스, 모듈은 외부 상황에 상관 없이 자신의 임무를 수행한다.

    친구에게 좋은 객체지향적 설계에 대해 들었을 때, 클래스는 외부 조건은 전혀 알지 못한채로 설계되는 것이 가장 올바르게 설계한 것이라는 이야기를 들었던 기억이 난다. 어떻게 보면 쉬운 이야기지만, 참 어려운 것 같다.

  • ‘가독성’이 좋은 코드
    잘 쓴 문장처럼 읽혀야 한다.

    ‘명쾌한 추상화’

    • 추측이 아니라 사실에 기반해야 한다.
    • 반드시 필요한 내용만 담아야 한다.
  • 다른 사람이 고치기 쉬운 코드
    테스트케이스가 반드시 존재해야 한다. - 테스트 주도 개발
    작을수록 좋다.
  • 주의깊게 작성한 코드
    더이상 고칠 점이 없을 정도로, 세세한 사항까지 고려해 작성해야 한다.
  • 론 제프리스가 말하는 깨끗한 코드란?
    • 우선 중복을 최소화한다.
    • 최대한 명확하게 표현한다.
      • 예를 들어, 이름을 명확하게 짓는다.
    • 작게 추상화한다.
      • 다른 코드는 추상 클래스/추상 메서드가 제공하는 기능을 이용하도록 한다. 이렇게 구현할 경우 실제 구현 내용을 바꾸어도 다른 코드에 영향을 주지 않는다.
  • 의도하는 기능을 그대로 수행하는 코드

우리는 코드를 작성하면서 이미 작성된 기존의 코드를 읽는 데에 훨씬 더 많은 시간을 할애한다. 즉, 읽기 쉬운 코드를 작성하면 새로운 코드를 짜기가 더 쉬워진다는 듯이다.

보이스카우트 규칙

체크아웃할 때 보다 좀 더 깨끗한 코드를 체크인한다면, 코드는 더 나빠지지 않는다.
한번에 코드를 모두 보수하려고 하지 말고, 시간이 지날 수록 조금씩 코드가 좋아지는 프로젝트를 만들자.

이 당연한 규칙은 지키기가 무진장 어렵다. 나는 그동안 프로젝트를 진행하며 시간에 쫓겨 ‘일단 이렇게 작성하고 나중에 고치지 뭐’ 하는 식으로 ‘더 나쁜 코드’를 체크인한 경우가 많았다. 그렇지만 깨끗한 코드를 작성하고, 한두줄씩 이전의 코드를 더 깨끗하게 만들어나간다면 분명 프로젝트는 점점 더 보기쉬워질 것이 분명하다.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.