더북(TheBook)

1.3.3 지속적으로 복잡성을 해결하는 것이 비용 효율적이다

복잡성을 정기적으로 해결하면 시간과 비용을 합리적인 수준으로 유지할 수 있다. 복잡성 관리를 미루면 훨씬 더 많은 비용이 발생하며, 리팩터링이 더욱 어렵고 시간이 많이 걸릴 수 있다.

이를 이해하는 데는 워드 커닝햄(Ward Cunningham)이 만든 용어인 기술 부채(technical debt)라는 비유가 도움이 된다. 이 말은 코딩 문제를 재정적 부채로 보는 개념이다. 과거의 잘못된 결정으로 인해 발생하는 추가적인 유지보수 노력은 기술 부채의 이자에 해당한다. 기술 부채 개념은 단순한 객체지향 디자인과 밀접하게 관련된다. 코드 구조를 개선하지 않으면 복잡성이 증가하면서 이자로 내야 할 비용이 심하게 커진다.

나는 코드 기반에서 어떤 부분이 매우 복잡하고 유지보수가 어렵다는 사실을 모두가 알면서도 아무도 감히 리팩터링을 시도하지 않는 상황을 본 적이 있다. 정말이지 그런 상황에 빠지지 않기를 바란다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.