소프트웨어 아키텍처는 높은 추상화 단계에서의 소프트웨어 설계이다. 아키텍처 결정 중 일부는 코드 깊숙이 영향을 미치므로 아키텍처와 디자인 사이의 경계를 구분하기 어려울 수도 있다.
아키텍처가 시스템의 골격 역할을 하고, 품질 속성에 영향을 미치며, 시스템을 제한하기 때문에 소프트웨어 아키텍처 선택은 중요하다.
아키텍처는 시스템 전반에 영향을 끼친다. 시스템의 목적에 따라 올바른 아키텍처를 선택해야만 한다. 아키텍처는 기능에 직접적인 영향을 끼치지 않기 때문에 어느 정도는 아키텍처와 기능을 자유롭게 조합사여 사용할 수 있다. 하지만 필요한 기능과 품질 속성에 아키텍처가 적합하다면 시스템을 구축하기가 훨씬 쉬워진다. 반대로 아키텍처가 접합하지 않다면 요구사항을 충족하는 데 어려움이 있어 어느 선에서 타협해야할 수도 있다.
아키텍처를 선택하면 시스템에 제약 조건이 부과되어 다른 옵션이 제한된다. 개발자라면 확장성을 고려하기 때문에 제약 조건을 최소화하려 한다. 하지만 적절한 제약 조건은 개념을 구체화하고, 개념적 무결성을 촉진하며, 복잡성을 줄이고, 불필요한 상상력을 줄여 로직에 집중시킬 수 있기 때문에 얻을 수 있는 장점이 많아 필수적이다.
참고: 적정 소프트웨어 아키텍처
'아키텍처' 카테고리의 다른 글
아키텍처 세 가지 접근 방식 (2) | 2023.01.28 |
---|---|
추정 아키텍처와 레퍼런스 아키텍처 (13) | 2023.01.28 |
소프트웨어 아키텍처의 정의 (12) | 2023.01.24 |
소프트웨어 아키텍팅의 기본 (12) | 2023.01.23 |
리스크 주도 소프트웨어 아키텍처란? (2) | 2023.01.23 |
댓글