본문 바로가기
OutSystems

Designing Apps Using an Architecture Framework #3 - The Architecture Design Process

by 브루노W 2023. 3. 24.

아키텍처 설계 프로세스에 대해서 알아보겠다.


아키텍처를 비즈니스 목표에 맞추는 것이 기본이다.

비즈니스는 아키텍처를 지향해야 하므로 비즈니스 요구 사항과 개념을 모듈로 적절하게 변환해야 한다.

모듈은 비즈니스와 함께 발전하고 확장하는 동시에 서로 다른 비즈니스 라인 간에 독립적인 life-cycle을 보장할 수 있다.


아키텍처 설계는 공개(Disclose), 구성(Organize)조립(Assemble) 세 단계로 구성된다.


첫 번째 단계, 공개(Disclose) 단계비즈니스 개념, 통합 요구 사항비기능적 요구 사항이 공개되는 단계이다.

 

아키텍처 설계를 위해 아래와 같이 비즈니스 프로세스 및 요구사항을 확인해야 한다.

 

- 관련 사용자의 업무 내역, 역할, 상호 작용하는 응용 프로그램이나 사람 확인
- 기존 문서 분석, 비즈니스 이해 관계자와 대화

- 비즈니스 사용자가 인식하는 정보 아키텍처 확인 (사용자와 대화하거나 보강하거나 교체할 기존 시스템을 분석하는 등)

- 프로젝트에 포함될 통합 기술의 이해 (외부 연동, API 유형, 통신 프로토콜, I/O 구조 등)

- 예상되는 사용자 경험


처음부터 가능한 한 많은 개념을 공개하는 것이 중요하고 그래야만 프로젝트가 진행됨에 따라 더 많은 개념을 공개하고 더 많은 세부 정보를 찾을 수 있다.

 

처음에 주요 개념을 놓치면 미래에 애플리케이션의 복잡한 리팩토링이 발생할 수 있다.


구성(Organize) 단계에서는 아키텍처 캔버스의 레이어에 개념이 추가된다.

개념 정리를 시작하면 실제로 더 많은 개념을 공개할 수 있어 결국 공개와 구성은 함께 작동하며 반복이 필요하다.

인터페이스 관련 개념 및 프로세스는 End-User Layer에 배치되어야 한다.
핵심 비즈니스 개념은 Core Layer에서 끝나야 한다.
통합 요구 사항과 비기능적 요구 사항은 Foundation Layer에 배치해야 한다.


세 번째이자 마지막 단계, 조립(Assemble) 단계는 개념이 모듈로 조합되는 단계입니다.

이 단계에서는 아래 원칙을 따라야 한다.

- 다른 사람들과 관련된 개념은 결합되어야 함
- life-cycle이 다른 개념은 관련이 있더라도 서로 다른 모듈로 분할해야 함
- 통합 로직에서 재사용 가능한 로직을 분리해야 함
  (재사용 가능한 로직은 Core Layer에서 격리되어야 하며 통합 로직은 Foundation Layer에서 끝나야 함)
  (이는 재사용 가능한 코어 로직을 서로 독립적으로 유지함으로써 외부 시스템 변경으로부터 보호할 수 있음)
- 가능한 경우 알려진 아키텍처 디자인 패턴을 적용해야 함


위 청사진은 고객 포탈을 예로 든 아키텍처 청사진으로  해당 계층의 각 모듈을 보여준다.
여기에서 모듈 간에 종속성까지 추가해야 각 모듈이 다른 모듈과 어떻게 관련되는지를 한 번에 파악할 수 있다.


프로젝트를 진행하는 동안 프로세스의 세 단계(Disclose - Organize - Assemble)를 계속 반복해야 한다.