문제
SOLID 원칙 중 **의존성 역전 원칙(DIP: Dependency Inversion Principle)**과 **리스코프 치환 원칙(LSP: Liskov Substitution Principle)**의 핵심 내용을 각각 설명하시오.
정답
DIP는 고수준 모듈이 저수준 모듈에 의존하지 않고 둘 다 추상화에 의존해야 한다는 원칙이다. LSP는 상위 타입의 객체를 하위 타입의 객체로 치환해도 프로그램이 정상 동작해야 한다는 원칙이다.
추상화에 의존고수준 모듈저수준 모듈상위 타입하위 타입치환 가능
해설
DIP(Dependency Inversion Principle)는 구체적인 구현체가 아닌 인터페이스나 추상 클래스에 의존하도록 설계하여 결합도를 낮추는 원칙이다. LSP(Liskov Substitution Principle)는 Barbara Liskov가 제안한 원칙으로, 상속 관계에서 부모 클래스의 인스턴스를 자식 클래스의 인스턴스로 대체해도 프로그램의 정확성이 깨지지 않아야 한다는 것을 의미한다.