라이킷 10 댓글 2 공유 작가의 글을 SNS에 공유해보세요

You can make anything
by writing

C.S.Lewis

아키텍처의 구조

아키텍처는 무엇으로 이루어지는가?

by Jin May 19. 2021

아키텍처는 일반적인 정의에 따르면 설계자가 원하는 기능을 구조로 표현하는 고수준 결과물이다. 정의만 보고는 간단하게 느껴질 수 있으나,  아키텍처를 직접 표현하라고 하면 그렇게 쉽지 않다. 그래서, 아키텍처를 용어 상의 정의보다 무엇으로 이루어져 있는지 알아보는 게 도움이 된다.


결론부터 말하면 아키텍처는 의도, 규칙, 구성, 대상으로 이루어진다.


첫 번째, 아키텍처는 의도를 가져야 한다. 아키텍처는 설계의 결과물로, 설계가 최종 산출물로 구현하고자 하는 설계자의 생각을 표현하는 과정인 만큼 아키텍처에는 설계자의 생각, 의도가 담겨 있다. 아키텍처의 의도는 아키텍처의 존재의 의미가 된다.


두 번째, 아키텍처는 규칙을 가져야 한다. 설계자는 아키텍처에 투영하고자 하는 의도를 규칙으로 표현한다. 규칙은 설계 규칙 외에도 그 외에 구현 과정에서 준수해야 하는 항목들, 제약사항이 포함한다.


세 번째, 아키텍처는 구성을 가져야 한다. 아키텍처는 기능을 구조로 맵핑하는 설계 결과물이다. 맵핑하는 방식에는 시스템을 구성하는 요소와 요소 간의 관계, 요소들을 포함하는 전체 시스템의 경계, 시스템과 환경 간의 관계 등을 포함한다. 앞서 아키텍처가 갖는 규칙이 구체화되면 구성이 만들어진다.


마지막으로 아키텍처는 대상 (결과물)을 가져야 한다. 대상 (결과물)은 아키텍처를 기초로 만들어질 최종 산출물을 의미한다. 제품 아키텍처라면 제품, 시스템 아키텍처라면 시스템, 조직 아키텍처라면 조직이 된다.

종합해보면, 다음과 같이 표현할 수 있다.


의도 → (표현) → 규칙 → (구체화) → 구성 → (구현) → 대상/결과물


플랫폼 아키텍처를 예를 들어서 설명해보자. 플랫폼 아키텍처는 플랫폼을 기반으로 하는 제품군 아키텍처의 한 종류이지만, 플랫폼 아키텍처는 플랫폼을 정의하기 위해서 활용한다.


첫 번째, 플랫폼 아키텍처를 설계하기 전에 다음과 같은 의도를 가지고 있다.

"프로덕트 패밀리 product family를 효율적으로 구성하겠다."


두 번째, 의도를 다음과 같은 규칙으로 표현한다.

"플랫폼을 고정 영역으로 하여 세대 간 재사용하고, 플랫폼 외 영역은 변동 영역으로 세대별로 차별화하겠다."


세 번째, 규칙을 다음과 같은 구성으로 구체화한다.

플랫폼, 플랫폼 외 모듈들, 플랫폼과 모듈 간의 인터페이스, 시스템 경계로 구체화한다.


마지막으로 플랫폼을 만들어 낸다.


아키텍처라는 용어가 무분별하게 사용되는 느낌이 있다. 만약 아키텍처라는 말을 듣게 된다면 의도, 규칙, 구성, 대상으로 표현하길 바란다. 이해가 좀 더 쉬워질 것이다. 만약 4가지 중에 하나라도 명확하지 않다면 아키텍처가 아닐 가능성이 높다.



매거진의 이전글 Variety Mechanism이란 무엇인가?

브런치 로그인

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari