본문 바로가기
IT

소프트웨어 아키텍처 전술과 적용할 때 고려해야 할 설계 결정 항목들

by 파이프라인만들기 2023. 1. 25.

소프트웨어 아키텍처 전술은 품질 속성 반응에 영향을 주는 설계 결정이며, 품질 수준을 조절 가능한 상위 수준의 패턴을 결정하는 기법입니다. 이번 글에서는 품질 속성 시나리오와 아키텍처 전술의 관계, 설계 결정 요소, 전술 목록에 대해서 알아보겠습니다.

아키텍처 전술

이번 글의 순서는 아래와 같습니다.

  • 품질 속성 시나리오와 아키텍처 전술의 관계
  • 아키텍처 전술을 적용할 때 고려해야 할 설계 결정 항목들
  • 아키텍처 전술 목록 기본 개념과 상세 아키텍처 전술들

 

품질 속성 시나리오와 아키텍처 전술의 관계

소프트웨어 아키텍처의 품질 속성 시나리오에는 자극의 근원(Source), 자극(Stumuls), 대상(Artifact), 환경(Environment), 반응(Response), 반응 측정(Response Measure) 등이 있으며 주요 구성요소는 자극(Stimuls)과 응답(Response)입니다.

 

품질 속성 시나리오 주요 구성요소 : 자극과 반응

 

소프트웨어 아키텍처 전술은 품질 속성 시나리오의 자극 및 응답과 관련이 있습니다. 아키텍처 전술을 통해 자극에 대한 응답이 설계자가 원하는 수준의 응답을 수행하도록 도달하도록 설계할 수 있습니다.

아키텍처 전술을 통한 응답 값 조정

 

아키텍처 전술을 적용할 때 고려해야 할 설계 결정 항목들

품질 속성 시나리오에 아키텍처 전술을 적용할 때 고려되는 설계 결정 항목들은 다음과 같습니다.

  • 책임 할당 allocation of responsibilities
  • 조정 모델 coordination model
  • 데이터 모델 data model
  • 리소스 관리 resource management 
  • 아키텍처 요소 매핑 mapping architectural elements 
  • 바인딩 시간 결정 binding decision
  • 기술 선택 choice of technology

 

책임 할당은 기본적인 시스템의 중요한 책임을 식별하고, 식별된 책임이 런타임 요소(컴포넌트와 커넥터)에 어떻게 할당되는지 결정하는 것입니다.

책임이 할당되는 런타임 요소(Element)

 

조정 모델은 조정할 시스템 요소 간의 커뮤니케이션 방식을 결정하는 것입니다. 여기서 조정(Coordination)은 런타임 요소들이 서로 상호작용하는 메커니즘입니다.

요소들 간에 관계 상호작용(Relation)

 

데이터 모델은 시스템 관점의 데이터를 표현하고 해석하는 방법입니다. 데이터를 구성하고, 데이터의 특성과 함수를 결정합니다.

데이터 모델

 

리소스 관리는 아키텍처 안에서 공유되는 리소스의 사용을 중재하는 것입니다. 하드웨어 리소스와 소프트웨어 리소스를 포함해서 관리합니다.

노드와 컴포넌트 등의 리소스 관리

 

아키텍처 요소 매핑은 서로 다른 유형의 아키텍처 구조에 있는 요소들 사이의 매핑입니다. 구체적으로는 소프트웨어 요소와 환경 요소를 매핑하는 것입니다.

아키텍처 요소 매핑 예시

 

바인딩 시간 결정은 범위, 라이프 사이클의 바인딩 시점과 가변 달성 메커니즘을 수립하는 것입니다. 이를 위한 바인딩 결정 중 구축 비용과 변경 비용을 검토합니다.

 

기술 선택은 위 요소들을 실현할 수 있는 적당한 기술들을 선택하는 것입니다. 모든 아키텍처 결정은 최종적으로 특정한 기술로 실현됩니다. 따라서 기술 선택이 고려되어야 합니다.

 

아키텍처 전술 목록 기본 개념과 상세 아키텍처 전술들

아키텍처 전술 목록은 기존에 사용하는 아키텍처 전술을 정리한 것입니다. 기본원칙으로 부터 설계 단편을 구축할 수 있도록 도움이 됩니다. 전술 선택은 다른 품질 속성과 구현 비용 사이에 trade-off 등을 고려해야 합니다.

 

상세 아키텍처 전술에는 다음과 같은 것들이 있습니다.

  • 변경용이성(Modifiability) 아키텍처 전술
  • 가용성(Availability) 아키텍처 전술
  • 상호운용성(Interoperability) 아키텍처 전술
  • 배포용이성(Deployability) 아키텍처 전술

 

다음 글에서는 위 상세 아키텍처 전술에 대해서는 자세하게 다뤄보겠습니다.

 


※ 함께 보면 좋은 글

 

1. 소프트웨어 아키텍처의 품질 속성 특징과 문제점, 그리고 품질 속성 시나리오

 

소프트웨어 아키텍처의 품질 속성 특징과 문제점, 시나리오(with 예시)

소프트웨어 아키텍처에서 품질 속성(Quality attribute)은 가장 중요한 요소입니다. 이번 글에서는 소프트웨어 아키텍처의 품질 속성 특징과 문제점, 그리고 문제점을 극복하기 위한 품질 속성 시나

mmp2022.tistory.com

 

2. 소프트웨어 아키텍처 정의, 역할, Desing Mindset

 

소프트웨어 아키텍처 정의, 역할, Design Mindset 알아보기

이번 글에서는 소프트웨어 아키텍처를 정의하는 여러 가지 표현들과 소프트웨어 아키텍처의 역할에 대해서 알아보겠습니다. 그리고 좋은 소프트웨어 아키텍처를 설계하기 위해 필요한 4가지 De

mmp2022.tistory.com

 

3. 소프트웨어 아키텍트 정의, 하는 일, 되는 방법, Design Thinking

 

소프트웨어 아키텍트(SA) 정의, 하는 일, 되는 방법, Design Thinking 4가지 원칙 알아보기

이번 글에서는 소프트웨어 아키텍트(Software Architect, SA)에 대해서 알아보겠습니다. 소프트웨어 아키텍트 기본 개념, 하는 일, 소프트웨어 아키텍트가 되는 방법과 Design Thinking 4가지 원칙 등에 대

mmp2022.tistory.com

 

댓글