디자인 패턴(Design Pattern)

이창호·2022년 3월 20일
0

디자인패턴

목록 보기
1/4

https://refactoring.guru/design-patterns <- 여기서 참고하여 작성했습니다.

디자인 패턴이란?

디자인 패턴은 소프트웨어 디자인에서 일반적인 문제에 대한 일반적인 솔루션이다.
각 패턴은 코드의 특정한 디자인 문제를 해결하기 위해 커스터마이즈 할 수 있는 청사진과 같다.

패턴은 특정 코드가 아니고 특정 문제를 해결하기 위한 보편적인 컨셉이라 기존 함수나 라이브러리들처럼 패턴은 프로그램에 바로 복붙할 순 없을 것이다. 패턴 세부 사항을 따르면 프로그램에 맞는 솔루션을 구현할 수 있다.

알고리즘과 패턴 두 개념 모두 문제에 대한 일반적인 솔루션을 설명하기 때문에 패턴은 가끔 알고리즘과 혼동되기도 한다. 알고리즘은 항상 어떤 목적을 달성하기 위한 명확한 행동들을 정의하지만 패턴은 솔루션에 대한 개략적인 설명이다.

알고리즘은 요리 레시피로 비유된다. 둘 다 목적을 달성하기 위한 명확한 단계를 가지고 있기 때문이다. 반면, 패턴은 청사진과 많이 닮았다. 결과 및 기능들을 볼 수 있지만 구현하기 위한 과정은 본인에게 달려있다.

패턴의 구성요소

대부분의 패턴은 정형화되어 있기 때문에 다양한 맥락에서 재현할 수 있다.

Intent, 패턴의 의도는 문제와 해결책을 간략하게 설명한다.
Motivation, 동기는 문제와 패턴이 가능한 솔루션에 대해 더 자세히 설명한다.
Structure, 클래스의 구조는 패턴의 각 부분과 어떻게 연관되어있는지 보여준다.
Code example, 대중적인 프로그래밍 언어의 코드 예제는 패턴의 아이디어를 파악하기 쉬워진다.

정리

알고리즘은 문제에 대한 단계별로 정확한 행동들을 제시한다. 반면, 디자인 패턴은 흔히 일어나는 문제에 대한 전형적인 해결법을 제공하는 것이기 때문에 청사진을 제시한다.

틀리거나 궁금한 부분이 있다면 언제든지 댓글로 알려주세요!

profile
이타적인 기회주의자

0개의 댓글