IT/SW Architecture

디자인 패턴 : GoF (Gang of Four) Design Patterns

Uncle D. 2023. 5. 27. 17:23
반응형

GoF : Gang of Four

 

GoF 는 Gang of Four 라는 의미로 소프트웨어 디자인 패턴의 중요성을 강조하고 알려준 4명의 개발자를 의미합니다.

이 들은 1994년에 출간된 "Design Patterns: Elements of Reusable Object-Oriented Software"라는 책을 통해 많은 기여를 하였습니다. 이 책은 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides라는 네 명의 개발자들에 의해 쓰여졌으며, 이들은 "GoF"로 알려지게 되었습니다.

직역하면 4인방의 디자인 패턴이라고 할 수 있겠습니다. 

 

Design Patterns Book

GoF의 목표는 객체 지향 소프트웨어 개발에서 발생하는 공통적인 문제를 해결하기 위한 디자인 패턴을 정리하고 제시하는 것이었습니다. 이들은 23개의 디자인 패턴을 다양한 카테고리로 분류하였으며, 이는 소프트웨어 개발자들에게 디자인 패턴에 대한 표준적인 언어와 개념을 제공하였다고 볼 수 있습니다.

※ 개발자간의 커뮤니케이션에서 많이 사용되는 패턴의 이름으로 대화를 한다면 서로 불필요한 의사소통의 오류도 해결해줄 수 있겠습니다. ( OOP 에서 Design Pattern 이 서로 익숙한 상태라는 가정하에 )

 

디자인 패턴의 장점으로는 소프트웨어 시스템을 설계하고 구축할 때 발생하는 문제에 대한 해결책을 제시합니다. 이러한 패턴들은 재사용 가능하며, 검증된 설계 아이디어와 솔루션을 제공하여 개발자들이 소프트웨어 시스템을 더욱 효율적이고 유지보수 가능하게 개발할 수 있도록 돕습니다.

 

Design Patterns : 23 개의 패턴

분류기준 : 목적(purpose)

Creational Pattern 은 객체 인스턴스 생성을 위한 패턴으로, 클라이언트와 그 클라이언트에서 생성할 객체 인스턴스 사이의 연결을 끊어주는 패턴이다.

Structural Pattern 은 클래스 및 객체들을 구성(합성) 을 통해서 더 큰 구조로 만들 수 있게 해 주는 것과 관련된 패턴이다.

Behavioral Pattern 은 클래스와 객체들이 상호 작용하는 방법 및 역할을 분담하는 방법과 관련된 패턴이다.

 

분류기준 : 범위(Scope)

Class Pattern 은 클래스 사이의 관계가 상속을 통해서 어떤 식으로 정의되는지 기준으로 분류하는데, Class Pattern 에서는 컴파일 시에 관계가 결정된다.

Object Pattern 은 객체 사이의 관계를 다루며, 객체 사이의 관계는 보통 구성을 통해서 정의된다. 객체 패턴에서는 일반적으로 실행 중에 관계가 생성되기 때문에 더 동적이고 유연하다.

 

                 Purpose
Scope
생성 패턴
(Creational)
구조 패턴
(Stuructural)
행위 패턴
(Behavioral)
Class Factory Method Adapter(Class) Interpreter
Template Method
Object Abstract Factory
Builder
Prototype
Singleton
Adapter(Object)
Bridge
Composite
Decorator
Facade
Flyweight
Proxy
Chain of Responsibility
Command
Iterator
Mediator
Memento
Observer
State
Strategy
Visitor

 

각 디자인 패턴에 대해서는 위키피디아에도 잘 정리가 되어 있긴 합니다만, 스터디 하면서 별도의 포스팅으로도 정리하도록 하겠습니다.

읽어주셔서 감사합니다.

반응형