Design Pattern 이란?

윤세영·2023년 7월 6일
0

DesignPattern

목록 보기
15/15

정의

  • 방식을 통해 SW 설계에서 얻은 세세한 경험들을 기록해 놓도록 하는 것으로 특정한 상황에서 구조적인 문제에 대한 해법이라 할 수 있다.

  • 그 중에서도 anti-pattern이라는 것이 있는데, 이는 실제로 많이 쓰는 pattern이지만, 비효율적이고, 비생산적인 pattern을 뜻한다.

  • 일반적으로 하나의 패턴에는 다음 4가지 요소가 들어가 있다.

  • Pattern name은 한두 단어로 설계 문제와 해법을 서술한다.

    • 패턴의 이름을 정의해 두면 문서에서 이 이름을 사용하여 설계의 의도를 표현하기가 편리하다. 또한, 설계에 대한 생각이 쉽고, 개발자들 간의 communication이 원활해 진다.
  • 문제는 언제 패턴을 사용하는가를 서술하며 해결할 문제와 그 background를 설명한다

    • ‘어떤 알고리즘을 이용하여 객체를 생성할까’와 같은 설계의 세세한 문제를 설명할 수 있다.
  • Solution은 설계를 구성하는 요소와 그 요소들 사이의 관계들의 책임, 협력 관계를 서술한다.

    • 어떤 구체적인 설계와 구현을 설명하는 것은 아니다. 그 이유는 pattern은 다양한 경우에 적용할 수 있는 template이기 때문이다. Design pattern은 구체적인 부분이 아닌 추상적인 설명을 주고 해결하기 위한 클래스와 객체들의 열거 방법을 제시한다.
  • 결과는 design pattern을 통해 얻을 수 있는 결과와 장점, 그리고 단점을 서술한다.

    • 설계를 결정할 때에는 설계의 결과를 고려하여야 한다. 여기서 결과는 시공간의 효율을 중요한 요소로 볼 것인지에 따라서 다른 설계 방법을 택해야 한다. Reuse는 OOP설계의 주요소이기 때문에 pattern의 결과는 system의 유연성, 이식성, 확장성 등에 큰 영향을 끼친다.

디자인 패턴이 필요한 이유

  • 코드가 명확하고 가독성이 좋아진다.
  • 모듈(class, function, etc.)은 한가지 기능만 하도록 세분화 된다.
  • 재사용성이 높아진다.
  • 유지보수가 쉬워진다.
  • 리소스의 낭비가 적어진다.
profile
Frontend

0개의 댓글