시스템 아키텍처란?
시스템 아키텍처는 시스템의 구조와 동작을 설명하는 개념적 모델입니다. 시스템은 일반적으로 여러 구성 요소와 하위 시스템으로 구성됩니다. 그들은 모두 함께 작동하여 전체 시스템을 구현합니다. 시스템 아키텍처 설명은 전체 시스템의 구조와 동작을 설명하는 형식적인 설명입니다. 또한 시스템 아키텍처를 설명하는 데 도움이 되는 것은 아키텍처 설명 언어(ADL)입니다. 다양한 유형의 시스템 아키텍처가 있습니다. 그 중 일부는 다음과 같습니다.
하드웨어 아키텍처 – 시스템의 물리적 구성 요소 및 해당 연결을 설명합니다.
엔터프라이즈 아키텍처 – 엔터프라이즈 수준 애플리케이션의 분석, 설계, 계획 및 구현을 수행하는 방법을 설명합니다. 다양한 전략을 사용하여 성공적으로 지원을 완료하는 데 도움이 됩니다.
협업 시스템 아키텍처 – 시스템 구성 요소 간의 상호 연결을 설명합니다. 몇 가지 예로 인터넷, 합동 방공 시스템, 지능형 그리드 등이 있습니다.
소프트웨어 아키텍처란 무엇인가
소프트웨어 아키텍처는 성능, 보안 및 관리 용이성과 같은 품질 속성을 최적화하면서 기술 및 운영 요구 사항을 충족하는 솔루션을 정의하는 상위 수준 구조입니다.
소프트웨어 아키텍처 설계에 영향을 미치는 많은 품질 속성이 있습니다. 운영 및 기술 수준에서 소프트웨어의 요구 사항과 기대치를 정의합니다. 성능, 내결함성, 확장성 및 안정성과 같은 속성을 고려하는 것이 중요합니다. 결국 소프트웨어 아키텍처를 사용하여 개발된 최종 소프트웨어 제품은 유연하고 사용하기 쉬우며 유지 관리 및 재사용이 가능해야 합니다. 품질 속성은 특성이라고도 합니다.
다양한 소프트웨어 아키텍처 패턴이 있으며 그 중 일부는 다음과 같습니다.
소프트웨어 아키텍처 패턴
서버리스 아키텍처
이벤트 기반 아키텍처
- 이벤트 생산자와 이벤트 소비자를 기준으로
- 시스템을 여러 부분으로 분리하는 데 중점을 둡니다.
- 일부 다른 구성 요소가 이벤트를 트리거할 때 각 부분이 트리거됩니다.
마이크로 서비스 아키텍처
- 소규모의 독립적인 모듈식 서비스 개발에 집중
- 각 서비스는 특정 문제를 해결하거나 어떤 종류의 기능을 수행할 수 있습니다.
- 모든 서비스는 API를 통해 서로 통신합니다.