IT정보공학/SW 공학

이벤트 스토밍(Event Storming)

하늘후니82 2023. 3. 24. 15:23
  • 이벤트 스토밍의 정의: 이벤트 스토밍은 비즈니스 도메인에 대한 이해를 높이기 위해 사용되는 시각화 기술입니다. 이벤트 스토밍은 도메인 이벤트를 중심으로 모델링하며, 이를 통해 시스템의 구성 요소와 간섭을 시각적으로 파악할 수 있습니다.
  • 이벤트 스토밍의 특징: 이벤트 스토밍은 다음과 같은 특징을 가집니다.
    1. 비즈니스 중심: 이벤트 스토밍은 비즈니스 도메인에 집중합니다.
    2. 시각화: 이벤트 스토밍은 시스템을 시각화하여 이해하기 쉽게 만듭니다.
    3. 협업: 이벤트 스토밍은 다양한 이해관계자들과 함께하는 협업적인 모델링 방법입니다.
  • 이벤트 스토밍의 절차: 
    1. 이벤트 스토밍을 시작하기 전에 목표를 정하고, 참여자들을 모집합니다.
    2. 이벤트 스토밍을 위한 도메인 모델을 구축합니다.
    3. 이벤트를 식별하고, 이벤트 간의 관계를 모델링합니다.
    4. 모델을 검증하고, 이벤트의 누락이나 중복을 확인합니다.
    5. 마이크로서비스 간의 이벤트를 모델링하고, 서비스의 경계를 정합니다.

이벤트 스토밍은 크게 두 가지 단계로 이루어집니다. 첫째는 이벤트 스토밍 세션에서 발견된 도메인 이벤트를 기반으로 비즈니스 프로세스를 시각화하고, 두 번째는 각 이벤트에 대한 세부 정보를 정의하고 해당 이벤트를 처리하는 마이크로서비스를 식별하는 과정입니다.

 

구성 요소는 다음과 같습니다.

  • 이벤트: 비즈니스 프로세스에서 발생하는 중요한 사건 또는 액션.
  • 커맨드: 상태 변경을 유발하는 이벤트를 발생시키는 요청.
  • 액터: 이벤트를 유발시키는 주체.
  • 액터의 의도: 액터가 이벤트를 발생시키는 이유.
  • 액터가 사용하는 정보: 액터가 이벤트를 발생시키기 위해 필요한 정보.
  • 액터의 반응: 액터가 이벤트를 수신한 후 어떻게 반응할지.

기술 요소로는 이벤트 소싱, CQRS(Command Query Responsibility Segregation), 도메인 주도 설계(DDD) 등이 있습니다.

연관 기술로는 마이크로서비스 아키텍처(MSA), RESTful API, Kafka 등이 있습니다. MSA에서는 각 마이크로서비스가 자체 데이터 스토어를 갖는 것이 아니라 이벤트 스토어를 공유하여 상호작용합니다. RESTful API는 서비스 간 상호작용을 위한 표준화인터페이스를 제공하며, Kafka는 대용량의 이벤트 처리를 위한 분산형 스트리밍 플랫폼입니다.

'IT정보공학 > SW 공학' 카테고리의 다른 글

소프트웨어 테스트 종류  (0) 2023.04.12
PoC (Proof of Concept)  (0) 2023.03.24