2022-12-25 소프트웨어공학_13

2022. 12. 25. 17:22학부 강의/소프트웨어공학


메리 솔로크리스마스


1. 디자인 패턴

 

 

사람들은 일정을 관리하거나, 할 일을 정리하고, 가계부를 작성하는 등 각자의 용도에 맞게 노션을 사용한다.

 

여기서 주목해야 할 것은 사람마다 노션을 사용하는 용도가 완벽하게 일치하진 않지만 비슷한 용도로 노션을 사용하는 경우가 더러 있다는 것이다.

 

이에 노션에서는 이용자들이 흔히 필요로 하는 페이지들로 하여금 빠르게 구현할 수 있게 템플릿을 제공한다.

 

노션뿐만 아니라 소프트웨어를 개발하는 과정에서도 비슷한 설계를 빠르게 구현할 수 있게 템플릿을 제공한다.

 

소프트웨어를 구현하는 것에 있어서 자주 사용하게 되는 설계 형태를 정형화하여 하나의 설계 템플릿으로 만든 것을 디자인 패턴이라고 한다.

 


2. GoF 디자인 패턴

 

Gang of four의 약자로 교수님이 왜 GoF인지에 관하여 설명해주셨지만 중요하지 않다.

 

그냥 4명이서 만들어서 GoF 디자인 패턴이라고 알고 있으면 된다.

 

Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 4명이 제안했다.

 

객체지향 개념에 따른 설계 중 재사용이 유용한 설계를 디자인 패턴으로 정립한 것이다.

 

GoF 패턴은 크게 생성 패턴, 구조 패턴, 행위 패턴으로 구분한다.

 


가. 생성 패턴

 

 

객체를 생성하는 것과 관련된 패턴

 

객체의 생성과 변경이 전체 시스템에 미치는 영향은 최소화하고 객체의 생성과 참조 과정을 추상화 함으로써 시스템 개발 시 부담을 줄인다.

 

 


나. 구조 패턴

 

 

프로그램 내의 자료구조나 인터페이스 구조 등 프로그램의 구조를 설계하는 데 활용될 수 있는 패턴

 

복잡한 구조를 갖는 시스템을 개발하기 쉽게 만들기 위해서 사용한다.

 

클래스나 객체를 합성해서 더 큰 구조로 만들기도 한다.

 

구조 패턴을 이용하면 새로운 복합 객체를 효과적으로 작성할 수 있다.

 

 


다. 행위 패턴

 

 

반복적으로 사용되는 객체들의 상호작용을 패턴화 한 것으로, 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법 정의

 

행위 패턴은 메시지 교환과 관련된 것으로, 객체들 간의 행위나 알고리즘 등과 관련된 패턴을 의미한다.

 

객체의 기능은 변하지 않지만 일을 처리하는 방법이 달라질 때 상속 개념을 사용.