디자인 패턴 (Design Pattern) 이란?

 

- "초기에는 새로운 요구 사항을 빠르게 개발해 주었는데, 시간이 지날수록 간단한 요구 사항 조차도 제 때 개발이 안되는 상황"을 방지.

- 요구 사항의 적용에 있어 유연함(Flexibility)를 얻을 수 있음.

 

위와 같은 객체 지향적 소프트웨어 개발 방법론이다.

 

* 절차 지향 (Procedural Oriented) | 데이터를 조작하는 프로시저(혹은 함수)로 프로그램을 구성하는 기법.

장점 : 절차적으로 수행되는 코드에 의한 시간 단축.

 -> 하드웨어의 발전이 더딘 과거 개발 환경에서의 큰 이점으로 작용.

단점 : 수정 사항 반영 시 기존 개발된 절차에 영향을 받는 부분을 전반적으로 수정해야 하기 때문에 효율성 저하.

 -> 하드웨어 사양의 발전으로 인하여 절차적 수행에서의 시간 단축은 큰 의미가 없어짐.

 

* 객체 지향 (Object Oriented) | 데이터와 프로시저를 객체(Object)로 묶어 관리. 객체 구조에 의존된 기법.

장점 : 객체 구조에서 데이터와 프로시저의 독립성과 프로젝트의 유연성을 동시에 갖출 수 있음.

 -> 거대한 솔루션 급 소프트웨어의 추가 개발과 유지 보수, 커스터마이징까지를 생각한다면 비용을 고려했을때 절차 지향 기법보다 효율적.

 -> 대다수의 소프트웨어 업체의 퀄리티가 이러한 객체 지향적 설계에 대한 노력에 의해 평가됨.

단점 : 초기 설계 단계가 매우 중요한만큼 절차 지향보다 더 많은 시간과 노력이 소모됨.

 -> 초기 단계에서는 더딜 수 있으나 추후 안정성을 고려한다면 반드시 사용되어야 할 기법 중 하나.

 

디자인 패턴은 객체 지향적 기법을 적용한 소프트웨어에서의 효율적이라고 정형화된 어떠한 규칙을 나타낸다고 볼 수 있다.

 

디자인 패턴을 들어가기에 앞서, 객체 지향에 대해 더욱 알아보도록 하자.

 

 

출처: 최범균, 『개발자가 반드시 정복해야 할 객체 지향과 디자인 패턴』, 인투북스(2014)

'IT > Design Pattern' 카테고리의 다른 글

객체 지향적 설계 원칙 : SOLID  (0) 2018.12.14
객체 지향(Object Oriented) 이란?  (0) 2018.09.18

+ Recent posts