clean-architecture-book-thumbnail

인터페이스 분리 원칙(ISP)은 아래 다이어그램에서 이름이 유래했다.

그림 10.1 인터페이스 분리 원칙

그림 10.1 인터페이스 분리 원칙

User1: op1, User2: op2, User3: op3 만 사용한다고 가정한다면

  • User1의 소스 코드는 op2, op3을 사용하지 않음에도 의존한다.
  • OPS 클래스에서 op2의 소스 코드가 변경되면 User1도 컴파일 후 배포해야 한다.

이러한 문제는 아래 그림처럼 오퍼레이션을 인터페이스 단위로 분리하여 해결할 수 있다.

그림 10.2 분리된 오퍼레이션

그림 10.2 분리된 오퍼레이션

Table of Contents

ISP와 언어

  • 언어 타입(정적, 동적 등)에 따라 소스 코드 의존성 여부가 다르다.
  • 따라서, ISP를 아키텍처가 아니라, 언어와 관련된 문제라고 결론내릴 여지가 있다.

ISP와 아키텍처

  • 필요 이상으로 많은 걸 포함하는 모듈에 의존하는 것은 해로운 일이다.
  • 불필요한 재컴파일과 재배포를 강제하기 때문이다.

아키텍처 수준에서도 마찬가지 상황이 발생한다.

결론

10장에서 배울 수 있는 교훈

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

References

  • 모든 출처는 Clean Architecture 도서에 있습니다.