[시나공] 객체지향 설계 & SOLID 원칙 완전 정리
2026. 3. 3. 04:00ㆍCertifications/정보처리기사 실기
1️⃣ 객체지향 개념 정리
✅ 객체지향(Object-Oriented)
- 객체(Object)를 중심으로 소프트웨어를 구성하는 개발 방법
- 객체 = 데이터 + 데이터를 처리하는 함수(메서드)
🔎 객체지향 구성요소 3가지
→ 객체, 클래스, 메시지
객체지향 특징 4가지
→ 캡슐화, 상속, 다형성, 연관성
✅ 클래스(Class)
- 공통 속성과 연산을 가지는 객체의 집합
- 객체를 생성하기 위한 설계도
🔎 클래스에 속한 각각의 객체
→ 인스턴스(Instance)
“유사 객체들의 공통 특성 정의”
→ 클래스
✅ 객체(Object)
- 데이터와 이를 처리하기 위한 함수를 묶어 놓은 소프트웨어 모듈
🔹 구성 요소
- 데이터(Data)
- 함수(Function = Method, Operation)
🔎 “데이터와 이를 처리하는 메서드를 묶은 것”
→ 객체
✅ 메시지(Message)
- 객체 간 상호작용 수단
- 객체의 동작을 유도하는 외부 요청
🔎 “객체에 어떤 행위를 하도록 지시하는 명령”
→ 메시지
2️⃣ 객체지향 특징 4대 요소
| 구성 요소 | 의미 |
|---|---|
| 캡슐화 | 내부 구현을 숨기고 인터페이스만 제공 |
| 상속 | 속성과 연산을 물려받음 |
| 다형성 | 같은 메시지에 다른 동작 수행 |
| 연관성 | 객체 간 상호 참조 관계 |
✅ 캡슐화(Encapsulation)
- 데이터와 메서드를 하나로 묶음
- 외부 접근 제한 → 인터페이스만 공개
🎯 포인트
- 외부 변경 영향 최소화
- 결합도 감소
- 정보 은닉
✅ 상속(Inheritance)
- 상위 클래스의 속성과 연산을 하위 클래스가 물려받음
🎯 포인트
- 코드 재사용
- 확장성 증가
- 하위 클래스는 속성 추가 가능
✅ 다형성(Polymorphism)
- 동일한 메시지에 대해 객체마다 다른 방식으로 응답
- 오버라이딩(Overriding)을 통해 구현
🔹 예시
- "+" 연산자 → 숫자에서는 덧셈
- 문자열에서는 연결
🔎 “하나의 메시지, 여러 형태의 응답”
→ 다형성
✅ 연관성(Relationship)
- 두 개 이상의 객체가 상호 참조하는 관계
- 객체지향의 관계(Relationship)를 의미
🔹 관계 유형
- 연관(Association)
- 집합(Aggregation)
- 포함(Composition)
- 일반화(Generalization)
🎯 포인트
- Whole-Part 관계 → 집합 / 포함
- is-a 관계 → 일반화
3️⃣ 객체지향 분석 & 설계 기법
✅ 객체지향 분석(OA)
- 요구사항 기반으로 객체, 속성, 연산, 관계 정의
🔎 “요구사항을 객체 중심으로 분석”
→ 객체지향 분석
✅ 럼바우(Rumbaugh) 분석 기법 (OMT = 객체 모델링 기법, Object-Modeling Technique)
🔹 3가지 모델
- 1) 객체 모델링 → 객체 다이어그램
- 2) 동적 모델링 → 상태 다이어그램
- 3) 기능 모델링 → 자료 흐름도(DFD)
🎯 포인트
- OMT = Object Modeling Technique
- DFD 사용 → 기능 모델링
📌 럼바우 = “객·동·기”
4️⃣ 객체지향 설계 원칙 (SOLID) ⭐⭐⭐⭐
✅ S : 단일 책임 원칙 (SRP)
- 클래스는 하나의 책임만 가져야 한다
🎯 포인트
- “변경 이유는 하나여야 한다” → SRP
✅ O : 개방-폐쇄 원칙 (OCP)
- 확장에는 열려 있고
- 수정에는 닫혀 있어야 한다
🎯 포인트
- 기존 코드 변경 없이 기능 확장
✅ L : 리스코프 치환 원칙 (LSP)
- 자식 클래스는 부모 클래스를 대체 가능해야 한다
🎯 포인트
- 부모 타입 자리에 자식 객체 사용 가능
✅ I : 인터페이스 분리 원칙 (ISP)
- 사용하지 않는 인터페이스에 의존하면 안 된다
🎯 포인트
- “불필요한 인터페이스 의존 제거” → ISP
✅ D : 의존 역전 원칙 (DIP)
- 고수준 모듈이 저수준 모듈에 의존하면 안 된다
- 추상화에 의존해야 한다
🎯 포인트
- 구체 클래스 X → 인터페이스 의존
📊 시험 포인트 정리
🔥 1. SOLID 약자 → 반드시 암기 ⭐
| 구성 요소 | 의미 |
|---|---|
|
SRP (단일 책임 원칙) |
객체는 단 하나의 책임만 가져야 함 |
|
OCP (개방-폐쇄 원칙) |
기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계 |
|
LSP (리스코프 치환 원칙) |
자식 클래스는 최소한 부모 클래스의 기능은 수행할 수 있어야 함 |
|
ISP (인터페이스 분리 원칙) |
자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 함 |
|
DIP (의존 역전 원칙) |
의존 관계 성립 시 추상성이 높은 클래스와 의존 관계를 맺어야 함 |
🔥 2. ISP / DIP 구분 문제
🔥 3. 다형성 정의형 문제
🔥 4. 캡슐화 = 정보 은닉
🔥 5. OMT 3가지 모델링
🔥 6. 클래스 vs 객체 구분 문제
📌 암기 핵심 요약
- SOLID 5원칙
- 다형성 정의 문장
- 럼바우 3모델
- 캡슐화 특징(결합도 감소)

2025 시나공 퀵이지 정보처리기사 실기 단기완성
(저자: 강윤석, 김용갑, 김우경, 김종일 | 출판사: 길벗)
※ 본 글은 위 교재를 참고하여 학습 목적으로 재정리한 내용입니다.
'Certifications > 정보처리기사 실기' 카테고리의 다른 글
| [시나공] 정의형 총정리 (IPC·테스트 케이스·공통 모듈 명세·재사용·코드 체계) (0) | 2026.03.03 |
|---|---|
| [시나공] 모듈 설계 품질 정리 (결합도·응집도·팬인/팬아웃) (0) | 2026.03.03 |
| [시나공] 디자인 패턴 정리 (아키텍처 패턴 핵심 총정리) (0) | 2026.03.02 |
| [시나공] 인터페이스 연계 기술 정리 (XML · SOAP · WSDL) (0) | 2026.03.02 |
| [시나공] 정렬 알고리즘 총정리 (삽입·선택·버블·퀵·힙·2-Way 합병) (0) | 2026.03.02 |