디자인 패턴 (Design Pattern)

[개요] 디자인패턴(Design Pattern)이란?

계란💕 2023. 1. 28. 18:43

소프트웨어 디자인패턴(software design pattern)이란?

  • 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다. 소스나 기계 코드로 바뀔 수 있는 완성된 디자인은 아니고 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는 데 쓰이는 서술이나 템플릿이다. 
  • 개발자가 애플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데 쓰이는 형식화된 가장 좋은 관행이다.
  • 디자인 패턴은 설계자들이 올바른 설계를 빨리 만들 수 있도록 도와준다. 
  • 기존 환경 내에서 반복적으로 일어나는 문제들을 어떻게 풀어나갈 것인가에 대한 일종의 솔루션 같은 것이다. 
  • 「GoF의 디자인패턴」에서는  아래 세 가지로 구분한다.
    • 복잡성, 상세도 및 설계 중인 전체 시스템에 대한 적용 범위에 따라 다음과 같이 분류
    • 생성 패턴
      • 기존 코드의 재활용유연성을 증가시키는 객체 생성 메커니즘을 제공
      • ex) Singleton, Prototype, Builder, Factory Method, Abstract Factory
    • 구조 패턴
      • 구조를 유연하고 효율적으로 유지하면서 객체와 클래스를 더 큰 구조로 조합하는 방법을 설명한다. 
      • ex) Adapter, Bridge, Decorator, Proxy, Facade, Flyweight
    • 행동 패턴
      • 객체 간의 효과적인 의사 소통과 책임 할당을 처리한다.
      • ex) Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Templete Method
  • 생성, 구조, 행동 패턴이 각각 어떤 문제를 해결하는지 파악한다.
  • 패턴 간의 관련성을 파악해야한다. 
  • 예제 코드를 직접 작성하는 게 좋다. 

 

디자인패턴 

  • Ex)
  • Java의 String의 내부 구현: 플라이웨이트(flyweight)
  • foreach문 : 반복자(iterator)

 

 

 

스터디 계획

 

참고)

https://readystory.tistory.com/114
https://refactoring.guru/ko/design-patterns/what-is-pattern

 

https://pocu-ko.teachable.com/courses/851311/l