디자인 패턴이란

 프로그래밍을 하며 발생하는 문제들을 해결하다보면 유사한 문제점들이 반복해서 발견되고, 이에 해결책도 일정한 유형을 갖게되는데 이를 패턴이라 할 수 있다. 경험이 쌓여서 같은 문제 유형에 대해 매번 새롭게 해결책을 만들 필요가 없이 일정한 해결 방안을 모은 것을 디자인 패턴이라 정리하게 되었다.

 

 디자인 패턴을 이용함으로 얻을 수 있는 장점으로는 문제해결에 대한 비용낭비를 줄일 뿐만아니라, 협업하는 개발자들 간에 문제 해결 방안이 일정한 언어형태를 가지게 된다는 점이다. 이는 서로 다른 모듈을 비교하고 차이점을 해소하거나, 인터페이스에서 발생하는 문제점을 해결하는데 중요한 역할을 하게 된다.

 또한 디자인 패턴을 따른 코드는 구조를 파악하고 그 역할을 이해하기가 쉽기 때문에 결과적으로 재사용이나 수정이 용이해진다. 때문에 소프트웨어를 개발하는 시점만이 아니라 유지 보수나 리팩토링, 고도화 같은 개발 이후 작업에서도 큰 이점이 있다고 할 수 있다.

 

 

GoF 디자인 패턴

 

 GoF 디자인 패턴이란 GoF(the Gang of Four)라고 불리는 Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 4명의 개발자들이 프로그래밍에서 자주 사용되는 디자인 패턴에 대해 23가지로 정리한 디자인 패턴을 말한다.

 제시된 23가지 디자인 패턴을 다음과 같이 크게 세 분류로 나눠서 볼 수 있다.

 앞으로 각 패턴에 대해 학습내용을 간략히 정리해서 올릴 예정.

 

생성 패턴(Creataion Patterns) 5가지

  • 싱글톤 Singleton
  • 프로토타입 Prototype
  • 빌더 Builder
  • 팩토리 메서드 Factory Method
  • 추상 팩토리 Abstract Factory

 

구조 패턴(Structural Patterns) 7가지

  • 어댑터 Adapter
  • 브리지 Bridge
  • 컴퍼지트 Composite
  • 데코레이터 Decorator
  • 퍼사드 Facade
  • 플라이웨이트 Flyweigth
  • 프록시 Proxy

 

행동 패턴(Behavioral Patterns) 11가지

 

내용은 Java 언어로 배우는 디자인 패턴 입문(영진사) 를 기본으로 학습한 내용을 정리한 것이다.

모든 예제는 Java를 이용해 작성되었다. 예제 코드는 깃에도 올려놓았다. github.com/programo90/GoF-design-pattern

'디자인 패턴' 카테고리의 다른 글

5. Singleton 패턴  (0) 2020.12.02
4. FactoryMethod 패턴  (0) 2020.12.01
3. Template Method 패턴  (0) 2020.11.30
2. Adapter 패턴  (0) 2020.11.29
1. Iterator 패턴  (0) 2020.11.28

+ Recent posts