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

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

문제

객체지향 설계 원칙 중 **리스코프 치환 원칙(LSP: Liskov Substitution Principle)**과 **의존성 역전 원칙(DIP: Dependency Inversion Principle)**의 핵심 개념을 각각 설명하고, 이 원칙들이 위반될 때 발생할 수 있는 구체적인 문제점을 함께 서술하시오.

정답

LSP는 상위 타입의 객체를 하위 타입의 객체로 치환해도 프로그램의 정확성이 깨지지 않아야 한다는 원칙으로, 상속 관계에서 is-a 관계가 행위적으로도 성립해야 함을 의미한다. 위반 시 런타임 오류나 예상치 못한 동작이 발생할 수 있다. DIP는 고수준 모듈이 저수준 모듈에 의존하지 않고 둘 다 추상화에 의존해야 한다는 원칙으로, 구체적 구현보다는 인터페이스나 추상 클래스에 의존해야 함을 의미한다. 위반 시 모듈 간 강한 결합이 발생하여 변경에 취약한 시스템이 된다.

리스코프 치환LSP의존성 역전DIP추상화 의존치환 가능성강한 결합is-a 관계행위적 호환성

해설

LSP는 상속 관계에서 단순히 구문적 호환성뿐만 아니라 의미적, 행위적 호환성까지 보장해야 함을 강조하는 원칙입니다. Rectangle-Square 문제가 대표적인 LSP 위반 사례입니다. DIP는 전통적인 의존성 방향을 뒤바꿔 안정적인 추상화에 의존하도록 하는 원칙으로, 의존성 주입(Dependency Injection)의 이론적 근거가 됩니다.

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

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