2022. 1. 3. 15:41ㆍIT기초/IT기본용어
어플리케이션을 구축하기 위한 설계 방법으로 이벤트 스토밍 이라는 방식이 있다. 이 이벤트 스토밍을 하기위해서는 어떻게 해야할까?
1. 먼저 Domain event를 먼저 정의한다.
브레인 스토밍이란것을 한 번쯤은 해 봤을 것이다. 여기에서 이벤트 라는 개념을 하나 추가 해 둔 것이다.
이벤트는 사용자, 혹은 특정 유저가 활동(action)을 해서 생기는 결과값이다.
이런 이벤트와 관련된 내용을 브레인 스토밍하여 중복된것들을 모두 없애거나 합친 후 이런 이벤트들을 발생순서대로, 동시 발생되는 이벤트의 경우 수직으로 합치는 등 규합을 한다. 그런 후 비즈니스 용어로 어떤 일이 발생했는지 기입하는 행위를 의미한다.
(시스탬 내부적으로 로직이 어쩌고 저쩌고가 아님! ==> 백엔드에서 어떻게 로직이 돌아가고..어쩌고.. 가 아니라 사용자의 입장에서 기입)
2. 프로세스 그룹핑을 한다.
동일한 업무 프로세스로 이벤트를 규합해야한다. 단 너무 자세하게(+버튼을 누르면 수량이 1 증가한다 와 같은..)기입할 필요는 없으며 비즈니스 로직상으로 중요한 핵심 프로세스를 중점으로 기입한다. 중요 이벤트가 누락되지 않았는지 등에 대해서 반드시 검토를 해야한다.
3. command를 정의한다.
사용자가 어떤 행동을 해서 어떤 결과가 나왔는지, 즉 command를 정확하게 정의한다. 무엇을 CRUD(create, read, update, delete)요청하는지 무엇을 하는지 명확히 정의한다. 각 이벤트의 단계별로 발생시키는 command가 무엇인지 파악하여 이벤트에 같이 기입하여 시각화 시킨다.
4. trigger를 정의한다.
어떤 행위를 하는 행위자(사용자)를 정의하여 이벤에 기입한다. 이벤트와 발생된 외부 시스템이 있다면(연동되는 시스템)이것 또한 분리해서 기입한다.
5. aggregate를 정의한다.
커멘드 수행을 위해 CRUD해야하는 데이터의 객체를 정의한다.
커멘드를 수행해서 이벤트를 발생시키기 위해서는 어떤 정보가 필요한지를 기입한다.
6. bounded context를 정의한다
비즈니스 상의 이벤트가 있으면 이것을 묶어둔다. 그 다음에 영역으로 구분한다. 라는 의미이다. 이때 위에서 했던 모든 정보들(이벤트들에 대한 메타정보)을 바탕으로 다시 한 번 처음에 했던 Domain event를 다시 한 번 정리한다. ==> 즉 서비스를 좀 더 간략화 시킬 수 있다.
7. 마지막으로 각각의 카테고리를 context map으로 작성, 도식화 한다.
'IT기초 > IT기본용어' 카테고리의 다른 글
Session과 JWT 그리고 Cookie (0) | 2021.10.04 |
---|---|
NAT(network address translation)란 무엇일까? (0) | 2021.09.28 |
도메인 주도 설계(Domain Driven Development) (0) | 2021.09.20 |
모놀리식 VS 마이크로서비스 아키텍쳐 (0) | 2021.09.19 |
CI/CD란??? (0) | 2021.09.02 |