정의 SOLID 중 I에 해당한다. ISP는 Interface Segregation Principle의 약자로, 인터페이스 분리 원칙이다. 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙이다. (인터페이스의 SRP) ISP의 장점 소프트웨어를 디커플링된 상태로 유지하게 해준다. 리팩토링, 변경, 재배포를 더 쉽게 할 수 있게 해준다. 이 글을 쓰다가 문득, “그럼 인터페이스에 메소드를 하나씩만 넣으면 되지 않을까?” 생각했는데, 생각만 해도 끔찍하더라, 뭐든 적당한 게 좋다. 일단 코드 크기부터가 미칠 것 같다. 위반 사례 인터페이스가 클라이언트가 사용하지 않는 메소드를 가지는 경우 어떻게 될까? 아래 예시는 프린터가 스캔과 출력 메소드를 가지는 경우이다. type Printer ..