현재 선택한 정보처리 과정

정보처리기사 실기 이론 학습

이론 목록으로 돌아가기

GoF 디자인 패턴

패턴 이름보다 바꾸려는 대상과 객체 사이 역할을 먼저 찾는다.

예상 읽기 3

실기 학습 목표

패턴 이름보다 바꾸려는 대상과 객체 사이 역할을 먼저 찾는다.

핵심 이론

생성 패턴: Abstract Factory(관련 제품군), Builder(단계적 조립), Factory Method(하위 클래스가 생성 타입 결정), Prototype(원형 복제), Singleton(인스턴스 접근의 단일화).

구조 패턴: Adapter(규격 변환), Bridge(추상과 구현 축 분리), Composite(부분·전체 트리 동일 취급), Decorator(객체 감싸 기능 추가), Facade(간단한 통합 창구), Flyweight(내재 상태 공유), Proxy(대리 접근).

행위 패턴: Chain of Responsibility(처리자 사슬), Command(요청 객체), Interpreter(문법 해석), Iterator(순회), Mediator(상호작용 중재), Memento(상태 저장·복원), Observer(변경 통지), State(상태별 행동), Strategy(알고리즘 교환), Template Method(절차 틀), Visitor(요소별 연산 분리).

Adapter와 Bridge는 각각 기존 규격 호환과 독립 확장이 목적이다. Strategy는 알고리즘 교체, State는 상태 변화에 따른 행동이다. Factory Method와 Abstract Factory는 생성 결정의 위임과 제품군 생성이라는 차이를 본다.

패턴은 해결하려는 변화에서 출발한다

생성은 객체를 만드는 방법, 구조는 객체를 연결하는 방법, 행위는 책임과 협력을 나누는 방법에 초점을 둔다. 문제의 동사에 밑줄을 긋듯 표시하면 이름을 회상하기 쉽다. 변환한다·감싼다·공유한다·통지한다·교환한다는 서로 다른 설계 목적이다.

혼동하는 패턴결정적인 구별
Adapter / Facade기존 규격을 맞춤 / 여러 기능의 간단한 창구
Bridge / Adapter두 변화 축을 독립 확장 / 기존 규격 불일치 해결
Strategy / State알고리즘 교환 / 상태에 따른 행동 변화
Factory Method / Abstract Factory생성 결정을 하위 타입에 위임 / 관련 제품군 생성
Composite / Flyweight부분·전체를 같은 방식으로 처리 / 공통 상태 공유

할인 계산 객체를 바꿔 끼우는 사례라면 교환 가능한 알고리즘이므로 Strategy다. 구독한 객체들에게 값 변경을 알리면 Observer다. 요청을 객체로 만들어 실행·보관·취소의 단위로 다루면 Command다. 한 사례를 여러 패턴 이름으로 무작정 나열하지 말고 지문이 강조한 목적 하나를 선택한다. 장문 구현을 암기하는 대신 이 비교와 핵심 단서를 익힌다.

풀이 예시

배송 요금 계산기는 거리 기반, 무게 기반, 정액 계산 객체 중 하나를 주입받는다. 계산기는 공통 cost()만 호출하고 실행 중에 계산 객체를 다른 것으로 교체할 수 있다. 알고리즘들을 같은 계약 아래 교환 가능하게 만든 패턴을 쓰시오.

예시 정답

CODE코드 영역 안에서 좌우로 이동할 수 있습니다.
Strategy

풀이 과정

서로 다른 계산 알고리즘을 캡슐화하고 공통 인터페이스를 통해 선택·교체하는 전략 패턴이다. 객체 내부 상태 전이에 따라 행동이 바뀌는 State 패턴을 묻는 상황이 아니다.

답안 점검

위 풀이 예시의 답을 가린 뒤, 핵심 이론의 규칙을 적용해 직접 풀어 보세요. 코드와 계산 문제는 중간값·단위·최종 출력의 순서를, 용어 문제는 지문의 핵심 단서와 답의 의미를 점검하세요. 해설과 다른 부분이 있으면 어느 조건을 놓쳤는지 확인하고 연결된 실기 문제로 다시 연습하세요.