정보처리기사/소프트웨어 설계

디자인 패턴(Design Pattern)

glorypang 2025. 10. 6. 18:43
728x90
반응형
SMALL

1. 생성(Creational) 패턴

“객체를 어떻게 만들까?” — 객체 생성 과정을 캡슐화

패턴  핵심 개념  간단 비유
Singleton 인스턴스를 하나만 생성, 전역적으로 공유 대통령(한 명만 존재)
Factory Method 객체 생성을 서브클래스에 위임 “주문하면 공장에서 만들어줌”
Abstract Factory 관련 객체 집합을 생성하는 인터페이스 제공 가구 공장에서 “세트”로 생산
Builder 복잡한 객체를 단계별로 조립 햄버거 조립 순서 지정
Prototype 복제(clone) 로 객체 생성 도장을 복사해서 찍기

2. 구조(Structural) 패턴

“클래스나 객체를 어떻게 연결할까?” — 구조적 관계 설계

패턴  핵심 개념 간단 비유
Adapter 인터페이스가 달라도 호환되게 연결 변압기, 돼지코 어댑터
Bridge 추상과 구현을 분리해 독립적으로 확장 리모컨(추상) ↔ TV(구현)
Composite 부분-전체 계층을 동일하게 다룸 폴더–파일 트리 구조
Decorator 기존 객체에 동적으로 기능 추가 커피 + 시럽 + 휘핑크림
Facade 복잡한 서브시스템에 단일 진입점 제공 호텔 프론트 데스크
Flyweight 공유 가능한 속성을 캐싱해 메모리 절약 글자 폰트 객체 공유
Proxy 대리 객체가 접근 제어/로깅 등 수행 경비원, 리모컨

행위(Behavioral) 패턴

“객체들이 어떻게 상호작용할까?” — 로직 흐름과 책임 분배

패턴  핵심 개념  간단 비유
Strategy 알고리즘을 런타임에 교체 가능 길 찾기 (지하철/버스/도보 선택)
Observer 상태 변화 시 등록된 객체에게 알림 유튜브 구독 알림
Command 요청을 객체로 캡슐화 리모컨 버튼 = 명령 객체
Chain of Responsibility 요청을 책임자들이 순차 처리 민원 접수 → 부서 전달
State 상태에 따라 행동이 달라짐 문(열림/닫힘) 상태별 동작
Template Method 알고리즘 틀을 정하고 세부는 하위 클래스에 위임 레시피(골격 고정, 재료는 변경)
Mediator 객체 간 직접 통신 대신 중재자 사용 관제탑이 항공기들 조정
Memento 객체의 상태를 저장/복원 게임 저장/불러오기
Visitor 구조는 고정, 새 기능은 외부 방문자 관람객이 여러 전시물 방문
Interpreter 언어 문법을 해석기 객체로 구현 수식 파서, SQL 해석기
Iterator 내부 구조 숨기고 순회 for-each 구문처럼 반복
Observer (중요해서 한 번 더 강조) 변화 감시–통지  

 

728x90
반응형
LIST