개발_프로그래밍

클린 아키텍처 - 10장. ISP: 인터페이스 분리 원칙 Interface Segregation Principle

_랄프_ 2022. 9. 2. 13:42
728x90

10장 ISP: 인터페이스 분리 원칙 Interface Segregation Principle

User1이 op2와 op3을 사용하지 않음에도 이 두 메소드가 OPS에 포함되어 있으므로 User1은 OPS에 의존성을 가진다. op2 소스가 변경되면 User1도 재컴파일과 재배포를 해야 한다.

 

이런 경우는 아래 그림과 같이 인터페이스로 분리하여 해결할 수 있다.

 

자바와 같은 정적 타입 언어가 아닌 루비나 파이썬 같은 동적 타입 언어의 경우는 위와 같은 문제를 초래하는 import, use, include가 없기 때문에 소스코드 의존성이 아예 없으므로 재컴파일과 재배포가 불필요하다. 그래서 동적 타입 언어는 보다 유연하고 결합도가 낮은 시스템을 만들 수 있기 때문에 ISP를 아키텍처가 아닌 언어와 관련된 문제라고 할 수도 있다.

물론 그렇다 하더라도 좀더 근본적으로 보면, 필요 이상으로 많은 걸 포함하는 모듈에 의존하는 경우는 불필요한 재컴파일과 재배포의 가능성이 더 크기 때문에 결국 이는 좋은 방법은 아닌 것이다.

<11장에서 계속>

 

 
728x90
반응형