2.1.2 아키텍처 스타일 개요
실제 건물 아키텍처는 빅토리안(Victorian), 아메리칸 크래프츠맨(American Craftsman), 아트 데코(Art Deco) 등 정해진 양식을 따르는 경우가 대부분입니다. 이런 스타일은 각 건물의 특성과 자재를 좌우하는 설계 결정(design decision)의 모음집이라고 볼 수 있습니다. 아키텍처 스타일 개념은 소프트웨어에도 그대로 적용됩니다. 소프트웨어 아키텍처 지식 체계의 선구자인 데이비드 갈란(David Garlan)과 메리 쇼(Mary Shaw)는 아키텍처 스타일을 이렇게 정의합니다(<소프트웨어 아키텍처 개론(An Introduction to Software Architecture)>, 1994년 1월8).
아키텍처 스타일은 체계적인 조직의 관점에서 시스템 군을 정의한다. 좀 더 구체적으로 말하면, 아키텍처 스타일은 그 스타일로 만든 인스턴스에서 사용 가능한 컴포넌트와 커넥터(connector)의 보케블러리(vocabulary, 용어집), 그리고 이들을 조합할 수 있는 제약 조건(constraint)을 결정한다.
특정 아키텍처 스타일은 엘리먼트(컴포넌트)와 관계(커넥터)의 한정된 팔레트(palette, 사용 가능한 범위)를 제공하며, 이를 토대로 애플리케이션 아키텍처의 뷰를 정의할 수 있습니다. 애플리케이션은 대부분 아키텍처 스타일을 조합해서 사용합니다. 모놀리식 아키텍처도 구현 뷰를 하나의 (실행/배포 가능한) 컴포넌트로 구성한 아키텍처 스타일이라고 할 수 있죠. 마이크로서비스 아키텍처는 애플리케이션을 느슨하게 결합된 여러 서비스로 구성하는 아키텍처 스타일입니다.