13. 클래스 설계원칙에 대한 바른 설명은?
① 단일 책임원칙 : 하나의 클래스만 변경 가능 해야한다.
❷ 개방-폐쇄의 원칙 : 클래스는 확장에 대해 열려 있어야 하며 변경에 대해 닫혀 있어야 한다.
③ 리스코프 교체의 원칙 : 여러 개의 책임을 가진 클래스는 하나의 책임을 가진 클래스로 대체되어야 한다.
④ 의존관계 역전의 원칙 : 클라이언트는 자신이 사용하는 메소드와 의존관계를 갖지 않도록 해야 한다.
✅ 정답: ② 개방-폐쇄의 원칙
📚 각 보기에 대한 해설
① 단일 책임 원칙 (SRP: Single Responsibility Principle)
- 하나의 클래스는 단 하나의 책임만 가져야 한다.
- 즉, 한 클래스가 변경되는 이유는 오직 하나여야 한다는 원칙입니다.
- 보기의 설명인 "하나의 클래스만 변경 가능해야 한다"는 문장은 잘못된 설명입니다.
👉 하나의 클래스는 하나의 책임만 갖도록 설계하라가 올바른 내용입니다. ❌ 오답
② 개방-폐쇄 원칙 (OCP: Open-Closed Principle)
- 클래스는 확장에는 열려있고, 변경에는 닫혀 있어야 한다.
- 즉, 기존 코드는 수정하지 않고 새로운 기능을 추가할 수 있어야 합니다.
- 보기 설명이 정확히 이 내용을 담고 있습니다. ✅ 정답
③ 리스코프 치환 원칙 (LSP: Liskov Substitution Principle)
- 부모 타입의 객체는 자식 타입으로 대체 가능해야 한다.
- 상속받은 클래스는 부모 클래스가 할 수 있는 동작을 온전히 수행할 수 있어야 한다는 원칙입니다.
- 보기의 "여러 개의 책임을 가진 클래스는 하나의 책임을 가진 클래스로 대체되어야 한다"는 내용은 SRP와 헷갈린 잘못된 설명입니다. ❌ 오답
④ 의존관계 역전 원칙 (DIP: Dependency Inversion Principle)
- 상위 수준 모듈은 하위 수준 모듈에 의존하지 않고, 추상화에 의존해야 한다.
- 즉, 구체적인 구현 클래스가 아니라 인터페이스나 추상 클래스에 의존하도록 만들어야 한다는 원칙입니다.
- 보기의 "클라이언트는 자신이 사용하는 메소드와 의존관계를 갖지 않도록 해야 한다"는 정확한 표현이 아니며, DIP의 핵심 의미와 다소 다릅니다. ❌ 오답
📦 SOLID 원칙 요약 정리표
원칙명 설명
SRP (단일 책임 원칙) | 클래스는 하나의 책임만 가져야 한다. |
OCP (개방-폐쇄 원칙) | 확장에는 열려 있고, 변경에는 닫혀 있어야 한다. |
LSP (리스코프 치환 원칙) | 부모 객체는 자식 객체로 교체 가능해야 한다. |
ISP (인터페이스 분리 원칙) | 클라이언트가 자신이 사용하는 메서드만 알도록 인터페이스를 분리해야 한다. |
DIP (의존관계 역전 원칙) | 구체적인 것이 아닌, 추상화에 의존해야 한다. |
✨ 마무리
이런 SOLID 원칙은 객체지향 설계의 필수 개념이니, 한 번에 외우기보다는 원칙별 예시를 보며 이해하는 게 더 좋아요!
반응형
'기출문제 > 정보처리기사' 카테고리의 다른 글
2022년 1회 정보처리기사 기출문제 15번 (0) | 2025.03.03 |
---|---|
2022년 1회 정보처리기사 기출문제 14번 (0) | 2025.03.03 |
2022년 1회 정보처리기사 기출문제 12번 (0) | 2025.03.03 |
2022년 1회 정보처리기사 기출문제 11번 (0) | 2025.03.03 |
2022년 1회 정보처리기사 기출문제 10번 (0) | 2025.03.03 |