본문 바로가기
빅데이터 분석기사,ADsP와 ADP

GoF - 소프트웨어 디자인 패턴

by 귀주대 2024. 2. 13.

 

"Gang of Four"는 소프트웨어 디자인 패턴을 정리하고 소개한 책 "Design Patterns: Elements of Reusable Object-Oriented Software"의 저자 네 명을 가리키는 말입니다. 이 책은 에리히 감마(Erich Gamma), 리처드 헬름(Richard Helm), 랄프 존슨(Ralph Johnson), 존 블리시디스(John Vlissides)의 네 명의 저자에 의해 1994년에 출간되었습니다. 이 책은 소프트웨어 디자인에서 흔히 발생하는 문제에 대한 해결책을 제시하며, 23가지의 디자인 패턴을 소개합니다.

1. 디자인 패턴이란?

 

디자인 패턴은 소프트웨어 디자인에서 자주 발생하는 문제에 대한 일반적이고 유연한 해결책입니다. 디자인 패턴은 검증된 설계 경험을 재사용 가능한 형태로 문서화한 것이며, 특정 컨텍스트에서 발생하는 문제에 대한 해결책을 제공합니다.

 

 

2. GoF 디자인 패턴의 분류:

 

GoF 디자인 패턴은 크게 생성 패턴(Creational Patterns), 구조 패턴(Structural Patterns), 행위 패턴(Behavioral Patterns)으로 분류됩니다.

2.1 생성 패턴 (Creational Patterns):

 

객체의 생성에 관련된 패턴으로, 객체가 생성되는 방식을 추상화하고 조절하는 방법을 제공합니다.
예시: 싱글톤(Singleton), 팩토리 메소드(Factory Method), 추상 팩토리(Abstract Factory) 등.

 

2.2 구조 패턴 (Structural Patterns):

 

클래스나 객체를 조합하여 더 큰 구조를 만드는 패턴입니다.
예시: 어댑터(Adapter), 브리지(Bridge), 데코레이터(Decorator) 등.

 

2.3 행위 패턴 (Behavioral Patterns):

 

객체 간의 상호 작용과 책임을 중점으로 다루는 패턴입니다.
예시: 옵저버(Observer), 스테이트(State), 인터프리터(Interpreter) 등.

 

 

 

3. 대표적인 GoF 디자인 패턴:

 

3.1 싱글톤(Singleton) 패턴:
단일 객체 인스턴스를 유지하고, 그에 대한 전역적인 접근점을 제공하는 패턴입니다.

 

3.2 팩토리 메소드(Factory Method) 패턴:
객체 생성을 서브 클래스에서 처리할 수 있도록 하는 패턴으로, 생성할 객체의 클래스를 지정하지 않고 팩토리 메소드를 통해 객체를 생성합니다.

 

3.3 데코레이터(Decorator) 패턴:
객체에 추가적인 기능을 동적으로 첨가할 수 있게 해주는 패턴으로, 서브 클래스를 만들지 않고도 객체에 새로운 책임을 할당할 수 있습니다.

 

3.4 옵저버(Observer) 패턴:
객체 간의 일대다 의존성을 정의하여 어떤 객체의 상태가 변할 때 그 객체에 의존하는 다른 객체들이 자동으로 알림을 받는 패턴입니다.

 

 

 

4. GoF 디자인 패턴의 장점:
재사용성: 검증된 디자인 아이디어를 재사용할 수 있습니다.
유지보수성: 변경에 유연하게 대처할 수 있도록 도와줍니다.
표준화: 공통의 언어와 개념을 제공하여 개발자 간의 소통을 원활하게 합니다.

 

 

 

5. 결론:
GoF 디자인 패턴은 객체 지향 소프트웨어 디자인에서 자주 발생하는 문제를 해결하기 위한 효과적인 방법을 제시합니다. 이 패턴들을 잘 이해하고 활용함으로써 유지보수성이 높고 재사용 가능한 소프트웨어를 개발하는 데 도움이 됩니다.

 

댓글