문제
다음 설명에 해당하는 객체지향 설계 원칙(SOLID)의 명칭을 각각 쓰시오.
(1) 고수준 모듈과 저수준 모듈이 모두 추상화에 의존해야 한다. (2) 클라이언트가 자신이 사용하지 않는 메서드(인터페이스)에 의존하지 않도록 인터페이스를 작게 분리해야 한다.
정답
(1) DIP(의존성 역전 원칙) (2) ISP(인터페이스 분리 원칙)
해설
DIP(의존성 역전 원칙)는 모듈이 구체 구현이 아닌 추상화에 의존하게 하여 유연성을 확보하고, ISP(인터페이스 분리 원칙)는 큰 인터페이스를 작고 구체적인 인터페이스로 분리해 불필요한 의존성을 제거한다.