정보처리기사 실기소프트웨어 설계SOLID 원칙난이도 3DESCRIPTIVE

정보처리기사 실기 SOLID 원칙 기출문제 #744

문제

SOLID 원칙 중 **의존성 역전 원칙(DIP: Dependency Inversion Principle)**과 **리스코프 치환 원칙(LSP: Liskov Substitution Principle)**의 핵심 개념을 각각 설명하고, 각 원칙이 위반될 때 발생하는 주요 문제점을 구체적으로 서술하시오.

정답

DIP는 고수준 모듈이 저수준 모듈에 의존하지 않고, 둘 다 추상화에 의존해야 한다는 원칙이다. 구체적 구현이 아닌 인터페이스나 추상 클래스에 의존함으로써 변경에 유연하게 대응할 수 있다. DIP 위반 시 고수준 모듈이 저수준 모듈의 구현 세부사항에 강하게 결합되어 확장성과 테스트 용이성이 떨어진다. LSP는 상위 타입의 객체를 하위 타입의 객체로 치환해도 프로그램의 정확성이 깨지지 않아야 한다는 원칙으로, 상속 관계에서 is-a 관계가 행위적으로도 성립해야 함을 의미한다. LSP 위반 시 다형성을 안전하게 사용할 수 없고, 런타임 오류나 예상치 못한 동작이 발생할 수 있다.

의존성 역전DIP고수준 모듈저수준 모듈추상화리스코프 치환LSP상위 타입하위 타입치환다형성is-a 관계행위적 호환

해설

이 문제는 SOLID 원칙 중 상대적으로 이해하기 어려운 DIP와 LSP에 대한 깊이 있는 이해를 요구한다. DIP는 단순히 인터페이스 사용이 아니라 의존성의 방향을 역전시키는 개념이며, 고수준 정책이 저수준 세부사항에 의존하지 않도록 하는 것이 핵심이다. LSP는 단순한 상속이 아니라 행위적 호환성을 보장해야 한다는 원칙으로, 사전조건을 강화하거나 사후조건을 약화시키면 안 된다. 각 원칙의 위반 사례와 문제점까지 구체적으로 서술해야 하므로 높은 수준의 이해가 필요하다.

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.