디자인 패턴(design Pattern) 이란?


과거부터 다양한 소프트웨어 개발 과정에서 발견된 설계의 노하우나 자주 발생하는 공통적인 문제들에 대한 표준적인 해법이자 이를 재이용하기 좋은 형태로 구조적으로 패턴화한 것을 뜻합니다.
(건축학에서 고안된 용어라 합니다.)

디자인 패턴의 목적은 객체 지향 설계 5대 원칙인 SOLID가 반영된 올바른 프로그램 설계를 빠르게 할 수 있도록 도와줄 뿐만 아니라 여러 팀원간의 협업에서 의사소통 수단의 일종으로 사용될 수 있습니다.

하지만 너무 디자인 패턴에 얽매여 모든 문제에 적용시키려 하는 것보다 원리를 파악해 패턴의 의도와 목적을 이해하는 것이 중요하다 말합니다.

이러한 디자인 패턴은 현재 수많은 패턴이 발표되었지만 가장 유명한 Gof(Gang of four) design Patterns에 수록된 23가지에 대해 알아보겠습니다.

디자인 패턴의 분류


Gof에서 23가지의 디자인 패턴을 다음과 같은 3가지로 분류하였습니다.

📌 세부 패턴을 클릭하면 관련 설명으로 이동합니다! (준비중)

생성(Creational) 패턴

생성패턴은 객체들을 효율적으로 생성하고 추상화하는 패턴입니다.
객체를 생성/합성하거나 표현하는 방법을 시스템과 분리하여 시스템이 어떤 구체 클래스를 사용하는지에 대한 정보를 캡슐화합니다. 이는 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공합니다.

🔎 종류
  • 싱글톤 패턴(Singleton)

  • 추상팩토리 패턴(Abstract Factory)

  • 빌더 패턴(Builder)

  • 팩토리 메서드 패턴(Factory Method)

  • 원형 패턴(Prototype)

구조 (Structural) 패턴

구조패턴은 프로그램 내의 효율적인 구조를 형성하기 위해 클래스와 객체를 어떻게 합성하는가에 대한 설계와 관련된 패턴입니다. 서로 다른 인터페이스를 지닌 객체들을 묶어 단일 인터페이스를 제공하거나 객체들을 서로 묶어 새로운 기능을 제공할 수 있습니다.

🔎 종류
  • 적응자 패턴(Adapter or Wrapper)

  • 브리지 패턴(Bridge)

  • 데코레이터 패턴(Decorator)

  • 퍼사드 패턴(Facade)

  • 프록시 패턴(Proxy)

행위(behavioral) 패턴

행위 패턴은 객체들이 서로 어떻게 소통하는지, 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴입니다. 한 객체가 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하며 객체 사이의 결합도 최소화에 중점을 둡니다.

🔎 종류
  • 옵저버 패턴(Observer)

  • 상태 패턴(State)

  • 스트레이트지 패턴(Strategy)

  • 템플릿 패턴(Template)

  • 비지터 패턴(Visitor)

  • 역할 사슬 패턴(Chain of Responsibility)

  • 커맨드 패턴(Command)

  • 인터프리터 패턴(Interpreter)

  • 이터레이터 패턴(Iterator)

  • 미디에이터 패턴(Mediator)

0개의 댓글