2편: https://saysimple.tistory.com/199 [SpringBoot] Axon을 사용해 CQRS와 이벤트 소싱이 적용된 Order 서비스 만들기 - 2 1편: https://saysimple.tistory.com/197 [SpringBoot] Axon을 사용해 CQRS와 이벤트 소싱이 적용된 Order 서비스 만들기 - 1 CQRS에 대한 정보는 아래 글을 참고해주세요. https://saysimple.tistory.com/196 [CQRS] CQRS란? CQRS CQR saysimple.tistory.com 서론 저번 시간에는 테스트 코드를 리뷰했습니다. 이번 시간에는 Handler와 Aggregate를 리뷰해 어떻게 Command, Query를 실행하고 Event를 발행하는지 알..
Event
1편: https://saysimple.tistory.com/197 [SpringBoot] Axon을 사용해 CQRS와 이벤트 소싱이 적용된 Order 서비스 만들기 - 1 CQRS에 대한 정보는 아래 글을 참고해주세요. https://saysimple.tistory.com/196 [CQRS] CQRS란? CQRS CQRS란 Command and Query Responsibility Segregation 의 약자입니다. 저장소로부터 질의/명령을 이용하여 읽기/ 쓰기 작 saysimple.tistory.com 서론 저번 글에선 Axon을 이용한 CQRS구조를 Postman을 이용해 테스트 해보았습니다. 이번 글에선 유닛 테스트, 통합 테스트를 통해 테스트의 시나리오를 구성하는 방법과 테스트 코드를 리뷰해 ..
CQRS에 대한 정보는 아래 글을 참고해주세요. https://saysimple.tistory.com/196 [CQRS] CQRS란? CQRS CQRS란 Command and Query Responsibility Segregation 의 약자입니다. 저장소로부터 질의/명령을 이용하여 읽기/ 쓰기 작업을 분리하여 애플리케이션의 성능, 확장성, 보안성 등을 증가시키는 방법입니다. saysimple.tistory.com 서론 스프링 부트에서는 CQRS를 구현하기 위해 Axon 라이브러리를 사용합니다. baeldung의 글을 참고해 스프링 부트에선 어떻게 CQRS를 구현하는지 알아보겠습니다. 해당 예제에선 Axon Server를 이벤트 스토어로 사용하며 Postman을 이용해 테스트합니다. 이번 글에선 API와..
Flutter는 앱 데이터의 상태 관리를 위해 Bloc과 Cubit을 제공한다. Cubit은 Bloc의 6.0.0 버전부터 새롭게 제공된 Bloc의 경량화 버전이다. Bloc 호출 이벤트 및 상태 변경이 모두 Stream이다. 모든 과정이 Stream이기 때문에 Event sourcing을 할 수 있다. UI가 Bloc에 events를 보낸다. 호출 이벤트가 Stream이기 때문에 가능한 기능들이 추가되지만 보일러 플레이트가 상당하다. class CityBloc extends Bloc { CityBloc() : super(City()){ on( generateCity, transformer: debounce(const Duration(milliseconds: 300)) ); } FutureOr gener..