2.2.1 시스템 작업 식별
애플리케이션 아키텍처를 정의하는 첫 단추는 시스템 작업을 정의하는 일입니다. 그 출발점은 사용자 스토리와 이와 연관된 사용자 시나리오(아키텍처 시나리오가 아닙니다) 등의 애플리케이션 요건입니다. <Applying UML and Patterns(UML과 패턴 적용하기)>(크레이그 라르만(Craig Larman) 저, Prentice Hall, 2004)12의 객체 지향 설계 프로세스에서 영향을 받은 2단계 프로세스(그림 2-6)로 시스템 작업을 정의합니다. 1단계는 시스템 작업을 기술하기 위해 필요한 보케블러리를 제공하는 핵심 클래스로 구성된 고수준의 도메인 모델을 생성하는 것입니다. 2단계는 시스템 작업 식별 후 그 동작을 도메인 모델 관점에서 기술하는 것입니다.
▲ 그림 2-6 시스템 작업은 두 단계 프로세스를 거쳐 애플리케이션 요건으로부터 도출한다. 1단계는 고수준 도메인 모델을 생성하는 과정이고, 2단계는 시스템 작업을 도메인 모델로 정의하는 과정이다
도메인 모델은 주로 사용자 스토리의 명사에서 도출합니다. 이벤트 스토밍(event storming)(5장)이라는 기법을 사용해도 됩니다. 시스템 작업은 주로 동사에서 도출하며, 각각 하나 이상의 도메인 객체와 그들 간의 관계로 기술합니다. 시스템 작업은 도메인 모델을 생성, 수정, 삭제하거나 모델 간 관계를 맺고 끊을 수 있습니다.
고수준 도메인 모델을 정의하는 방법을 알아보고, 시스템 작업을 도메인 모델로 정의해 봅시다.