IT/DesignPattern

[DesignPattern] GoF 23가지 디자인 패턴

어린이개발자 2025. 4. 21. 12:59

GoF(Gang of Four) 디자인 패턴은 소프트웨어 설계에서 자주 발생하는 문제들을 해결하기 위해 제시된 23가지의 디자인 패턴이다.

 

1. 생성(Creational) 패턴 - 객체 생성 관련

객체 생성 로직을 캡슐화하여 유연하고 재사용 가능하게 만드는 패턴

 

1) Singleton

- 오직 하나의 인스턴스만 존재하도록 보장

2) Factory Method

- 객체 생성을 서브 클래스에 위임하여, 상위 클래스에서는 어떤 객체가 생성될지 모르게 함

- ex. 인터페이스 기반 객체 생성

3) Abstract Factory

- 관련 있는 객체들을 하나의 팩토리에서 생성

4) Builder

- 복잡한 객체를 단계별로 생성

5) Prototype

- 기존 객체를 복제하여 새 갳체 생성

 

2. 구조(Structural) 패턴 - 클래스/객체 구성 관련

여러 클래스를 결합해 더 큰 구조를 만들거나, 인터페이스를 변경하는 등의 구조 패턴

 

6) Adapter

- 호환되지 않는 인터페이스를 맞춰줌 (일명 Wrapper)

7) Bridge

- 구현부와 추상부를 분리하여 독립적으로 확장 가능

8) Composite

- 객체들을 트리 구조로 구성하여 부분-전체 계층 표현

9) Decorator

- 객체에 기능을 추가할 때, 상속 없이 동적으로 부가 기능 추가

10) Facade

- 복잡한 서브시스템을 단순화된 인터페이스로 제공

11) Flyweight

- 메모리 절약을 위해 객체를 공유

12) Proxy

- 실제 객체에 대한 접근 제어(로깅, 캐싱, 보안 등)

 

3. 행위(Behavioral) 패턴 - 객체간의 상호 작용

책임 분산, 커뮤니케이션 흐름을 다루는 패턴

 

13) Chain of Responsibility

- 요청을 처리할 수 있는 객체를 체인으로 연결해 순차적으로 처리

14) Command

- 요청을 객체로 캡슐화하여 실행/취소/로그 가능

15) Interpreter

- 언어의 문법을 클래스로 표현하고 해석기 구현

16) Iterator

- 컬렉션의 내부 표현을 노출하지 않고 순회 가능

17) Mediator

- 객체 간의 상호 작용을 중재자에게 위임하여 복잡도 감소

18) Memento

- 객체 상태를 저장하고 복원 가능하게 함 (Undo 기능)

19) Observer

- 한 객체의 상태 변화가 있을 때, 관련된 다른 객체에 자동 통지

20) State

- 객체의 상태에 따라 행동을 변경 (상태 패턴)

21) Strategy

- 알고리즘을 캡슐화하여 동적으로 교체 가능

22) Template Method

- 알고리즘의 골격을 정의하고, 하위 클래스에서 세부 구현

23) Visitor

- 구조는 변경하지 않고, 새로운 연산을 추가

 

( 참고로, Spring 에서 자주 사용되는 GoF 디자인 패턴은 노란색 색깔로 표시하였다. )

'IT > DesignPattern' 카테고리의 다른 글

[DesignPattern] Singleton 패턴  (0) 2025.03.16
[DesignPattern] SAGA 패턴  (1) 2024.12.10
[DesignPattern] CQRS 패턴  (2) 2024.12.10