본문 바로가기
SPRING

[파트 1. 스프링 입문] 챕터 2-1. 디자인 패턴이란?

by ZZON90 2022. 3. 3.

 디자인 패턴에 대해 포스팅합니다.

 

 

디자인 패턴이란?

 디자인 패턴이란 자주 사용하는 설계 패턴을 정형화해서 개발자가 가장 최적의 방법으로 개발할 수 있도록 유형별로 정해둔 것을 의미합니다. 디자인 패턴은 이미 검증되어 있는 해결책으로 고질적인 문제가 발생했을 때 디자인 패턴을 사용해 안정적이고 빠르게 해결이 가능하다.

 

 

Gof 디자인 패턴

 소프트웨어를 설계할 때는 기존의 경험이 매우 중요합니다. 그러나 모든 사람들이 다양한 경험을 가지고 있을 수는 없습니다. 이러한 경험을 공유하기 위해 나온 것이 GOF(Gang Of Four)의 디자인 패턴입니다. 객체지향 개념에 따른 설계 중 재사용할 경우 유용한 설계를 디자인 패턴으로 정리해 둔 것입니다. Gof의 디자인 패턴은 총 23개이며 이를 잘 이해하고 활용한다면 경험이 부족하더라도 좋은 소프트웨어 설계가 가능합니다.

 

디자인 패턴의 장점

  • 개발자 또는 설계자 간 원할한 소통이 가능합니다.
  • 소프트웨어의 구조 파악이 용이합니다.
  • 재사용을 통해 개발 시간 단축이 가능합니다.
  • 설계 변경 요청에 대해 유연한 대처가 가능합니다.

디자인 패턴의 단점

  • 객체지향을 설계하고 구현해야 합니다.
  • 프로젝트 초기에 투자 비용이 부담될 수 있습니다.

 

Gof 패턴의 분류

 Gof 패턴은 공통점을 통해 크게 3개로 분류할 수 있습니다.

1. 생성패턴

 객체를 생성하는 것과 관련된 패턴으로 객체의 생성과 변경이 전체 시스템에 미치는 영향을 최소화하고 코드의 유연성을 높여줍니다.

  • Factory Method
  • Singleton
  • Prototype
  • Builder
  • Abstract Factory

2. 구조패턴

 프로그램 내의 자료구조나 인터페이스의 구조 등 프로그램 구조를 설계하는 데 활용될 수 있는 패턴입니다. 클래스, 객체들의 구성을 통해 더 큰 구조를 만들 수 있게 해 줍니다. 큰 규모의 시스템에서는 많은 클래스들이 서로 의존성을 가지게 되는데 이런 복잡한 구조를 개발하기 쉽게 만들어주고 유지보수하는데도 용이하게 합니다.

  • Adapter
  • Composite
  • Bridge
  • Decorator
  • Facade
  • Flyweight
  • Proxy

3. 행위패턴

 반복적으로 사용되는 객체들의 상호작용을 패턴화 한 것으로 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 제공합니다. 행위 패턴은 행위 관련 패턴을 사용하여 독립적으로 일을 처리하고자 할 때 사용합니다.

  • Template Method
  • Interpreter
  • Iterator
  • Observer
  • Strategy
  • Visitor
  • Chain of responsibility
  • Command
  • Mediator
  • State
  • Memento

 

 23가지나 되는 모든 패턴을 알아볼 수는 없고요. 앞으로 저희가 알아볼 패턴은 Singleton, Adapter, Decorator, Facade, Proxy, Observer, Strategy까지 총 7가지입니다.

댓글