문제
객체지향 설계 원칙 중 **의존성 역전 원칙(DIP: Dependency Inversion Principle)**의 의미를 설명하시오.
정답
DIP는 고수준 모듈이 저수준 모듈에 직접 의존하지 않고, 둘 다 추상화에 의존해야 한다는 원칙이다. 구체적인 구현보다는 인터페이스나 추상 클래스에 의존함으로써 시스템의 유연성과 확장성을 높인다.
의존성 역전DIP추상화고수준 모듈저수준 모듈인터페이스
해설
의존성 역전 원칙은 전통적인 의존성 방향을 뒤바꾸어, 상위 계층이 하위 계층의 구체적인 구현에 의존하지 않도록 하는 원칙입니다. 대신 둘 다 추상화된 인터페이스에 의존하게 함으로써 변경에 유연하게 대응할 수 있습니다. 이는 의존성 주입(Dependency Injection) 패턴의 이론적 기반이 됩니다.