[시나공] 디자인 패턴 정리 (아키텍처 패턴 핵심 총정리)

2026. 3. 2. 18:54Certifications/정보처리기사 실기

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 시스템에 사용

🎯 포인트

  • 음성 인식, 패턴 인식

🔹 인터프리터 패턴

  • 문법 규칙 클래스화
  • 해석기 구조

🎯 포인트

  • 컴파일러, 번역기

📊 시험 포인트 정리

🔥 빈출 패턴

  1. MVC 구성요소 역할 구분
  2. Pipe-Filter = 데이터 흐름 처리
  3. Client-Server = 요청/응답 구조
  4. Layer = 계층 구조
  5. Master-Slave = 병렬 처리
  6. 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 시나공 퀵이지 정보처리기사 실기 단기완성
(저자: 강윤석, 김용갑, 김우경, 김종일 | 출판사: 길벗)

※ 본 글은 위 교재를 참고하여 학습 목적으로 재정리한 내용입니다.