1. 소프트웨어 아키텍처 (기본 구조)
ㅇ 소프트웨어 시스템의 구조를 정의하는 일련의 고수준 결정 사항 (설계 관점)
* (기능,속성,제약사항 등에 따라, 구성 요소들을 조직화하여, 전체 프레임워크를 표현하게됨)
- 서브시스템(컴포넌트,구성요소)들과 그들 간의 관계를 정의
. (대규모 시스템 > 서브 시스템 > 서비스 모듈)
- 서브시스템을 소프트웨어 또는 하드웨어로 구현할 지 여부
- 외부와의 인터페이스를 결정
- 전체 제어 구조 설계
- 중앙집중, 분산처리 방식을 정하는 등
ㅇ 영향 및 역할
- 시스템의 성능, 확장성, 유지보수성 등에 큰 영향을 미치며,
- 시스템의 성공적인 개발과 운영을 위해 중요한 역할을 합
2. 주요 소프트웨어 아키텍처 패턴들 例)
ㅇ 데이터 중심 아키텍처
ㅇ 데이터 흐름 아키텍처
ㅇ 클라이언트 서버 아키텍처
ㅇ 계층형 아키텍처
ㅇ 마이크로서비스 아키텍처
ㅇ MVC (Model/View/Controller) 아키텍처
ㅇ P2P (Peer-to-Peer) 아키텍처
ㅇ 3-Tier 아키텍처 등