더북(TheBook)

3.2.5 영향을 받는 품질 속성

이해 가능성 : 이런 악취를 풍기는 추상화는 문제 도메인에 대한 직접적인 사상이 없다. 단지 도메인 엔티티의 행동 양식 일부만 표현하며, 엔티티 자체는 표현하지 않는다. 이런 추상화의 이해 가능성은 형편없다. 단일 메서드를 포함하는 클래스가 여러 개 있으면 ‘클래스 폭발’로 이어져 설계를 복잡하게 만든다. 따라서 전반적인 설계의 이해 가능성에 영향을 미친다.

변경 가능성과 확장 가능성 : 명령 추상화 악취는 추상화 자체의 변경 가능성과 확장 가능성에 영향을 미치지 않는다. 하지만 변경이나 개선을 도메인 엔티티나 개념적인 엔티티에 요구하면(다중 추상화로 실현되는) 설계 전반에 걸쳐 다중 추상화 변경을 요구할 것이다. 이는 전반적인 설계의 변경 가능성과 확장 가능성에 영향을 미친다.

재사용 가능성 : 예제 1에서 설명한 보고서 생성 기능을 고려하자. 이 기능을 다른 맥락에서 재사용하기를 원한다면, 데이터를 보고하고 이를 새로운 맥락에 맞추는 클래스와 함께 CreateReport, CopyReport, DisplayReport 클래스도 가져와야 할 것이다. 이것은 예제 1을 위한 리팩토링 제안에서 설명한 바와 같이 Report 클래스를 재사용할 때와 비교하여 훨씬 많은 노력을 요구할 것이다.

테스트 가능성 : 명령 추상화 악취를 풍기는 추상화를 자급자족할 수 있다면 테스트하기가 더 쉽다. 하지만 보통 이런 악취를 풍기는 설계에서는 단일 연산 여러 개로 여러 추상화를 집합적으로 테스트해야 한다. 이는 전반적인 설계의 테스트 가능성에 영향을 미친다.

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