[2022 정보처리기사] GoF(Gangs of Four) 디자인 패턴

Haribo·2022년 2월 27일
0

정보처리기사

목록 보기
1/10
post-thumbnail

Ⅰ. 배경

논문 "Using Pattern Languages for Object-Oriented Programs" (1987)을 통해 제안되었다.

이후 큰 유명세를 타게 된 것은 23개의 패턴을 수록한 'GoF'(Gang of Fours). Design Patterns: Elements of Reusable Object-Oriented Software. (1995)이다.

현재에는 수천여개의 패턴이 발표되어 있다.

객체 지향 프로그래밍이 각광받으면서 재사용 관점에서 상호간 커뮤니케이션 문제가 될 부분이 많이 있었다. 그래서 문제를 줄이고자 규약(프로토콜)을 만들어야될 필요가 자연스럽게 생기지 않았나 싶다.

Ⅱ. GoF 디자인 패턴의 유형

GoF(Gang of Four)에서는 23가지 디자인 패턴을 3가지 유형으로 분류된다.

GoF 디자인 패턴의 3가지 유형

1. 생성(Creational) 패턴
2. 구조(Structural) 패턴
3. 행위(Behavioral) 패턴

1. 생성(Creational) 패턴 🔌

  1. 객체를 생성하는데 관련된 패턴들
  2. 객체가 생성되는 과정의 유연성을 높이고 손쉬운 코드의 유지

2. 구조(Structural) 패턴 🏘️

  1. 프로그램 구조에 관련된 패턴들
  2. 프로그램 내의 자료구조 또는 인터페이스 구조 등 프로그램의 구조를 설계하는 데 활용 가능한 패턴들
  3. 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴

3. 행위(Behavioral) 패턴 🤾‍♂️

  1. 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것들
  2. 결합도를 최소화하는 것에 중점
  3. 객체(클래스) 사이에 알고리즘이나 책임 분배에 관련 패턴

Ⅲ. GoF 디자인 패턴 종류

▶ GoF 디자인 패턴 종류

생성(Creational) 패턴구조(Structural) 패턴행위(Behavioral) 패턴
- 추상 팩토리(Abstract Factory)- 어댑터 (Adapter)- 책임연쇄(Chain of Responsibility)
- 빌더 (Builder)- 브리지(Brige)- 커맨드(Command)
- 팩토리 메서드(Factory Method)- 컴퍼지트(Composite)- 인터프리터(Interpreter)
- 프로토타입(Prototype)- 데커레이터(Decorator)- 미디에이터(Mediator)
- 싱글턴(Singleton)- 퍼사드(Facade)- 메멘토(Memento)
- 플라이웨이트(Flyweight)- 옵서드(Observer)
- 프록시(Proxy)- 테이트(State)
- 스트래티지(Strategy)
- 템플릿 메서드(Template Method)
- 비지터(Visitor)

📚 나만의 정리 [20년, 21년 문제 출제 기준]

GoF 디자인 패턴 문제 유형

  1. 생성 패턴 또는 구조 패턴 중 하나를 고르는 것
    • 생성 패턴
      : 공장(팩토리)을 단순한(싱글턴) 단위(프로토타입)로 만들었네(빌더)
    • 구조 패턴
      : 어브컴데퍼플프
  2. 생성 또는 구조 패턴 중 하나에 대한 설명 후 해당 패턴을 고르는 것

출처 👀
https://velog.io/@namezin/GoF-design-pattern
https://url.kr/p2ci58

profile
개발 기록 남기는 중..

0개의 댓글