기출문제/정보처리기사

2022년 1회 정보처리기사 기출문제 13번

엉클지니 2025. 3. 3. 17:28

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 원칙은 객체지향 설계의 필수 개념이니, 한 번에 외우기보다는 원칙별 예시를 보며 이해하는 게 더 좋아요!

 

반응형