Study

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

배고픈꼬마 2025. 10. 24. 11:20
“유지보수성과 확장성이 높은 프로그램을 만드는 5가지 핵심 원칙”

 

 1️⃣ SOLID란?

SOLID는 객체지향 설계(Object-Oriented Design) 의 5가지 기본 원칙의 앞글자를 딴 용어로

이 원칙들을 잘 지키면, 코드가 유연하고, 수정·확장이 쉬운 구조로 만들어집니다.

약자 원칙이름 영어명
S 단일 책임 원칙 Single Responsibility Principle
O 개방-폐쇄 원칙 Open-Closed Principle
L 리스코프 치환 원칙 Liskov Substitution Principle
I 인터페이스 분리 원칙 Interface Segregation Principle
D 의존성 역전 원칙 Dependency Inversion Principle

 

2️⃣ 설명과 예시

구분 원칙 설명 예시
S 단일 책임 원칙
(Single Responsibility)
클래스는 하나의 책임만 가져야 한다. 즉, 한 클래스가 여러 가지 일을 하면 수정이 어려워진다. ‘회원관리’와 ‘메일발송’을 한 클래스에서 같이 처리하지 말고, MemberServiceMailService로 분리
O 개방-폐쇄 원칙
(Open-Closed)
확장에는 열려 있고, 수정에는 닫혀 있어야 한다. 기존 코드를 바꾸지 않고 기능을 추가할 수 있게 설계. 새로운 결제수단 추가 시 Payment 클래스를 수정하지 않고 KakaoPay, CardPay를 상속해서 확장
L 리스코프 치환 원칙
(Liskov Substitution)
자식 클래스는 부모 클래스를 대체할 수 있어야 한다. 즉, 부모의 기능을 해치지 않아야 함. BirdEagle, Sparrow는 OK, 하지만 Penguinfly() 못하므로 별도 분리 필요
I 인터페이스 분리 원칙
(Interface Segregation)
하나의 큰 인터페이스보다, 여러 개의 구체적인 인터페이스가 낫다. Printer 인터페이스에 scan()까지 있으면 단순 프린터는 불필요한 기능 구현해야 함 → Printable, Scannable로 분리
D 의존성 역전 원칙
(Dependency Inversion)
구체 클래스가 아닌 추상(인터페이스)에 의존해야 한다. KeyboardMouse를 직접 만들지 않고 InputDevice 인터페이스에 의존

 

3️⃣ 정리 요약

원칙핵심 문장키워드

원칙 핵심문장 키워드
단일 책임 클래스는 한 가지 일만 하자 책임 분리
개방-폐쇄 수정 말고 확장으로 대응 유연성
리스코프 치환 자식은 부모를 대체할 수 있어야 함 상속
인터페이스 분리 필요한 인터페이스만 구현 효율
의존성 역전 구체가 아닌 추상에 의존 결합도 감소

 

 

반응형