객체지향 설계 (GoF 디자인 패턴)
목차 23
검증된 23개의 설계 레시피를 생성·구조·행위 세 분류로 가르는 게 이 강의 전부. 매 회차 1~3문항 보장되는 1과목 최빈출 단원.
핵심 암기 5종: 분류 5+7+11=23 · 생성 추빌팩프싱 · 구조 어브컴데퍼플프 · 행위 책커인이중메옵상전템방 · 1순위 BIG 3 = 싱·팩·옵
디자인 패턴과 GoF
디자인 패턴이란 ·개념 정의·
[정의] 소프트웨어 설계에서 자주 마주치는 문제에 대한 검증된 해결책을 정형화·재사용 가능한 형태로 정리한 설계의 모범 답안집.
[키워드] 검증된 + 재사용 가능 + 정형화 — 셋 중 하나라도 빠지면 디자인 패턴이라 부르지 않는다.
[장점] 재사용성↑ · 유지보수성↑ · 의사소통 표준(팀원과 '옵저버로 가자' 한마디로 통함). 결합도↓·응집도↑를 코드로 실현한 모범 사례라 5강·7강과 한 줄로 연결된다.
💡 보충 거장의 레시피 모음집 — 매번 시행착오 없이 검증된 해결책을 그대로 적용. 🎯 빈출 '디자인 패턴의 장점이 아닌 것은?' 부정형으로 간헐 출제.
GoF 4인방 ·1994·23개·
[정의] GoF(Gang of Four, 4인방) = 1994년 디자인 패턴 책 한 권으로 객체지향 설계의 표준을 만든 4명의 저자.
[구성] Erich Gamma · Richard Helm · Ralph Johnson · John Vlissides — 《Design Patterns》(1994)에서 23가지 패턴 정리.
🔑 암기 GoF = 4인방 / 1994년 / 23개 패턴 (세 숫자 묶음) 🎯 빈출 'GoF가 정의한 패턴 개수는?' 단답형. '23' 숫자는 거의 100% 출제.
GoF 23개 분류 체계 ·이 강의 골격·
[분류] 목적에 따라 세 그룹. 객체를 만들고(5) → 합치고(7) → 협력시킨다(11).
GoF 디자인 패턴 23개
├─ 생성 5개 (객체를 만든다) 추빌팩프싱
├─ 구조 7개 (객체를 합친다) 어브컴데퍼플프
└─ 행위 11개 (객체가 협력한다) 책커인이중메옵상전템방
| 분류 | 개수 | 목적 | 두문자 |
|---|---|---|---|
| 생성(Creational) | 5 | 객체를 어떻게 만들까 | 추빌팩프싱 |
| 구조(Structural) | 7 | 객체를 어떻게 합칠까 | 어브컴데퍼플프 |
| 행위(Behavioral) | 11 | 객체끼리 어떻게 협력할까 | 책커인이중메옵상전템방 |
🔑 암기 5 + 7 + 11 = 23 (생성·구조·행위 합 = GoF 총합) ⚠️ 함정 개수 자리 바꾸기 단골 — 생성이 7, 구조가 5 식으로 뒤집어 출제. 생성5·구조7·행위11 순서까지 한 세트. 🎯 빈출 분류 매칭은 매 회차 단골. 두문자 세 줄만 입에 붙으면 4지선다 2개는 자동 소거된다.
생성 패턴 — 추빌팩프싱
생성 5종 개요 ·추빌팩프싱·
[정의] 객체를 어떻게 만들 것인가에 답하는 패턴 군. 직접 new 하면 생성·사용 코드가 강하게 결합되는 걸 유연하게 분리한다.
| 패턴 | 한 줄 정의 | 결정 키워드 |
|---|---|---|
| 추상 팩토리 | 관련 객체들을 묶음(family) 으로 생성 | 관련 객체 묶음·제품군 |
| 빌더 | 복잡한 객체를 단계별로 조립 | 단계별 조립 |
| 팩토리 메서드 | 객체 생성을 서브클래스에 위임 | 객체 생성 위임 |
| 프로토타입 | 기존 객체를 복제(Clone) | 복제·Clone |
| 싱글톤 | 인스턴스를 단 하나만 | 단 하나·유일 |
🔑 암기 추빌팩프싱 (추상팩토리·빌더·팩토리메서드·프로토타입·싱글톤) — 결정 키워드 즉답: 하나=싱 / 위임=팩 / 복제=프로 / 조립=빌 / 묶음=추 🎯 빈출 1순위는 싱글톤·팩토리 메서드. 나머지 3종은 '생성 패턴이 아닌 것?' 소거형에서 5종 모두 알아야 풀린다.
싱글톤 (Singleton) ·생성·1순위 BIG 1·
[정의] 어떤 클래스의 인스턴스를 단 하나만 생성하도록 보장하고, 그 유일한 인스턴스에 어디서든 접근할 전역 접근점을 제공.
[키워드] 인스턴스 1개만 + 전역 접근.
🔑 암기 단 하나 / 유일 / 전역 접근 셋 중 하나라도 보이면 즉답 → 싱글톤 💡 보충 집에 하나뿐인 냉장고 — 누가 호출하든 같은 객체. 다만 남발하면 전역 변수처럼 결합도가 높아진다. 🎯 빈출 '인스턴스가 오직 하나만 존재' / '유일한 객체 생성' 표현이면 100% 싱글톤. 매 회차 거의 빠지지 않는 BIG 1.
팩토리 메서드 (Factory Method) ·생성·1순위 BIG 2·
[정의] 객체 생성을 서브클래스에서 결정하도록 위임. 부모는 '객체를 만든다'는 틀(인터페이스)만, 무엇을 만들지는 자식이 결정.
[비교] 팩토리 메서드 ↔ 추상 팩토리 — 한 글자 차이 함정 단골.
| 구분 | 만드는 대상 |
|---|---|
| 팩토리 메서드 | 객체 1개 |
| 추상 팩토리 | 관련 객체 묶음(family) |
🔑 암기 '객체 생성 위임' / '상위는 인터페이스만, 하위가 구현' → 팩토리 메서드 ⚠️ 함정 '관련 객체 묶음' 표현이 보이면 팩토리 메서드가 아니라 추상 팩토리. 🎯 빈출 정의 매칭·옳은 설명 찾기. 매 회차 단골.
구조 패턴 — 어브컴데퍼플프
구조 7종 개요 ·어브컴데퍼플프·
[정의] 객체·클래스를 어떻게 합쳐 더 큰 구조를 짤 것인가. 인터페이스 연결·기능 덧붙이기·복잡한 구조 감싸기 등.
| 패턴 | 한 줄 정의 | 결정 키워드 |
|---|---|---|
| 어댑터 | 인터페이스가 다른 두 객체를 연결·변환 | 인터페이스 변환·호환 |
| 브릿지 | 추상과 구현을 분리해 독립 변경 | 추상-구현 분리 |
| 컴포지트 | 객체를 트리 구조(전체-부분) | 트리·전체-부분 |
| 데코레이터 | 기능을 동적으로 추가 | 기능 동적 추가 |
| 퍼사드 | 복잡한 시스템을 단순한 인터페이스로 | 단순 통합 인터페이스 |
| 플라이웨이트 | 다수 객체를 공유해 메모리 절약 | 공유·메모리 절약 |
| 프록시 | 실제 객체의 대리인 제공 | 대리인·접근 제어 |
🔑 암기 어브컴데퍼플프 (어댑터·브릿지·컴포지트·데코레이터·퍼사드·플라이웨이트·프록시) — 빈출 3종 즉답: 변환=어 / 기능추가=데 / 대리=프 🎯 빈출 2순위는 어댑터·데코레이터·프록시. 양 끝(어댑터↔프록시)이 모두 단골.
어댑터 (Adapter) ·구조·2순위·
[정의] 인터페이스가 서로 호환되지 않는 두 객체를 연결. 한쪽 인터페이스를 다른 쪽이 기대하는 형태로 변환.
🔑 암기 인터페이스 변환 / 호환되지 않는 두 객체 연결 → 무조건 어댑터 💡 보충 220V 기기를 110V 콘센트에 끼우는 변환잭, USB-C↔USB-A 젠더. 🎯 빈출 '인터페이스 변환' / '변환·호환·연결' 빈칸형 단골.
데코레이터 (Decorator) ·구조·2순위·
[정의] 기존 객체를 수정하지 않고 새 기능을 동적으로 덧붙이는 패턴. 객체 위에 기능을 한 겹씩 추가.
[비교] 상속은 컴파일 시점 고정 / 데코레이터는 런타임에 동적 추가.
🔑 암기 상속 없이 기능 동적 추가 → 데코레이터 💡 보충 김밥에 토핑 한 겹씩 — 원본은 그대로, 층만 얹고 뗀다. 🎯 빈출 '기능을 동적으로 추가' / '상속 없이 기능 확장' 빈칸형 단골.
프록시 (Proxy) ·구조·2순위·
[정의] 실제 객체에 대한 대리인을 두어, 클라이언트가 직접 접근하지 않고 대리인을 거치게 한다. 그 사이에 접근 제어·캐싱·지연 로딩을 끼운다.
[비교] 데코레이터 ↔ 프록시 — 매 회차 함정 단골.
| 구분 | 목적 |
|---|---|
| 데코레이터 | 기능 추가(한 겹씩 덧붙임) |
| 프록시 | 접근 제어·대리(중간에서 가로챔) |
🔑 암기 대리인 / 접근 제어 / 지연 로딩 / 캐싱 → 프록시 💡 보충 사장님 대신 일정을 거르는 비서 — 본체는 본업에, 대리인이 부가 처리. ⚠️ 함정 '기능 추가'면 데코레이터, '접근 제어·대리·캐싱'이면 프록시. 이 둘 구분이 1순위 함정.
행위 패턴 — 책커인이중메옵상전템방
행위 11종 개요 ·책커인이중메옵상전템방·
[정의] 여러 객체가 어떻게 책임을 나누고 협력할 것인가. 메시지 전달·알고리즘 교체·상태 변화에 따른 동작 변경 등. 개수가 가장 많다.
| 패턴 | 한 줄 정의 | 결정 키워드 |
|---|---|---|
| 책임 연쇄 | 처리 객체를 체인으로 연결, 차례로 전달 | 체인·차례로 |
| 커맨드 | 요청을 객체로 캡슐화(실행·취소·로깅) | 요청 객체화·Undo |
| 인터프리터 | 문법 규칙을 클래스로 정의해 해석 | 문법 해석 |
| 이터레이터 | 컬렉션 내부 노출 없이 순회 | 순회·Iterator |
| 중재자 | 객체 간 통신을 중재자에 집중 | 중재자·관제탑 |
| 메멘토 | 객체 상태를 저장·복원(Undo) | 상태 저장·복원 |
| 옵저버 | 상태 변화를 구독자에게 자동 알림 | 자동 알림·Pub-Sub |
| 상태 | 상태에 따라 행동을 다르게 | 상태 따라 행동 |
| 전략 | 알고리즘을 캡슐화해 교체 | 알고리즘 교체 |
| 템플릿 메서드 | 공통 골격은 부모, 세부는 자식 | 골격+세부 |
| 방문자 | 구조 변경 없이 새 연산 추가 | Visit·새 연산 |
🔑 암기 책커인이중메옵상전템방 — 빈출 3종 즉답: 알림=옵 / 교체=전 / 골격=템 🎯 빈출 1순위 옵저버, 2순위 전략·템플릿 메서드. 11종이 모두 행위라는 것만 외워둬도 소거형은 무패.
옵저버 (Observer) ·행위·1순위 BIG 3·
[정의] 한 객체(주체)의 상태가 변할 때 구독하는 모든 객체(관찰자)에게 자동으로 알림. 발행-구독(Publish-Subscribe) 모델의 대표.
[키워드] 상태 변화 자동 알림 + 느슨한 결합(주체는 구독자가 누군지 몰라도 됨).
🔑 암기 1:N 자동 알림 / 발행-구독(Pub-Sub) / 상태 변화 통보 → 옵저버 💡 보충 채팅방에 새 메시지 → 구성원 전원 알림, 영상 채널 업로드 → 구독자 전원 알림. 🎯 빈출 '상태 변화를 다수에게 자동 통보' / '발행-구독' 정의 매칭. 매 회차 거의 빠지지 않는 BIG 3.
전략 (Strategy) ·행위·2순위·
[정의] 같은 문제를 푸는 여러 알고리즘을 각각 캡슐화해두고, 상황에 맞게 알고리즘을 교체할 수 있게 한다.
[비교] 전략 ↔ 상태 — 자주 헷갈리는 짝.
| 구분 | 행동이 바뀌는 방식 |
|---|---|
| 전략 | 클라이언트가 명시적으로 알고리즘 선택 |
| 상태 | 객체 상태에 따라 자동으로 행동 변경 |
🔑 암기 알고리즘 캡슐화·교체 → 전략 💡 보충 내비게이션 경로 옵션(최단·최저요금·추천)을 골라 갈아끼우듯. ⚠️ 함정 '내가 골라 교체'면 전략, '상태 따라 알아서 바뀌면' 상태.
템플릿 메서드 (Template Method) ·행위·2순위·
[정의] 알고리즘의 공통 골격은 부모 클래스에서 정의하고, 세부 단계 구현은 자식 클래스에 맡긴다. 큰 흐름은 고정, 일부 단계만 자식이 채운다.
[비교] 템플릿 메서드 ↔ 전략.
| 구분 | 핵심 |
|---|---|
| 템플릿 메서드 | 상속 + 골격 고정(부모-자식) |
| 전략 | 위임 + 알고리즘 교체(객체끼리) |
🔑 암기 공통 골격은 상위, 세부는 하위 → 템플릿 메서드 💡 보충 프랜차이즈 매뉴얼 — 인사·주문·제조·결제 흐름은 고정, 제조 단계만 매장별로. 🎯 빈출 '공통 알고리즘 골격은 상위, 세부는 하위' 빈칸형 단골. 상속 기반이면 템플릿, 객체 교체면 전략.
패턴 함정 정리
헷갈리는 짝 7세트 ·시험 직전 점검표·
[비교] 매 회차 함정이 되는 짝. 시험 직전 이 표만 다시 봐도 함정 두세 개는 거른다.
| 헷갈리는 짝 | 결정적 차이 |
|---|---|
| 팩토리 메서드 vs 추상 팩토리 | 객체 1개 vs 관련 객체 묶음 |
| 데코레이터 vs 프록시 | 기능 추가 vs 접근 제어·대리 |
| 어댑터 vs 브릿지 | 기존 것 호환 변환 vs 처음부터 추상-구현 분리 설계 |
| 전략 vs 상태 | 명시적 알고리즘 교체 vs 상태 따라 자동 변경 |
| 컴포지트 vs 데코레이터 | 트리 구조 vs 기능 한 겹씩 추가 |
| 옵저버 vs 중재자 | 1:N 자동 알림 vs N:N 통신을 1점 집중 |
| 템플릿 메서드 vs 전략 | 상속+골격 고정 vs 위임+알고리즘 교체 |
🔑 암기 결정 단어 한 개 즉답 — 복제=프로토타입 / 조립=빌더 / 유일=싱글톤 / 변환=어댑터 / 기능추가=데코레이터 / 대리=프록시 / 자동알림=옵저버 / 교체=전략 / 골격=템플릿 메서드 ⚠️ 함정 '데코레이터 vs 프록시'와 '전략 vs 상태'가 가장 잦은 단골 함정. 이 둘만큼은 절대 안 헷갈리게.
GoF vs 아키텍처 패턴 ·MVC 함정·
[비교] 같은 '패턴'이라도 스코프가 다르다. GoF는 객체·클래스 단위, 아키텍처 패턴은 시스템 단위.
| 구분 | 단위 | 대표 |
|---|---|---|
| GoF 디자인 패턴 | 객체·클래스 | 싱글톤·팩토리·옵저버 등 23개 |
| 아키텍처 패턴 | 시스템 전체 | MVC·파이프-필터·레이어드 등 (9강) |
⚠️ 함정 MVC·파이프-필터·레이어드는 아키텍처 패턴(9강), GoF 23개 아님. 보기에 MVC가 GoF 사이에 섞여 있으면 즉답 정답 후보. 🎯 빈출 'GoF 23개에 포함되지 않는 것?' 거리형 단골. 두문자 세 줄 안에 없으면 GoF가 아니다.
기출 다지기
[기출 1 출제] 다음 중 GoF 디자인 패턴의 분류와 패턴이 잘못 짝지어진 것은? (짝짓기 오류형)
- ① 생성 패턴 — 싱글톤(Singleton)
- ② 구조 패턴 — 어댑터(Adapter)
- ③ 행위 패턴 — 옵저버(Observer)
- ④ 행위 패턴 — 추상 팩토리(Abstract Factory)
정답 및 해설 보기
정답 ④
추상 팩토리는 관련 객체를 묶음으로 만드는 생성 패턴(추빌팩프싱의 첫 글자 '추')이다. 행위 패턴이 아니다.
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 정확 | 싱글톤 = 생성(추빌팩프싱) |
| ② | 정확 | 어댑터 = 구조(어브컴데퍼플프) |
| ③ | 정확 | 옵저버 = 행위(책커인이중메옵상전템방) |
| ④ | 잘못된 짝 | 추상 팩토리 = 생성(행위 아님) |
🔑 추빌팩프싱은 만들고 · 어브컴데퍼플프는 합치고 · 책커인이중메옵상전템방은 협력한다.
[기출 2 출제] 다음 설명에 해당하는 GoF 디자인 패턴은? (설명→용어)
시스템 내에서 어떤 클래스의 인스턴스가 단 하나만 존재하도록 보장하고, 어디에서든 그 유일한 인스턴스에 접근할 수 있도록 전역 접근점을 제공한다.
- ① 옵저버(Observer)
- ② 싱글톤(Singleton)
- ③ 팩토리 메서드(Factory Method)
- ④ 어댑터(Adapter)
정답 및 해설 보기
정답 ②
'인스턴스가 단 하나만 존재' + '전역 접근점'은 싱글톤의 결정적 키워드.
| 선지 | 판정 | 근거 |
|---|---|---|
| ① 옵저버 | 오답 | 1:N 상태 변화 자동 알림 |
| ② 싱글톤 | 정답 | 단 하나·전역 접근 |
| ③ 팩토리 메서드 | 오답 | 객체 생성을 서브클래스에 위임 |
| ④ 어댑터 | 오답 | 인터페이스 변환(구조 패턴) |
🔑 '단 하나/유일/전역 접근' 셋 중 하나라도 보이면 0.5초 컷 싱글톤.
[기출 3 출제] 다음 설명에 해당하는 GoF 디자인 패턴은? (설명→용어)
한 객체의 상태가 변화했을 때 그 객체에 의존하는 다른 객체들에게 자동으로 통지하고 갱신하도록 한다. 발행-구독(Publish-Subscribe) 모델로도 알려져 있다.
- ① 커맨드(Command)
- ② 전략(Strategy)
- ③ 옵저버(Observer)
- ④ 데코레이터(Decorator)
정답 및 해설 보기
정답 ③
'상태 변화', '의존 객체에 자동 통지', '발행-구독'은 모두 옵저버의 결정적 키워드. 1:N 자동 알림이 본질.
| 선지 | 판정 | 근거 |
|---|---|---|
| ① 커맨드 | 오답 | 요청을 객체로 캡슐화 |
| ② 전략 | 오답 | 알고리즘 캡슐화·교체 |
| ③ 옵저버 | 정답 | 상태 변화 자동 통지·발행-구독 |
| ④ 데코레이터 | 오답 | 기능 동적 추가(구조 패턴이라 분류부터 다름) |
🔑 '발행-구독 / 자동 알림 / 1:N' = 옵저버.
[기출 4 출제] 팩토리 메서드(Factory Method) 패턴에 대한 설명으로 옳은 것은? (긍정형)
- ① 인스턴스가 단 하나만 존재하도록 보장한다
- ② 객체 생성을 서브클래스에 위임하여 어떤 인스턴스를 만들지 자식이 결정한다
- ③ 한 객체의 상태 변화를 다수의 구독자에게 자동으로 알린다
- ④ 인터페이스가 다른 두 객체를 호환되도록 변환한다
정답 및 해설 보기
정답 ②
팩토리 메서드의 핵심은 '객체 생성을 서브클래스에 위임'. 나머지 보기는 각각 다른 패턴의 정의다.
| 선지 | 어떤 패턴? |
|---|---|
| ① 단 하나만 존재 | 싱글톤 |
| ② 객체 생성 위임 | 팩토리 메서드(정답) |
| ③ 상태 변화 다수 알림 | 옵저버 |
| ④ 인터페이스 변환 | 어댑터 |
🔑 '관련 객체 묶음'이면 추상 팩토리, '객체 생성 위임'만 보이면 팩토리 메서드.
[기출 5 출제] 다음 중 GoF 디자인 패턴 중 행위(Behavioral) 패턴에 속하지 않는 것은? (소거형)
- ① 옵저버(Observer)
- ② 전략(Strategy)
- ③ 템플릿 메서드(Template Method)
- ④ 프록시(Proxy)
정답 및 해설 보기
정답 ④
프록시는 실제 객체의 대리인을 제공하는 구조 패턴(어브컴데퍼플프의 마지막 '프')이다.
| 선지 | 분류 | 근거 |
|---|---|---|
| ① 옵저버 | 행위 | 책커인이중메옵상전템방 |
| ② 전략 | 행위 | 책커인이중메옵상전템방 |
| ③ 템플릿 메서드 | 행위 | 책커인이중메옵상전템방 |
| ④ 프록시 | 구조 | 어브컴데퍼플프 (행위 아님) |
🔑 책커인이중메옵상전템방에 있으면 행위, 어브컴데퍼플프에 있으면 구조.
[기출 6 출제] 다음 중 GoF의 23가지 디자인 패턴에 포함되지 않는 것은? (거리형)
- ① 빌더(Builder)
- ② 컴포지트(Composite)
- ③ 메멘토(Memento)
- ④ 모델-뷰-컨트롤러(MVC)
정답 및 해설 보기
정답 ④
MVC는 시스템 전체 구조를 다루는 아키텍처 패턴(9강)이다. GoF 23개에는 포함되지 않는다.
| 선지 | 분류 | 두문자 위치 |
|---|---|---|
| ① 빌더 | 생성 | 추빌팩프싱 |
| ② 컴포지트 | 구조 | 어브컴데퍼플프 |
| ③ 메멘토 | 행위 | 책커인이중메옵상전템방 |
| ④ MVC | 아키텍처 | GoF 아님(시스템 단위) |
🔑 GoF는 객체·클래스 단위, 아키텍처 패턴은 시스템 단위. 두문자 세 줄 안에 없으면 GoF가 아니다.
[기출 7 출제] 다음 ( ) 안에 들어갈 디자인 패턴을 순서대로 바르게 짝지은 것은? (빈칸형)
㉠ ( ) 패턴은 객체에 추가 책임을 동적으로 부여하며, 상속 없이 기능을 확장한다. ㉡ ( ) 패턴은 인터페이스가 다른 클래스들을 함께 작동하도록 변환한다. ㉢ ( ) 패턴은 알고리즘군을 정의하고 각각을 캡슐화하여 교체 가능하게 만든다.
- ① ㉠ 데코레이터 · ㉡ 어댑터 · ㉢ 전략
- ② ㉠ 어댑터 · ㉡ 데코레이터 · ㉢ 전략
- ③ ㉠ 데코레이터 · ㉡ 전략 · ㉢ 어댑터
- ④ ㉠ 프록시 · ㉡ 어댑터 · ㉢ 템플릿 메서드
정답 및 해설 보기
정답 ①
| 빈칸 | 결정 키워드 | 정답 |
|---|---|---|
| ㉠ | 동적으로 책임 부여·상속 없이 기능 확장 | 데코레이터 |
| ㉡ | 인터페이스 다른 클래스 변환 | 어댑터 |
| ㉢ | 알고리즘군 캡슐화·교체 가능 | 전략 |
| 선지 | 판정 | 근거 |
|---|---|---|
| ① | 정답 | 기능추가=데코 / 변환=어댑터 / 교체=전략 |
| ② | 오답 | ㉠㉡ 뒤바뀜 |
| ③ | 오답 | ㉡㉢ 뒤바뀜 |
| ④ | 오답 | 키워드와 안 맞는 패턴 매칭 |
🔑 기능 추가=데코레이터, 변환=어댑터, 교체=전략 — 결정 단어 한 개로 즉답.
한 장 요약
| 분류 | 암기 | 패턴 |
|---|---|---|
| 골격 | 5+7+11=23 | 생성 5 · 구조 7 · 행위 11 |
| 생성 | 추빌팩프싱 | 추상팩토리·빌더·팩토리메서드·프로토타입·싱글톤 |
| 구조 | 어브컴데퍼플프 | 어댑터·브릿지·컴포지트·데코레이터·퍼사드·플라이웨이트·프록시 |
| 행위 | 책커인이중메옵상전템방 | 책임연쇄·커맨드·인터프리터·이터레이터·중재자·메멘토·옵저버·상태·전략·템플릿메서드·방문자 |
| 1순위 | BIG 3 = 싱·팩·옵 | 싱글톤 · 팩토리 메서드 · 옵저버 |
| 결정 키워드 | 정답 | 결정 키워드 | 정답 |
|---|---|---|---|
| 단 하나/유일 | 싱글톤 | 인터페이스 변환 | 어댑터 |
| 객체 생성 위임 | 팩토리 메서드 | 기능 동적 추가 | 데코레이터 |
| 복제(Clone) / 단계별 조립 | 프로토타입 / 빌더 | 대리인/접근 제어 | 프록시 |
| 관련 객체 묶음 | 추상 팩토리 | 상태 변화 자동 알림 | 옵저버 |
| 알고리즘 교체 | 전략 | 공통 골격+세부 자식 | 템플릿 메서드 |
🎯 합격 한 끗: 두문자 세 줄 + BIG 3 + 결정 키워드 한 개씩이면 6강은 무패. 가장 잦은 함정은 데코레이터 vs 프록시(기능추가 vs 대리)와 MVC ≠ GoF(MVC는 아키텍처 패턴·9강). 패턴은 SOLID(7강)를 코드로 푼 도구라는 한 줄로 7강과 이어진다.
