더북(TheBook)

3.4.1 근거

추상화 원칙을 적용하는 요소 기술은 각 추상화를 위한 단일 책임과 의미 있는 책임 할당이다. 특히 SRP가 말하는 추상화에는 잘 정의된 단일 책임이 있어야 하며, 이 책임은 해당 추상화 내부에서 완전히 캡슐화해야 한다. 다면적인 추상화로 고통받는 추상화는 자신에게 할당된 책임이 둘 이상이므로 추상화 원칙을 위반한다.

단일 추상화 내부에서 여러 책임을 실현하면 추상화의 메서드 사이에서 응집력이 낮아질 수 있다. 원래 이런 책임은 제대로 정의해야 하고, 분명하며 응집된 추상화로 구분해야 한다. 따라서 다면적인 추상화 내부에서 응집력이 낮아지면 모듈화 원칙을 위반한 것이다.

추상화가 여러 책임을 질 때는 이런저런 이유로 추상화가 영향을 받을 것이므로 변경이 필요하다는 사실을 짐작할 수 있다. 경험에 따르면, 설계 구성 요소에서 일어나는 잦은 변경과 발생한 결함 수 사이에는 종종 강한 상관관계가 존재한다. 이것은 다면적인 추상화가 엄청난 결함으로 고통받기 쉽다는 사실을 의미한다. 다면적인 추상화는 설계 품질을 떨어뜨리므로 리팩토링을 거쳐 기술 부채를 해소하며 더 이상 쌓지 말아야 한다. 추상화에 여러 ‘책임’이나 ‘측면’이 존재하므로, 이런 악취를 ‘다면적인 추상화’로 명명한다.

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