프로그래밍 언어 및 IT 정보/정보 공유(IT)

[소프트웨어] 디자인 패턴이란 ?

Himer_torr 2021. 9. 17. 09:39
반응형

안녕하세요 오늘은 개발에서의 기본적인 디자인 패턴이 무엇인가에 대해서 공부해 보려고 합니다 !

어떤 디자인 패턴이 있는지, 다양한 패턴 들의 개념 정리와 중요하게 사용되는 패턴들을 정리하겠습니다.

물론 중요하게 생각하는건 제 개인적인 의견이라 !  어떤 패턴도 중요하다는 의견이 있다면 댓글달아주세요 !!!

 

 

 

소프트웨어 디자인 패턴이란 ?

소프트웨어 디자인 패턴(Design pattern)은 소프트웨어 공학에서 소프트웨어 디자인에서 특정 문맥에 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책.

소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다. 디자인 패턴은 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 관행이다. 

 

즉, 짧게 설명하자면 소프트웨어 공학론 안의 좋은 코드를 설계하기 위한 일종의 설계 디자인 방법론!

 

객체간 응집도는 높이고, 결합도는 낮게,
요구사항 변경시, 코드 변경을 최소화 할 수 있도록 
만드는 것이 좋은 코드 방법

소프트웨어 디자인 패턴을 꼭 써야하나 ?

1. 재사용을 높이고 변경을 쉽게 하도록 하는 구조를 지향해야 하기 때문!

2. 경험 많은 개발자처럼 처음 보는 문제에 대해서도 단점을 최소화 하는 설계가 가능

3. 구체적인 설명 없이 구조화된 패턴에 대한 사전 지식으로 커뮤니케이션에 드는 시간, 비용 절약이 가능하고
   새로 보는 소프트웨어에 대해서도 패턴의 지식 기반으로 이해가 수월하기때문 !

4. 설계 과정의 속도를 높일 수 있어 빠르게 개발 가능하기 때문 !

 

 

 

디자인 패턴의 구성

 

 

워낙 다양한 종류가 많아서 도표로 만들어 보았습니다 :)

이 중 주로 들어보거나 자주 이용된다고 생각되는 패턴을 정리해보도록 하겠습니다.

 

생성 패턴

SingleTon Pattern

Builder

 

구조 패턴

Adapter Pattern

 

 

행동 패턴

Command Pattern

 

구조 패턴

MVC

 

MVP

 

MVVM

 

 

 

글을 하나씩 정리할 때마다, 저 위 링크를 달아놓을 예정입니다.

궁금할때마다 오셔서 지식 쌓아가세요 !
오늘도 긴 글 읽어주셔서 감사합니다 :)

반응형