23개나 되는 디자인 패턴 영문 이름을 단순 나열식으로 외우면 시험장에서 100% 헷갈립니다. 지문에서 '알고리즘 교체', '단일 인스턴스', '통지 매커니즘' 같은 출제자의 결정적 힌트 단어를 보자마자 패턴명이 바로 튀어나와야 합니다. 생성·구조·행위 패턴의 목적을 뇌에서 즉시 인출하는 실전 훈련이 합격 점수를 만듭니다.

정보처리기사 실기 정답과 해설 카드 실제 화면
이미지는 기존 카드 화면입니다. 옆의 Strategy 문제는 이 글에서 학습법을 설명하려고 만든 예시이며, 체험판 수록 문항을 뜻하지 않습니다.탭해서 크게 보기 ↗
TRY ONE · 5초 미니퀴즈

실행 중에 알고리즘을 교체하고, 사용하는 쪽의 코드는 바꾸지 않으려면 어떤 패턴이 먼저 떠올라야 할까요?

정답 확인하기
Strategy 패턴

알고리즘을 별도 객체로 분리하고 공통 인터페이스로 교체할 수 있게 만드는 목적에 가장 직접적으로 대응합니다.

정보처리기사 상품과 체험판 구성에서 실제 공개 범위와 카드 형식을 확인하세요.

생성·구조·행위는 해결하려는 문제가 다릅니다

분류먼저 물어볼 질문
생성 패턴객체 생성 책임을 누구에게 맡길 것인가
구조 패턴객체와 기능을 어떻게 조합할 것인가
행위 패턴객체가 역할과 메시지를 어떻게 나눌 것인가

분류는 정답이 아니라 첫 번째 필터입니다. 예를 들어 Factory Method와 Abstract Factory를 구별하려면 “하위 클래스가 제품 생성을 맡는가”와 “관련된 제품군을 함께 만드는가”를 다시 확인해야 합니다.

WORKED EXAMPLE

Factory Method와 Abstract Factory를 제품 수로만 고르지 않기

문제

Windows와 macOS 각각에 맞는 버튼·체크박스 제품군을 만들고, 화면 코드는 구체 클래스를 몰라도 일관된 제품군을 사용해야 한다. 어떤 패턴이 가장 직접적인가?

약한 답

객체를 생성하므로 Factory Method이다.

개선한 답

관련된 버튼·체크박스 제품군을 운영체제별 팩토리로 묶어 제공해야 하므로 Abstract Factory가 가장 직접적이다. Factory Method는 한 제품의 생성 단계를 하위 클래스에 맡기는 상황과 구별한다.

  1. 01제품군 찾기

    서로 맞춰 사용해야 하는 관련 제품을 한 팩토리가 함께 제공하는지 확인합니다.

  2. 02일관성 요구 찾기

    Windows 버튼과 macOS 체크박스가 섞이면 안 된다는 제약을 표시합니다.

  3. 03생성 책임 비교

    관련 제품군을 제공하는 책임인지, 하위 클래스가 생성할 구체 제품을 정하는 책임인지 구별합니다.

판별 포인트제품 개수만 세지 말고, 관련 제품군을 일관되게 제공하는지와 하위 클래스가 생성 단계를 정하는지를 비교합니다. 두 패턴을 함께 사용할 수도 있습니다.

패턴명보다 문제 속 동사를 찾습니다

대표 단서
  1. 교체한다알고리즘을 바꿔 끼우면 Strategy를 먼저 검토합니다.
  2. 통지한다한 객체의 변경을 여러 객체에 알리면 Observer를 떠올립니다.
  3. 기능을 덧붙인다기존 객체에 책임을 동적으로 추가하면 Decorator를 검토합니다.
  4. 접근을 대신한다실제 객체 앞에서 접근·로딩·권한을 제어하면 Proxy를 검토합니다.

같은 인터페이스나 상속 구조가 등장한다는 사실만으로 패턴을 확정하면 안 됩니다. 문제에서 바꾸려는 대상과 그 이유가 무엇인지가 결정적인 단서입니다.

사례의 목적을 보고 답을 고릅니다

문제: 결제 수단별 계산 방법을 실행 중에 바꾸고 싶다. 결제 수단을 바꿔도 주문 처리 코드는 수정하지 않도록 설계할 때 가장 알맞은 패턴을 쓰시오.

모범답안
  1. 정답Strategy 패턴
  2. 이유결제 계산 알고리즘을 별도 객체로 분리하고, 주문 처리 코드는 선택된 알고리즘에 위임할 수 있다.
  3. 구별State는 객체의 내부 상태 변화에 따라 행동이 달라지는 경우에 더 가깝다.

정의 카드와 비교 카드를 함께 풉니다

처음에는 세 분류별로 대표 패턴을 묶어 보고, 다음 회독에서는 Strategy·State, Adapter·Facade, Decorator·Proxy처럼 혼동되는 쌍을 비교합니다. 이름을 보지 않고 단서만 보고 답을 고르는 연습이 필요합니다.

  1. 답부터 가리기위 문제에서 ‘실행 중 계산 방법을 교체한다’는 단서만 보고 패턴명과 이유를 말합니다.
  2. 단서 바꾸기‘주문의 내부 상태가 대기에서 승인으로 바뀌면 같은 요청의 처리가 달라진다’로 바꿔 봅니다. 이때는 알고리즘 선택보다 상태에 따른 행동을 나누는 State를 검토합니다.
  3. 구별 근거 남기기앞면에는 상황 하나를, 뒷면에는 패턴명과 결정 단서 한 문장을 적습니다. 둘 다 실행 중 바뀐다는 이유만으로 같은 패턴으로 고르지 않습니다.

알고리즘 교체를 코드와 연결하려면 Java의 Collections.sort(list, comparator)근거 원문 를 떠올려 보세요. 호출하는 쪽은 정렬을 요청하고, 전달한 Comparator근거 원문 가 비교 기준을 정합니다. 여기서는 이 역할 분리를 Strategy를 이해하는 예로 사용하며, 특정 API 사용만으로 모든 설계가 같은 패턴이라고 단정하지는 않습니다.

정보처리기사 단답형 암기법에서 대표답을 짧게 꺼내는 법을 확인하고, 답안 작성 글로 이어서 이유까지 쓰는 연습을 해보세요.