정보관리기술/소프트웨어공학

아키텍처 스타일과 디자인 패턴

아이티신비 2024. 1. 20. 10:00

문제6) 아키텍처 스타일과 디자인 패턴에 대하여 다음을 설명하시오.

 

가. 아키텍처 스타일과 디자인 패턴의 차이점

나. 대표적인 아키텍처 스타일 3가지

다. GoF 디자인 패턴의 유형을 구분하고, 유형별 대표적인 디자인 패턴 설명

 

답)

 

 

1. 소프트웨어 아키텍처 스타일과 디자인 패턴의 차이점

가. 소프트웨어 아키텍처 스타일과 디자인 패턴의 정의

소프트웨어 아키텍처 스타일
디자인 패턴
  • 소프트웨어를 구성하는 요소 및 관계 타입과 더불어 어떻게 사용되는지에 대한 제약사항 집합을 기술하여 반복되는 아키텍처 컨셉을 서술한 소프트웨어 아키텍처를 위한 설계 유형 모음
  • 소프트웨어 상세 설계에서 자주 발생하는 문제에 대한 일반적이고 반복적인 해결책
  • 프로그래머들이 유용하다고 생각되는 객체들의 일반적인 상호 작용 방법들을 모은 목록
  • 소프트웨어 아키텍처와 디자인 패턴은 소프트웨어 설계에 있어 적용 시점 및 대상에 있어 차이점이 있음

 

나. 소프트웨어 아키텍처 스타일과 디자인 패턴의 비교

구분
소프트웨어 아키텍처 스타일
디자인 패턴
적용수준

적용시점
  • 소프트웨어 기본 설계 단계
  • 소프트웨어 상세 설계 단계
관점
  • 조직적 구성 관점
  • 경험 기반의 아키텍처 구성
  • 개발자의 구현 관점
  • 경험 기반의 모델링
특징
  • 아키텍처의 품질요소를 개선
  • 기능적 컴포넌트를 변경하고 확장시키는데 초점
  • 동일한 기능을 수행하는 또다른 아키텍처 구성 패턴 사용의 제약
  • 단순화, 이해 용이성
  • 분석과 설계에 대한 추상적인 관점 제공
  • 개발자가 이해하여 적용할 수 있는 형태로 제공
  • 확장성, 재사용성, 이해용이성 등 제공
주요유형
  • 분산 스타일
  • 파이프와 필터 스타일
  • 데이터 중심 스타일
  • 규칙기반 스타일
  • 블랙보드 스타일
  • 레이어 스타일
  • Adaptor Pattern
  • Factory Pattern
  • Command Pattern
  • Interpreter Pattern
  • Facade Pattern
  • Builder Pattern
문제해결
측면
  • 접근 방법에 집중
  • 경량화된 가이드라인
  • 특정 컨텍스트에서의 검증된 구조적 해결 방안 제시
  • 소프트웨어 아키텍처 스타일을 이용해 소프트웨어 전반의 아키텍처 기본 설계를 마친 후 상세설계 시점에서 디자인 패턴을 활용하여 패키지 내부의 클래스간의 관계를 설정
  • 소프트웨어 개발의 효율성 제고와 재사용성을 극대화 하는 측면에서 공통점 존재

 

2. 대표적인 아키텍처 스타일 3가지

가. 제로 트러스트 보안 모델과 트러스트 보안 모델 보안원리 개념 비교

아키텍처
스타일
개념도
설명
Blackboard
  • 블랙보드(blackboard) : 솔루션(solution space) 에서 가져온 객체(object)를 가지고 있는 구조화된 전역 메모리(structures global memory)
  • 지식소스(Knowledge source) : 각각의 표현을 기술한 모듈
  • 컨트롤 컴포넌트(control component) : 상황에 맞게 모듈을 선택/설정/실행 합니다.
Repository
  • 도메인과 데이터 사이를 중재하는 매핑레이어로 도메인 객체에 접근하기 위한 콜렉션과 같은 인터페이스 가짐
Layered Architecture
  • Opened : 레이어를 건너 뛴 통신 가능
  • Closed : 레이어를 건너 뛰어서 통신 불가능
Master and Slave
  • 마스터 슬레이브 두 부분으로 구성
  • 슬레이브의 DB 는 마스터 DB와 동기화
Batch Process
  • 빅 데이터를 일괄적으로 처리할 수 있는 단위로 구분하여 순차적으로 데이터를 처리하는 스타일
MVC Pattern
  • Model / View / Controller로 구분하여 애플리케이션을 구축
Micro Service Architeture
  • REST API 를 이용하여 service와 API Gate간 통신
  • 각 서비스를 위한 데이터 베이스가 따로 존재
Micro Kernel(Plug-in)

  • 자주 사용되고 공통으로 서비스 되는 모듈을 micro kernel 로 모으고, 추가 기능 및 서비스는 plug-in형태로 제공

 

3. GoF 디자인 패턴 유형 및 유형별 대표 디자인 패턴 3가지

가. GoF 디자인 패턴 유형

구분
주요 유형
설명
생성
Factory Method
  • 객체를 생성하는 인터페이스를 미리 정하는 패턴
Prototype
  • 원형을 복사함으로써 새로운 객체를 생성하는 패턴
Singleton
  • 인스턴스에 접근할 수 있는 전역적인 접촉점 제공
구조
Adapter
  • 사용자가 원하는 인터페이스로 변환하는 패턴
Bridge
  • 추상 층을 분리하여 각자 독립적으로 변형하는 패턴
Faceade
  • 상위 수준의 정의하고 작성된 문자를 해석하는 패턴
행위
Interpreter
  • 표현 수단을 정의하고 작성된 문자를 해석하는 패턴
Templete Method
  • 알고리즘의 뼈대만을 정의하고 각 단계 수행
Observer
  • 다른 객체들이 변화를 통지 받고 자동으로 갱신 패턴

 

나. GoF 유형별 대표 디자인 패턴 3가지

구분
디자인 패턴
설명
생성
Singleton

구조
Facade
행위
Templete Method

 

 

 


 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥