CHAPTER
1
기술 부채
설계 악취Design Smells를 해소하는 리팩토링 여정을 시작하기 전에, 먼저 가장 근본적인 질문 하나를 던져 보자. 설계 악취는 무엇이며, 설계를 리팩토링하여 악취를 제거하는 것은 왜 중요한가?
프레더릭 브룩스는 「맨먼스 미신」[6]에서 소프트웨어에 내제된 특성(예 : 복잡성, 적합성, 변경 가능성, 비가시성)이 설계를 ‘근본적으로’ 어렵게 만든다고 설명한다. 이 어려움을 해소하는 기본 요건은 좋은 설계 관례다. 이런 설계 관례의 하나로 소프트웨어 설계자 Software Designer는 설계 결정의 결과로 드러날 수 있는 설계 악취를 인지하고 해소해야만 한다. 책에서 주목하는 주제도 바로 이것이다. 그렇다면 무엇을 설계 악취라고 할까?
설계 악취는 설계 품질에 부정적인 영향을 미치고 기본 설계 원칙을 위반하는 설계상의 특정 구조다.