[시나공] 디자인 패턴 정리 (아키텍처 패턴 핵심 총정리)
2026. 3. 2. 18:54ㆍCertifications/정보처리기사 실기
1️⃣ 아키텍처 기본 개념 정리
✅ 소프트웨어 아키텍처
- 소프트웨어를 구성하는 요소 간의 관계를 표현한 시스템의 구조
- 모듈 분할, 인터페이스, 기능 할당 등을 정의
🎯 포인트
- “시스템의 구조 또는 구조체” → 소프트웨어 아키텍처
- 설계 기본 원리: 모듈화, 추상화, 단계적 분해, 정보은닉
🔹 설계 기본 원리
| 구성 요소 | 의미 |
|---|---|
| 모듈화 | 기능을 모듈 단위로 분리하여 구조화 |
| 추상화 | 공통 개념 중심으로 단순화하여 표현 |
| 단계적 분해 | 상위 개념에서 하위 개념으로 점진적 세분화 |
| 정보 은닉 | 내부 구현을 숨기고 인터페이스만 제공 |
✅ 모듈화 (Modularity)
- 시스템 기능을 모듈 단위로 분리
- 목적: 유지보수 및 재사용성 향상
| 구성 요소 | 의미 |
|---|---|
| 결합도 (Coupling) | 모듈 간 의존 정도 (낮을수록 좋음) |
| 응집도 (Cohesion) | 모듈 내부 요소 간 관련성 (높을수록 좋음) |
📌
결합도(Coupling) ↓
응집도(Cohesion) ↑
✅ 추상화 (Abstraction)
- 문제의 전체적·포괄적 개념 설계 후 점차 구체화
🔹 추상화 유형
| 구성 요소 | 의미 |
|---|---|
| 제어 추상화 | 이벤트/흐름 중심 표현 |
| 과정 추상화 | 처리 과정 중심 표현 |
| 자료 추상화 | 데이터 중심 표현 |
🎯 포인트
- “세부 구현 숨기고 핵심 개념만 표현” → 추상화
📌 추상화 = 제·과·자
✅ 단계적 분해 (Stepwise Refinement)
- 상위 개념 → 하위 개념으로 점진적 구체화
- Niklaus Wirth 제안
🎯 포인트
- “하향식 설계 전략”과 연결
✅ 정보 은닉 (Information Hiding)
- 모듈 내부 정보 외부 차단
- 변경 영향 최소화
2️⃣ 주요 아키텍처 패턴
🔹 레이어 패턴 (Layers Pattern)
- 시스템을 계층 구조로 구성
- 상위 계층은 하위 계층 서비스 사용
예시: OSI 7계층
🔹 클라이언트-서버 패턴 (Client-Server)
- 서버 1개 + 다수 클라이언트
- 요청(Request) / 응답(Response) 구조
🔹 MVC 패턴 (Model-View-Controller) ⭐⭐⭐
| 구성 요소 | 의미 |
|---|---|
| 모델 (Model) | 핵심 기능 및 데이터 관리 |
| 뷰 (View) | 사용자 화면 표시 |
| 컨트롤러 (Controller) | 입력 처리 및 모델 제어 |
🔎 View → 화면
Model → 데이터
Controller → 제어
🔹 파이프-필터 패턴 (Pipe-Filter)
- 데이터를 여러 단계로 연속 처리
- 각 단계 = 필터
- 연결 통로 = 파이프
예시: UNIX Shell
🎯 포인트
- “데이터 스트림”
- “단계별 처리”
🔹 마스터-슬레이브 패턴
- 마스터가 작업 분배
- 슬레이브가 처리 후 결과 반환
🎯 포인트
- 병렬 처리 시스템
🔹 브로커 패턴
- 분산 환경에서 컴포넌트 연결 중개
- 브로커가 요청 전달
🎯 포인트
- “분산 시스템”
- “중개자 역할”
🔹 피어-투-피어 (P2P = Peer-to-Peer)
- 각 노드가 클라이언트 + 서버 역할
🎯 포인트
- “중앙 서버 없음”
🔹 이벤트-버스 패턴
- Publish / Subscribe 구조
- 이벤트 기반 처리
🎯 포인트
- “발행-구독 구조”
🔹 블랙보드 패턴
- 공유 저장소 기반 문제 해결
- AI 시스템에 사용
🎯 포인트
- 음성 인식, 패턴 인식
🔹 인터프리터 패턴
- 문법 규칙 클래스화
- 해석기 구조
🎯 포인트
- 컴파일러, 번역기
📊 시험 포인트 정리
🔥 빈출 패턴
- MVC 구성요소 역할 구분
- Pipe-Filter = 데이터 흐름 처리
- Client-Server = 요청/응답 구조
- Layer = 계층 구조
- Master-Slave = 병렬 처리
- Event-Bus = Publish/Subscribe
🔥 유형별
- 정의 → 패턴 명칭 쓰기
- 설명 문장 → 해당 패턴 고르기
- 구성요소 연결 문제 (MVC ⭐)
🔥 헷갈리기 쉬운 구분
| 비교 | 구분 포인트 |
|---|---|
| Layer vs MVC | Layer는 계층 구조 / MVC는 역할 분리 |
| Client-Server vs P2P | 중앙 서버 존재 여부 |
| Pipe-Filter vs Event-Bus | 순차 처리 vs 이벤트 기반 |
📌 암기 핵심 요약
| 아키텍처 패턴 | 핵심 키워드 (암기 포인트) |
|---|---|
| Layer Pattern | 계층 구조 |
| Client-Server Pattern | 요청 / 응답 구조 |
| MVC Pattern | Model / View / Controller 역할 분리 |
| Pipe-Filter Pattern | 데이터 스트림 단계별 처리 |
| Master-Slave Pattern | 병렬 분산 처리 |
| Broker Pattern | 분산 시스템에서 컴포넌트 간 통신 중개 |
| Event-Bus Pattern | Publish / Subscribe 구조 |
| Blackboard Pattern | 공유 저장소 기반 문제 해결 |
| Interpreter Pattern | 문법 해석 / 번역 구조 |

2025 시나공 퀵이지 정보처리기사 실기 단기완성
(저자: 강윤석, 김용갑, 김우경, 김종일 | 출판사: 길벗)
※ 본 글은 위 교재를 참고하여 학습 목적으로 재정리한 내용입니다.
'Certifications > 정보처리기사 실기' 카테고리의 다른 글
| [시나공] 모듈 설계 품질 정리 (결합도·응집도·팬인/팬아웃) (0) | 2026.03.03 |
|---|---|
| [시나공] 객체지향 설계 & SOLID 원칙 완전 정리 (0) | 2026.03.03 |
| [시나공] 인터페이스 연계 기술 정리 (XML · SOAP · WSDL) (0) | 2026.03.02 |
| [시나공] 정렬 알고리즘 총정리 (삽입·선택·버블·퀵·힙·2-Way 합병) (0) | 2026.03.02 |
| [시나공] 트리 순회, 수식 표기 변환 완전 정리 (0) | 2026.03.01 |