소프트웨어 아키텍처는 이렇게 서로 연계된 설계를 반복적으로 만드는 일종의 템플릿입니다. 비록 소프트웨어 아키텍처도 설계를 해야 하는 것이지만, 설계 그 이상의 의미를 지닙니다. 효과적인 소프트웨어 아키텍처는 단순히 하나의 좋은 설계를 만드는 것이 아니라 좋은 설계를 수백수천 개 만들 수 있는 기반을 마련하는 것입니다. 그리고 이러한 부분은 소프트웨어 아키텍처가 지닌 잠재력이자 효과적인 아키텍처가 제공하는 가치라고 할 수 있습니다.
그렇다면 아키텍처를 구성하는 요소는 무엇일까요? 아키텍처에서 표준은 중요한 역할을 합니다. 따라서 IEEE 표준2에서 정한 아키텍처 정의부터 살펴보면 좋을 것 같습니다.
아키텍처는 시스템의 기본 구조로 구성 요소와 구성 요소 간 관계, 환경과의 관계, 시스템 설계와 진화를 통제하는 원칙으로 되어 있습니다.3
이러한 아키텍처 정의를 제대로 이해할 수 있도록 각 부분을 하나씩 자세히 살펴보겠습니다.