📘 정처기 공부
🔴 Tier 12 / 12

2 디자인 패턴 (GoF 23)

GoF 23개 = 생성 5 + 구조 7 + 행위 11. 목적별로 분류를 외우자.

핵심 생성(Creational) 5 · 구조(Structural) 7 · 행위(Behavioral) 11 = 총 23개. 실기는 "패턴명 ↔ 설명" 매칭이 단골.

생성 패턴 (5) — 객체 생성 방식

패턴목적
추상 팩토리(Abstract Factory)구체 클래스를 지정하지 않고 관련 객체군을 생성.
빌더(Builder)복합 객체의 생성 과정과 표현을 분리해 단계적으로 생성.
팩토리 메서드(Factory Method)객체 생성 인터페이스만 정의, 인스턴스 결정은 서브클래스가.
프로토타입(Prototype)원본 객체를 복제(clone)하여 새 객체 생성.
싱글톤(Singleton)인스턴스를 단 하나만 생성하고 전역 접근점 제공.

구조 패턴 (7) — 클래스·객체 결합

패턴목적
어댑터(Adapter)호환되지 않는 인터페이스를 변환해 연결.
브리지(Bridge)추상화와 구현을 분리해 독립적으로 확장.
컴포지트(Composite)부분-전체를 트리로 구성, 개별·복합을 동일하게 취급.
데코레이터(Decorator)객체에 동적으로 기능(책임)을 추가.
퍼사드(Facade)서브시스템에 대한 통합 상위 인터페이스 제공.
플라이웨이트(Flyweight)다수 객체를 공유해 메모리 사용 절감.
프록시(Proxy)실제 객체 접근을 제어하는 대리 객체.

행위 패턴 (11) — 객체 간 상호작용·책임

패턴목적
책임 연쇄(Chain of Responsibility)요청 처리 객체를 사슬로 연결, 차례로 처리 기회 부여.
커맨드(Command)요청을 객체로 캡슐화해 저장·취소·재실행.
인터프리터(Interpreter)언어 문법을 클래스로 표현하고 해석.
반복자(Iterator)내부 구조 노출 없이 집합 원소를 순차 접근.
중재자(Mediator)객체 간 상호작용을 중재자에 집중시켜 결합도 감소.
메멘토(Memento)객체의 내부 상태를 저장·복원(undo).
옵서버(Observer)상태 변화를 의존 객체들에 자동 통지.
상태(State)상태에 따라 객체의 행위를 변경.
전략(Strategy)알고리즘군을 캡슐화해 교체 가능하게.
템플릿 메서드(Template Method)알고리즘 골격 정의, 세부 단계는 서브클래스가.
방문자(Visitor)구조 변경 없이 새 연산을 별도 객체로 추가.
암기팁 분류 개수 5 / 7 / 11 = 23. "생성이 제일 적고(5), 행위가 제일 많다(11)".
함정주의 아키텍처 패턴(MVC, 레이어, 파이프-필터, 클라이언트-서버 등)과 혼동 주의. GoF 디자인 패턴은 클래스·객체 수준의 설계 패턴이다.

✅ 자가점검

Q1. GoF 디자인 패턴의 3분류와 각 개수는?

생성(Creational) 5 · 구조(Structural) 7 · 행위(Behavioral) 11 = 총 23개. 생성이 가장 적고 행위가 가장 많다.