더북(TheBook)

3.7.1 근거

중복 방지는 추상화 원칙을 효율적으로 응용하는 중요한 요소 기술이다.

두 가지 이상의 추상화 이름이 동일하다면 설계의 이해 가능성에 영향을 미친다. 클라이언트 코드 개발자는 혼동을 느끼며 코드에서 사용해야 하는 추상화를 명확하게 선택하지 못한다.

두 가지 이상의 추상화 구현이 동일하다면(즉, 코드 중복이 있다면) 유지보수는 어렵다. 이런 추상화 중 하나의 구현에 변경이 일어나면 다른 모든 중복 구현에도 반영할 필요가 있을 것이다. 이것은 부하를 일으킬 뿐만 아니라 감지하기 힘들며, 추적하기 어려운 버그의 발생 가능성을 높인다. 중복을 최대한 회피하여 필요한 변경의 범위를 줄여야 한다.

요약하면, 이 악취는 DRYDon’t Repeat Yourself 원칙의 위반을 나타낸다. DRY 원칙에 따르면, 모든 지식은 반드시 시스템 내부에서 모호하지 않은 단일 표현으로 나타나야 한다. 만일 DRY 원칙을 따르지 않으면, 시스템 내부에서 특정 구성 요소의 변경은 논리적으로 관련되지 않은 다른 구성 요소에도 변경을 요구하므로 유지보수가 어렵다. 따라서 설계의 추상화 사이에 중복이 있기 때문에 이런 악취를 ‘중복된 추상화’로 명명한다.

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