-
Architectural Styles (1) - 개요Learn/Architecture 2023. 4. 7. 00:37
다양한 종류의 Architectural Style과 각각의 Quality Attribute에 대해 살펴보자.
# Quality Attribute
품질 속성은 여러 가지 버전이 있는데 아래 정도만 같이 살펴보려한다.
핵심만 살펴보고 넘어가자.
Availability (가용성)
시스템이 얼마나 오래 끊김없이 작동하냐에 대한 속성이다.
백업 서버가 있어서 장애가 있어도 24시간 가동된다면 가용성이 높다.
Interoperability (상호 운영성)
분산된 환경에서 인터페이스를 통해 정보를 잘 주고받을 수 있는지에 대한 속성이다.
아래와 같이 Mediator가 중재 해 줄 경우 상호 운영성이 높다.
Modifiability (변경 용이성)
얼마나 수정이 용이한지에 대한 속성이다.
커플링이 강하면 변경 용이성이 떨어진다.
Performance (성능)
성능을 높일 수 있거나 성능이 떨어지는 것을 막을 수 있으면 성능이 높다.
가령 아래와 같이 트래픽이 몰려도 성능이 떨어지지 않게 해줄 수 있으면 성능이 높다.
Security (보안성)
악의적인 행동을 막을 수 있냐에 대한 속성이다.
가령 시스템이 분산된 노드에 있다면 공격 포인트가 많아져서 보안성이 낮다.
Testability (테스트 가능성)
테스트를 쉽게 할 수 있냐에 대한 속성이다.
예를 들어 재현이 어려운 환경이면 테스트 가능성이 낮다.
Usability (사용성)
유저가 원하는 작업을 하기 수월하면 사용성이 높다고 한다.
예시로 MVC패턴처럼 View를 분리하면 뭉쳐있는 것 보다 수정이 쉬우므로 사용성이 높다.
# Architectural Style
아래와 같은 스타일들이 있다.
각각 장단점이 있으므로 품질 속성을 잘 따져서 상황에 맞게 사용해야 한다.
Category Style Sub-style Data Flow Batch Sequential Pipe and Filter Process Control Data Centered Shared Repository Blackboard Implicit Invocation Event Based Message Based Interaction Oriented Model-View-Controller Presentation-Abstraction-Control Hierarchical Main-Subroutine Master-Slave Layered Virtual Machine Microkernel Distributed Multi-tier Client-Server Broker Dispatcher Service-Oriented Microservice Edge-Based 'Learn > Architecture' 카테고리의 다른 글
Architectural Styles (3) - Implicit Invocation, Interaction Oriented (0) 2023.04.09 Architectural Styles (2) - Data Flow, Data Centered (0) 2023.04.07 [Design Pattern] MVC Pattern (0) 2022.09.25 [Design Pattern] Bridge Pattern (0) 2022.09.25 [Design Pattern] Composite Pattern (0) 2022.09.25