본문 바로가기
기술도서

클린 아키텍처 요약 - 3부. 설계원칙 (3)

by jasNote 2024. 6. 29.

10장. ISP : 인터페이스 분리 원칙

클라이언트가 자신이 사용하지 않는 불필요한 인터페이스에 의존하지 않아야 한다. 인터페이스의 단일 책임 원칙으로 생각해 볼 수 있다.

ISP와 아키텍처

아래와 같은 구조로 S → F, F → D 의존하고 있다. 이때 D에 결함이 생겼고 F와는 관계없는 기능이라고 하자. 하지만 D의 내부 변경이 일어나면 의존 관계로 인해 F를 재배포할 수도 있다. 더 심각한 문제는 S까지 영향을 준다는 사실이다.

  • System (S) → Framework (F) → Database (D)

 

결론

불필요한 무언가에 의존하면 예상치 못한 문제에 빠진다.

 

11장. DIP : 의존성 역전 원칙

추상에 의존하며 구체에는 의존하지 않는다.

 

안정된 추상화

  • 변동성이 큰 구체 클래스를 참조하지 않기.
  • 변동성이 큰 구체 클래스로부터 파생하지 않기.
  • 구체 함수를 오버라이드 하지 않기
  • 구체적이며 변동성이 크다면 절대로 그 이름을 언급하지 않기.

 

결론

의존성은 더 추상적인 엔티티가 있는 쪽으로만 향한다.