[문제풀이] 디자인 패턴

개념

 

☐ 행위 패턴(Behavioral Pattern)

 

●  행위 패턴의 개념 : 클래스나 객체들이 서로 상호작용하는 방법이나 책임 분배 방법을 정의하는 패턴

●  행위 패턴의 역할 : 하나의 객체로 수행할 수 없는 작업을 여러 객체로 분배하면서 결합도를 최소화할 수 있도록 도와줌

●  행위 패턴의 종류

- 책임 연쇄(Chain of Responsi-bility) : 요청을 처리할 수 있는 객체가 둘 이상 존재하여 한 객체가 처리하지 못하면 다음 객체로 넘어가는 형태의 패턴, 요청을 처리할 수 있는 각 객체들이 고리(Chain)로 묶여 있어 요청이 해결될 때까지 고리를 따라 책임이 넘어감

- 커맨드(Command) : 요청을 객체의 형태로 캡슐화하여 재이용하거나 취소할 수 있도록 요청에 필요한 정보를 저장하거나 로그에 남기는 패턴, 요청에 사용되는 각종 명령어들을 추상 클래스와 구체 클래스로 분리하여 단순화함

- 인터프리터(Interpreter) : 언어에 문법 표현을 정의하는 패턴, SQL이나 통신 프로토콜과 같은 것을 개발할 때 사용함

- 반복자(Iterator) : 자료 구조와 같이 접근이 잦은 객체에 대해 동일한 인터페이스를 사용하도록 하는 패턴

- 중재자(Mediator) : 수많은 객체들 간의 복잡한 상호작용(Interface)을 캡슐화하여 객체로 정의하는 패턴, 객체 사이의 의존성을 줄여 결합도를 감소시킬 수 있음

- 메멘토(Memento) : 특정 시점에서의 객체 내부 상태를 객체화함으로서 이후 요청에 따라 객체를 해당 시점의 상태로 돌릴 수 있는 기능을 제공하는 패턴, Ctrl+Z와 같은 되돌리기 기능을 개발할 때 주로 이용함

- 옵서버(Observer) : 한 객체의 상태가 변화되면 객체에 상속되어 있는 다른 객체들에게 변화된 상태를 전달하는 패턴, 주로 분산된 시스템 간에 이벤트를 생성/발행(Publish)하고, 이를 수신(Subscribe)해야 할 때 이용함 

- 상태(State) : 객체의 상태에 따라 동일한 동작을 다르게 처리해야 할 때 사용하는 패턴, 객체 상태를 캡슐화하고 이를 참조하는 방식으로 처리함

- 전략(Strategy) :  동일한 계열의 알고리즘들을 개별적으로 캡슐화하여 상호 교환할 수 있게 정의하는 패턴, 클라이언트는 독립적으로 원하는 알고리즘을 선택하여 사용할 수 있으며, 클라이언트에 영향 없이 알고리즘의 변경이 가능

- 템플릿 메소드(Template Method) : 상위 클래스에서 골격을 정의하고, 하위 클래스에서 세부 처리를 구체화하는 구조의 패턴, 유사한 서브 클래스를 묶어 공통된 내용을 상위 클래스에서 정의함으로써 코드의 양을 줄이고 유지보수를 용이하게 해줌 

- 방문자(Visitor) : 각 클래스들의 데이터 구조에서 처리 기능을 분리하여 별도의 클래스로 구성하는 패턴, 분리된 처리 기능은 각 클래스를 방문하여 수행 


☐ 생성 패턴(Creational Pattern)

 

●  생성 패턴의 개념 : 객체의 생성과 관련된 패턴

●  생성 패턴의 역할 : 객체의 생성과 참조 과정을 캡슐화하여 객체가 생성되거나 변경되어도 프로그램의 구조에 영향을 크게 받지 않도록하여 프로그램에 유연성을 더해줌 

●  생성 패턴의 종류

- 추상 팩토리(Abstract Factory) : 구체적인 클래스에 의존하지 않고, 인터페이스를 통해 서로 연관 / 의존하는 객체들의 그룹으로 생성하여 추상적으로 표현함, 연관된 서브 클래스를 묶어 한 번에 교체하는 것이 가능함 

- 빌더(Builder) : 작게 분리된 인스턴스를 건축하듯이 조합하여 객체를 생성함, 객체의 생성 과정과 표현 방법을 분리하고 있어, 동일한 객체 생성에서도 서로 다른 결과를 만들어 낼 수 있음 

- 팩토리 메소드(Factory Method) : 객체 생성을 서브 클래스에서 처리하도록 분리하여 캡슐화한 패턴, 상위 클래스에서 인터페이스만 정의하고 실제 생성은 서브 클래스가 담당함, 가상 생성자(Virtual constructor) 패턴 

- 프로토타입(Prototype) : 원본 객체를 복제하는 방법으로 객체를 생성하는 패턴, 일반적인 방법으로 객체를 생성하며, 비용이 큰 경우 주로 이용함

- 싱글톤(Singleton) : 하나의 객체를 생성하면 생성된 객체를 어디서든 참조할 수 있지만, 여러 프로세스가 동시에 참조할 수는 없음, 클래스 내에서 인스턴스가 하나 뿐임을 보장하며, 불필요한 메모리 낭비를 최소화할 수 있음 


 

문제

☐ 행위 패턴(Behavioral Pattern)

 

2020년-1회 1번. GoF(Gang of Four)의 디자인 패턴에서 행위 패턴에 속하는 것은?

 

① Builder
② Visitor
③ Prototype
④ Bridge



정답 : 2
입력 답 : 4

 

2020년-2회 8번. 디자인 패턴 중에서 행위적 패턴에 속하지 않는 것은?

 

① 커맨드(Command) 패턴
② 옵저버(Obseerver) 패턴
③ 프로토타입(Prototype) 패턴
④ 상태(State) 패턴



정답 : 3
입력 답 : 4


☐ 생성 패턴(Creational Pattern)

 

2020년-2회 2번. 다음 내용이 설명하는 디자인 패턴은?

 

<보기>
- 객체를 생성하기 위한 인터페이스를 정의하여 어떤 클래스가 인스턴스화 될 것인지는 서브클래스가 결정하도록 하는 것 - Virtual-Constructor 패턴이라고도 함

 

① Visitor 패턴
② Observer 패턴
③ Factory Method 패턴
④ Bridge 패턴



정답 : 3
입력 답 : 1


 

'정보처리기사 > 25년 03차' 카테고리의 다른 글

[문제풀이] 협약(Contract)에 의한 설계  (0) 2025.05.21
[문제풀이] 다이어그램  (0) 2025.05.21
[오답정리] 2020년 02차  (0) 2025.05.21
[오답정리] 2020년 01차  (0) 2025.05.20
[25년 03차] 오답 내역  (0) 2025.05.20