본문 바로가기

cs(with 매일메일)

[260312목] 이벤트 소싱이란 무엇인가요?

데이터의 최종 상태를 저장하는 대신, 상태를 변경시킨 이벤트들의 이력을 저장하는 방식

 

ex.체스판 상태 저장 방법

1. 체스판의 상태를 그대로 옮겨서 저장

2. 체스의 기보를 저장. '검은색 폰이 1a로 이동했다' . 순서대로 쌓인 이벤트를 매 순간 재생하여 체스판의 최종 상태를 나타냄.

 

장점

1. 언제든지 특정 상태 재현이 가능하다. 

2. 비즈니스 로직 변경에 유연하다

 

단점

1. 읽기 성능 악화(모든 이벤트를 읽어야 하기에) -> 스냅샷으로 개선

2. 상대적으로 대용량의 데이터를 처리해야한다.