본문 바로가기

소프트웨어 공학

디자인 패턴 기본

훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com

 

 

정의와 사용 이유


소프트웨어 공학을 배우는 이유는 낮은 비용으로 높은 퀄리티의 소프트웨어를 만들기 위해서입니다.

소프트웨어 비용 절감과 생산성 증가, 퀄리티 증가를 위해서 재사용 가능한 소프트웨어 개발에 힘써야 하는데, 이때 사용할 수 있는 것들이 라이브러리, 디자인 패턴 등등이 있습니다.

 

디자인 패턴에 대해서 제대로 공부하고 활용한다면, 재사용성이 좋고 퀄리티가 좋은 소프트웨어를 만들 수 있겠습니다.

 

단, 주의할 점이 있다면 디자인 패턴을 아무 곳에나 갖다 붙인다고 좋은 소프트웨어를 만들 수 있는 게 아니라, 해당 디자인 패턴이 필요한 상황을 명확하게 인지하고 분석해야 적재적소에 활용하여 좋은 소프트웨어를 만들 수 있다는 점입니다.



 

카테고리


1. creational

class와 object를 생성할 때 사용하는 디자인 패턴

대표적으로 factory method, abstract factory, builder, prototype, singleton 등이 있습니다.

 

2. structural

구현 시 사용하는 디자인 패턴

대표적으로 adapter, bridge, composite, decorator, proxy 등이 있습니다.

 

3. behavioral

runtime시 interactions를 정의할 때 사용하는 디자인 패턴

대표적으로  interperter, iterator, state, strategy 등이 있습니다.



 

기본 원칙


디자인 패턴의 원칙 (모든 디자인 패턴에 적용되는 것)

 

1. interface는 implementation과 분리되어야 한다. 

2. 한 interface를 다양하게 implementation 할 수 있도록 한다. 런타임 시에 갈아 끼울 수 있도록

3. interface와 implementation을 활용해 공통적인 것은 닫아버리고, 변화 가능한 것을 열어둔다. (개방 폐쇄 원칙)



 

장점


 

1. 설계 패턴에 내재된 전문지식의 활용

2. 개발자들 간 커뮤니케이션 용이

3. 높은 퀄리티의 Object - Oriented - Design

- 모듈화

- 가독성

- 유지보수 용이


 

다음 글부터는 실제 디자인 패턴에 대해 분석해보겠습니다.

 

'소프트웨어 공학' 카테고리의 다른 글

(디자인 패턴) Adaptor 패턴  (0) 2021.04.16
(디자인 패턴) Factory Method Pattern  (0) 2021.04.16
(UML) Activity Diagram & State Machine Diagram  (0) 2021.04.09
(UML) Sequence Diagram  (0) 2021.04.09
(UML) Class Diagram  (0) 2021.04.02