디자인 패턴 23개를 이름 순서로 외우면 사례형 문장에서 답을 고르기 어렵습니다. 각 패턴을 어떤 문제를 해결하는지, 객체 사이 관계를 어떻게 바꾸는지, 문제에 어떤 단서가 나타나는지 세 칸으로 정리하세요.

생성·구조·행위는 해결하려는 질문으로 나눕니다

분류먼저 묻는 질문
생성 패턴객체를 언제, 어떤 절차와 책임으로 만들 것인가
구조 패턴클래스와 객체를 어떻게 조합해 더 큰 구조를 만들 것인가
행위 패턴객체가 책임을 나누고 메시지와 알고리즘을 어떻게 주고받을 것인가

분류는 첫 번째 필터일 뿐입니다. 생성 패턴이라는 사실을 알아도 Factory Method와 Abstract Factory를 구별하려면 생성 책임과 만들어지는 제품군을 더 봐야 합니다.

패턴 이름보다 문제 상황의 동사를 표시합니다

사례에서 찾을 동사
  1. 교체한다알고리즘이나 상태별 동작을 바꿔 끼우는가
  2. 알린다한 객체의 변경을 여러 구독 객체에 통지하는가
  3. 감싼다기존 객체를 둘러싸 책임을 동적으로 추가하는가
  4. 대리한다실제 객체 대신 접근 제어·지연 로딩 같은 역할을 수행하는가

설명에서 “하나의 인스턴스”, “호환되지 않는 인터페이스”, “복잡한 하위 시스템의 단순한 창구”처럼 답을 가르는 조건을 밑줄 치세요. 단순히 객체지향의 장점을 설명하는 문장은 결정적 단서가 아닐 수 있습니다.

자주 헷갈리는 패턴은 같은 기준으로 두 개씩 비교합니다

비교구별 기준
Strategy · State알고리즘을 선택하는가, 내부 상태에 따라 행동이 바뀌는가
Adapter · Facade인터페이스를 변환하는가, 복잡한 하위 시스템을 단순화하는가
Decorator · Proxy책임을 동적으로 더하는가, 실제 객체의 접근을 대신 통제하는가
Factory Method · Abstract Factory하위 클래스에 한 제품 생성을 맡기는가, 관련 제품군 생성을 묶는가

앞면에는 의도와 결정적 조건만 남깁니다

“Observer 패턴을 설명하시오”처럼 이름을 먼저 주면 회상 훈련이 되지 않습니다. 앞면에는 “한 객체의 상태가 바뀌면 의존하는 여러 객체에 자동으로 통지한다”처럼 의도를 제시하고, 뒷면에는 대표답과 혼동 패턴과의 차이를 적으세요.

세 분류를 먼저 판정했는가해결하려는 문제를 한 문장으로 말할 수 있는가참여 객체의 역할을 구분했는가비슷한 패턴과 공통 기준으로 비교했는가사례의 결정적 동사를 표시했는가앞면에서 패턴명이 노출되지 않았는가

하루에 새 패턴보다 비교 문제를 더 많이 풉니다

처음에는 생성·구조·행위별로 묶어 익히고, 그다음부터는 분류를 섞어 사례만 보고 답을 고르세요. 틀린 카드는 패턴 정의를 길게 붙이지 말고 “Facade는 인터페이스 변환이 아니라 하위 시스템 단순화”처럼 구별 기준을 한 줄 추가하는 편이 좋습니다.

대표답을 정확히 꺼내는 카드 작성 기준은 정보처리기사 실기 단답형 암기법에서 더 자세히 확인할 수 있습니다.