나쁜 코드란?
나쁜 코드는 생산성을 크게 낮춘다. 지금 당장 나쁜 코드로 작성하는 것이 더 빠르게 업무를 마칠 수 있을 것이라는 유혹을 줄 수 있지만 이후 유지보수할 시간이 다가오거나 새로운 기능 추가 또는 수정이 필요할 때 나쁜 코드로 인한 대가를 크게 치르게 될 것이다. 실제로 간단한 기능 수정이지만 너무 많은 부분에 의존하고 있어서 쉽게 코드를 건드리지 못하고 아예 새로 만들어야 하는 상황을 겪은 적이 있었다. 이 책에서는 나쁜 코드가 나쁜 코드를 유발한다고 한다. 나쁜 코드는 이후 더 나쁜 코드를 작성하라고 유혹한다.
시간이 없어서 나쁜 코드를 작성했다는 말은 전문가가 아니라는 뜻이다. 진정한 개발자라면, 그리고 전문가라면 최대한 좋은 코드를 작성해야 한다. 그리고 시간이 없다는 것은 핑계다. 가장 빠르게 마감 일자를 맞추는 방법은 지속적으로 좋은 코드를 작성하는 것이다. 나쁜 코드는 나쁜 코드를 유발해 주어진 시간 안에 제품을 만들지 못하도록 할 것이다.
깨끗한 코드란?
여러 전문가들의 깨끗한 코드에 대한 의견을 풀어서 설명해주고 있다. 요약하자면 읽기 쉽고, 수정에 용이하며, 예상한대로 동작하는 코드가 깨끗한 코드다. 깨끗한 코드는 있어야 할 곳에 있으며 한 가지 일을 제대로 한다. 또 흥미로운 부분은 깨끗한 코드는 테스트 코드가 있는 코드라는 의견이다.
지금까지 나는 테스트 코드를 작성하지 않았기 때문에 나쁜 코드만 양산해왔다. 나름 가독성을 높이고 수정하기 쉬운 코드를 작성하려고 노력을 했지만 테스트 코드가 없었기 때문에 이는 나쁜 코드였다. 프론트엔드에서 테스트의 중요성을 얼마 전에 깨달았는데, 단위 테스트를 아직 어떻게 해야 할지 감이 잡히지 않는다. 클린 코드를 읽은 후에 테스트와 관련된 책을 읽고 싶다.