User1은 op1메서드만, User2은 op2메서드만, User3은 op3메서드만 사용한다고 가정하자.
op2를 수정 재배포를 할 경우, User1과 User3은 op2를 사용하지 않음에도 불구하고, 재 컴파일 후 다시 배포해야한다.
이는 의존성 문제인데, 불필요한 의존성을 줄이기 위해 인터페이스를 분리해야한다.
ISP는 언어 타입에 의존한다.
ex) 정적타입일지라도, JAVA는 언어만의 독특한 바인딩 형식으로 인해 op2를 수정하더라도 User2만 컴파일 하면 된다.
필요 이상으로 많은 것을 포함하는 모듈에 의존하는 것은 해롭다. 소스코드 뿐만 아니라 아키텍처 수준에서도 동일한 상황이 발생할 수 있으니 유의하자.
불필요한 기능이 많은 것에 의지하지말자.