본문 바로가기
(Pilot) 탑기공/소프트웨어 개발

[탑기공] 디자인 패턴(Design Pattern)

by 두음달인 2023. 3. 6.
반응형

 


가) 디자인 패턴 개념

 

소프트웨어 설계의 특정한 맥락에서(in a context)
반복해서 해결해야 할 문제(recurring problem)에 대해서
일반적이고 재사용이 가능한 해결 방법

 

 

디자인패턴 분류

 

[두음] 생구행 클객

목적에 따라 '생성 패턴', '구조 패턴', '행위 패턴'으로 나눌 수 있다.

 

생성 패턴: 객체의 생성과정에 관여하는 패턴

구조 패턴: 클래스나 객체의 합성에 관한 패턴

행위 패턴: 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의하는 패턴

 

범위에 따라 패턴을 주로 클래스에 적용하는지 아니면 객체에 적용하는 지를 구분할 수 있다.

 

클래스 패턴: 클래스와 서브 클래스 간의 관련성을 다루는 패턴.

 관련성은 주로 상속이며, 컴파일 타임에 정적으로 결정한다.

객체 패턴: 객체 관련성을 다루는 패턴으로서 런타임에 변경할 수 있으며 동적인 성격을 갖는다.

 

나) 대표적인 디자인 패턴

 

"팩토리 메소드 패턴과 인터프리터는 기출문제입니다."

 

① 객체 생성 패턴

 

  • Factory Method Pattern

- 정의: 객체를 생성하되, 직접 객체 생성자를 호출해서 객체를 생성하는 것이 아니라 대행 상수를 통해  간접적으로 객체를 생성하는 방식

- 장점: 생성되는 객체에 무관하게 동일한 형태로 프로그래밍이 가능하다. 따라서 유연하고 확장성이 있다.

- 단점: 생성할 객체의 종류가 달라질 때마다 새로운 하위 클래스를 정의해야 한다는 점

- 사용 예제: OS에서 해당 프로그램의 더블클릭 시, OS에 의해 해당 프로그램이 구동되는 과정

 

③ 행위 패턴

 

  • Interpreter 패턴

- 정의: 비교적 간단한 문법에 대해 문법 자체를 클래스로 정의해서 문법 검사와 함께 필요한 기능도 별도의 자료구조 없이 효율적으로 수행할 수 있게 만들어주는 클래스 구조

- 장점: 문법의 변경이나 확장이 용이, 문법 구현의 용이

 

 

 

 

꼭 탑싯(TOPCIT) 에센스 정독해 보시길 권해 드립니다.

 

 

기출문제

 

(관리 129-2-6)
객체지향의 기법 중에는 리팩토링(Refactoring)과 디자인패턴(Design Pattern)이 있다.
두 기법을 각각 정의하고 공통점과 차이점에 대하여 설명하시오.

 

(응용 117-2-1)
디자인패턴 중 팩토리 메소드 패턴(Factory Method Pattern)을 사용하는 이유를 설명하고, 아래의 클래스다이어그램을 이용하여 팩토리 메소드 패턴이 적용된 자바코드(JAVA Code)를 생성하시오.

 

(관리 104-3-1)
객체지향 소프트웨어 설계에 많은 도움을 주는 GoF의 디자인 패턴(Design Pattern) 영역을 목적과 범위에 따라 분류하고, 분류별 특성을 설명하시오.
또한, 객체지향시스템에서 개발된 기능의 재사용을 위해 사용되는 대표적 기법인 화이트박스 재사용(White-box Reuse), 블랙박스 재사용(Black-box Reuse) 및 위임(Delegation)이 패턴과 어떤 관계가 있는지 설명하시오.

 

(관리 87-3-1)
디자인 패턴에 대해 다음 물음에 답하시오.

(1) GoF(Gang of Four)가 제시한 나머지 디자인 패턴의 개념과 종류를 설명하시오.
(2) 인터프리터(Interpreter)라 불리는 디자인 패턴을 설명하시오.

 

(관리 81-1-2)
디자인 패턴과 아키텍처 스타일의 차이를 설명하시오.

 

참고 자료

 

탑싯 에센스 - 소프트웨어 개발

반응형

댓글