클린 코드(Clean Code) 리뷰 - 01

나쁜 코드를 경험하다. 그리고 나도 크게 다르지 않았다.

나중은 오지 않는다. - 르블랑의 법칙(Leblanc’s Law)

그러기에, 클린 코드를 작성해라.

무의미한 변수 이름, 의미가 모호한 메소드, 주석 처리된 코드, 이해할 수 없는 주석 등으로 곤란한 적이 많았다. 이러한 나쁜 코드는 어떠한 로직을 구현, 수정해야 하기 위해 코드해석에 많은 시간의 할애를 필요로 했다. 이러한 경험으로 인해 개발할 때 이름, 로직 등을 훗날을 고려하며 구현해야 한다고 생각했다. 나 나름대로 읽기 쉬운 코드를 작성하기 위해 노력하였다. 하지만 시간에 쫓기는 개발에 임하면서 로직이 복잡하면 복잡할수록 주석이 필수불가결한 상태가 되었다. 그리고 시간에 여유가 있어지면 리팩토링하겠다는 자기합리화와 함께 나의 개발은 이어져갔다. 하지만 시간이 흐르고, 내가 구현한 코드를 보았을 땐 Git 로그를 보기 전까진 내가 구현한 코드인지 알지 못했다.

클린 코드(Clean Code)란 무엇인가?

직관적이며 우아하며 세련된 코드

이 책에서는 다양한 프로그래머가 생각하는 클린 코드에 관해 이야기를 해준다. 클린 코드의존성을 최대한 줄이며, 한 가지 일에 집중하며, 의도를 분명히 드러내며, 테스트 케이스가 존재하며, 중복되지 않아야 하며, 명백하고 단순해야 한다. 이처럼 모든 조건을 충족하여 이상적인 코드를 작성하면 좋겠지만, 현실은 녹록지 않다. 하지만 이와 같은 조건들을 충족하기 위한 방향으로 코드를 작성해야 함은 틀림없다.

그리하여, 내가 생각하는 클린 코드란 직관적이며 우아하며 세련된 코드이다.

  • 코드는 직관적이어야 한다. 충분한 주석 및 설명 없이도 개발자라면 코드 그대로 읽혀야 한다. 변수와 메소드 이름 모두 정확한 의미를 지니며, 행위에서도 명확해야 한다.
  • 코드는 우아해야 한다. 충분한 테스트로 증명되며, 의존성을 줄이고, 재사용성을 고려야 해야 한다.
  • 코드는 세련되어야 한다. 시시각각으로 변하는 시장과 그에 맞는 요구에 대응하기 위해서는 추가 및 수정이 쉽게 반영되어야 한다.

마치며..

클린 코드가 무엇인지를 알아봤다. 또한, 왜 클린 코드 작성을 해야만 하는지에 대해서 다시 한 번 생각하게 되었다. 위에서 이야기했듯이 나중은 오지 않으니, 클린 코드 작성에 시간을 좀 더 할애해야겠다.

Leave a comment