본문 바로가기
SW Engineering/Design Patterns

(Design Pattern) 소프트웨어 디자인 패턴

by jaesungLeee 2021. 9. 19.

출처 : https://korecm.github.io/DesignPatternIntro

 

지금까지 내가 개발한 방법과 진행해온 프로젝트를 회고해보면서 굉장히 많은 점을 느끼게 되었다. 항상 특정 Activity 안에 모든 코드를 다 집어넣는 식으로 개발을 해왔었고, 프로젝트 규모가 커지고 에러가 생겼을 때는 어느 부분에서 에러인지 찾다가 스트레스를 받는 경우도 빈번했었다. 더욱이 협업을 하게 된다면 다른 사람이 내 코드를 봤을 때 가독성도 좋아야 할 것이고 이해도 빨라야 할 텐데 그럴 자신이 없었다. 이렇게 반복되는 문제들 때문에 더욱이 디자인 패턴에 대한 공부의 필요성을 몸소 느끼게 되었다.

 

디자인 패턴은 `소프트웨어 공학'의 한 개념이다. 소프트웨어 설계 시 특정 맥락에서 발생하는 고질적인 문제들을 효율적으로 해결하기 위해 설계된 해결책이며 또, 이러한 문제들이 지속적으로 발생할 때 재사용할 수 있는 해결책이다.

패턴의 사전적 의미는 일정한 형태나 유형을 의미한다. 이를 소프트웨어적으로 생각해보면 서로 다른 모듈이나 기능의 소프트웨어를 개발할 때도 공통적인 문제가 존재하며 이를 해결하는 해결책에도 공통점이 있다. 이러한 공통점을 패턴으로도 볼 수 있다. 즉, 패턴은 공통의 솔루션을 만들어주어 협업 간에 원활한 의사소통을 제공하는 중요한 역할을 한다.

 

디자인 패턴의 구조는 크게 3가지로 구성된다.

 

1. Context

: 문제가 발생하는 여러 상황을 기술한다.

2. Problem

: 패턴이 적용되어야 할 여러가지 디자인 이슈들을 기술한다.

3. Solution

: 문제를 해결하도록 설계를 구성하는 요소들, 그 사이의 관계, 책임, 협력 관계를 기술한다.

 

아래는 디자인 패턴의 분류를 표로 나타내었다.


References

https://gmlwjd9405.github.io/2018/07/06/design-pattern.html

 

[Design Pattern] 디자인 패턴 종류 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

'SW Engineering > Design Patterns' 카테고리의 다른 글

(Design Pattern) 3. 행위 패턴  (0) 2021.12.02
(Design Pattern) 2. 구조 패턴  (0) 2021.09.26
(Design Pattern) 1. 생성 패턴  (1) 2021.09.19