본문 바로가기
정보처리기사 필기/[1과목] 소프트웨어 설계

[정보처리기사] 객체지향 설계 원칙(SOLID)

by Devinus 2021. 3. 2.

1. 객체지향 설계 원칙

- 객체지향 프로그래밍 설계를 할 때 프로그래머가 시간이 지나도 유지보수와 확장이 용이한 시스템을 만들고자 할 때 적용하는 원칙이다.

 

2. 객체지향 설계 원칙 종류

용어 개념
단일 책임 원칙
(SRP, Single responsibility principle)
한 클래스하나의 책임만 가져야 한다.
개방 폐쇄 원칙
(OCP, Open/closed principle)
소프트웨어 요소는 확장에는 열려있으나 변경에는 닫혀 있어야 한다.
리스코프 치환 원칙
(LSP, Liskov substitution principle)
프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 서브타입(하위클래스)은 어디서나 자신의 기반타입(상위클래스) 인스턴스로 바꿀 수 있어야 한다.
인터페이스 분리 원칙
(ISP, Interface segregation principle)
특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
의존관계 역전 원칙
(DIP, Dependency inversion principle)
추상화에 의존해야지, 구체화에 의존하면 안된다.

 

▶ SOLID

 


 

정보처리기사 필기 기출문제

 

17.
객체지향 설계 원칙 중, 서브타입(상속받은 하위 클래스)은 어디에서나 자신의 기반타입(상위클래스)으로 교체할 수 있어야 함의미하는 원칙은?
[정답률: 60%] 정보처리기사(2020년 이후) 필기 (2020년 3회 기출문제)
① ISP(Interface Segregation Principle)  
② DIP(Dependency Inversion Principle)  
③ LSP(Liskov Substitution Principle) 서브(하위)타입과 기반(상위)타입 교체 내용이 나오면 LSP(리스코브 교체 원칙)
④ SRP(Single Responsibility Principle)  

 

5.
다음 내용이 설명하는 객체지향 설계 원칙은?
[정답률: 77%] 정보처리기사(2020년 이후) 필기 (2020년 4회 기출문제)
- 클라이언트는 자신이 사용하지 않는 메서드와 의존 관계를 맺으면 안 된다.
- 클라이언트가 사용하지 않는 인터페이스 떄문에 영향을 받아서는 안 된다.
① 인터페이스 분리 원칙 객체지향 설계 원칙에서 인터페이스 관련 내용이 나오면 ISP(인터페이스 분리 원칙)
② 단일 책임 원칙  
③ 개방 폐쇄의 원칙  
④ 리스코프 교체의 원칙