2.4 책에서 다루는 악취 범위
악취는 아키텍처, 설계(즉, 마이크로아키텍처), 구현 수준으로 분류가 가능하다. 또 악취를 구조적이거나 행동적인 관점에서 바라볼 수도 있다. 책에서는 구조적인 설계 악취에만 초점을 맞춘다(그림 2.2 참조).

▲ 그림 2.2 책에서 다루는 악취 범위
책에서는 자바, C#, C++ 등 인기 있는 객체 지향 언어에 초점을 맞춰 악취를 설명한다. 또 세 언어가 모두 지원하는 언어 기능으로 제한한다. 예를 들어, 다중 상속은 자세히 다루지 않으며, 최대한 단일 상속으로 설명을 제한한다. 자바와 C#에서는 다중 클래스 상속을 지원하지 않기 때문이다.
책에서 다루는 설계 악취 중 우리가 직접 고안한 내용은 아무것도 없다는 사실에 주목하자. 책에서 다루는 모든 설계 악취는 다른 연구 논문, 책, 설계 분석 도구에 포함된 문서에서 이미 제시했거나 논의했다.