2.5.3 악취를 문서화하는 템플릿
악취 기술 목적으로 통일된 템플릿을 채택하여 다양한 설계 악취를 일관성 있게 기술했다. 책에서는 표 2.4에 제시한 템플릿을 사용하여 모든 악취를 기술한다.
▼ 표 2.4 책에서 사용하는 설계 악취 템플릿
템플릿 구성 요소 |
설명 |
이름과 설명 |
명명 방식을 기반으로 간결하면서도 직관적인 이름(두 단어로 구성, 첫 번째 단어는 형용사, 두 번째 단어는 위반된 주요 설계 원칙)을 사용한다. 이름 뒤에는 가능한 형태와 더불어 설계 악취를 간결하게 기술하는 내용이 이어진다. |
근거 |
잘 알려진 설계 원칙과 요소 기술이라는 맥락에서 바라본 설계 악취에 대한 이유와 타당성(설계 원칙을 자세히 나열한 목록은 부록 A 참조) |
잠재적인 원인 |
이 냄새의 출현과 관련하여 전형적인 원인 목록(모든 내용을 시시콜콜 나열하지 않은, 경험을 바탕으로 하는 목록) |
예제 |
악취를 강조하는 한 가지 이상의 예제다. 악취가 여러 형태로 드러나며, 구체적인 예제를 사용하여 각 형태를 기술할 수도 있다. |
리팩토링 제안 |
설계 악취를 리팩토링하는 고차원 제안·단계와 예제 절에서 설명한 각 예제를 대상으로 가능한 리팩토링 제안을 포함한다. |
영향을 받는 품질 속성 |
악취로 부정적인 영향을 받는 설계 품질 속성이다. 악취 맥락 관점에서 설명에 포함된 설계 품질 속성 집합은 이해 가능성, 변경 가능성, 확장 가능성, 재사용 가능성, 테스트 가능성, 안정성(표 2.1 참조)을 포함한다. |
다른 이름 |
설계 악취를 기술하려고 문헌에서 문서화된 다른 이름이다. 이는 기본적으로 동일하지만, 문헌에서 다르게 표현한 다른 악취 변종을 포함한다. 변종은 설계 악취의 특수한 형태나 더 일반적인 형태를 포함할 수 있다. |
현실적인 고려 사항 |
때로는 언어나 플랫폼 제한과 같은 제약 때문에, 또는 전체 설계에서 더 큰 문제를 해소하려고 실제 맥락에서 악취를 일으킨 특정 설계 결정을 의도적으로 내릴 수 있다. 이 절은 이런 고려 사항을 시시콜콜 나열하지 않은 목록 형태로 제공한다. |
3~6장까지는 추상화, 캡슐화, 모듈화, 계층 원칙을 위반하는 악취를 설명한다.