인터페이스 분리 원칙은 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다
이건 이해를 쉽게 하려면 클라이언트가 자신이 이용하지 않는 메서드에 의존 '하는' 상황을 보면 바로 이해할 수 있다.
'만들면서 배우는 클린 아키텍처' 에서는 이를 두고 '넓은' 의 수식어를 사용한다. User1, User2, User3 은 각각 op1, op2, op3 만을 사용하고 각각 여기에만 의존하면 되는데 OPS 가 op1, op2, op3 모두를 가지고 있음으로 인해서 불필요한 의존관계들이 만들어진 모습이다.
그래서 위와 같이 분리를 해주면 불필요한 의존 관계를 제거할 수 있게 된다.
ISP 와 아키텍처
좋은 아키텍처의 핵심 중 하나는 수정이 발생했을때 수정 비용이 최대한 저렴해야한다는 것이다. 수정 비용이 저렴하기 위해서는 당연히 최대한 분리 되어 있는 것이 유리하고 ISP 를 지킨다면 분리에 최선을 다하는 것이 되니까 결국 좋은 아키텍처에 가까워진다고 말할 수 있다.