Weekly I Learned
2주차 간단 요약
- 프로젝트 주제 선정 후 설계 과정
이번 프로젝트에서 Kafka 도입을 통해서 최대한 안정성 있게 데이터처리를 하고자 한다.
구현 과정에서 높은 러닝 커브가 있고 이슈가 매번 생길 때 로깅에 대한 전략이 필요한데 이런 경우를 대비해서 이벤트 소싱 패턴을 전략을 사용하려 한다.
이벤트 소싱 패턴 (Event Sourcing Pattern) 이란?
해당 패턴의 전략의 기본은 데이터를 저장하는 방법에 대한 정의이다.
일반적으로 우리는 데이터를 저장할 때, 최종적인 데이터 값만 저장한다.
하지만 이벤트 소싱 패턴은 해당 과정 속 모든 순간의 이벤트를 저장하는 거라고 생각하면 쉽다!
어플리케이션의 모든 상태 변화를 순서에 따라 이벤트로 보관한다.
일반 | 유저 | 요청(주문) | 요청(추가 주문) | 요청(주문 취소) | 반환(주문 건수) |
1 | 1 + 1 | 2 - 1 | 1 | ||
이벤트 소싱 | 유저 | 요청(주문) | 요청(추가 주문) | 요청(주문 취소) | 반환(주문 건수) |
1 | 1 + 1 | 2 - 1 | 1 |
일반적인 데이터 처리 방법은 마지막의 최종 결과만을 기록한다.
반면 이벤트 소싱은 유저로부터 처리되기 시작한 모든 과정 하나하나를 이벤트 단위로 기록한다.
즉, "Update" 와 "Delete" 정보가 아닌 그 과정(이벤트)를 저장한다!
이벤트 소싱은 스냅샷을 무조건 가지고 간다
왜 스냅샷을 가질까?
이벤트 소싱은 모든 이벤트를 저장하다 보면 나중에 해당 이벤트량이 많아져서 당연히 마지막 처리를 하기 위한 처리 시간이 오래 걸릴 수 밖에 없다. 그러한 이슈를 해결하기 위해서 이벤트 처리 이후 마지막 이벤트를 스냅샷 해둠으로써 처리 속도의 개선을 할 수 있다.
"처리 속도를 개선하기 위해서 이벤트가 끝나면 해당 이벤트의 스냅샷을 기록함으로써 속도를 개선한다!"
CQRS (Command and Query Responsivibility Segregation)
명령부와 조회부를 나눠서 설계하는 아키텍처
이벤트 소싱의 발생한 정보를 쓰기용 읽기용을 나눠줌으로서 데이터를 읽는 속도를 개선하는 기법이다.
References
[패턴] 이벤트 소싱 (Event Sourcing Pattern + CQRS)
이벤트 소싱 패턴에 대하여 해야할 프로젝트에 Kafka 도입을 통해서 최대한 안정성있게 데이터 처리를 하...
blog.naver.com
이벤트 소싱과 CQRS의 더 자세한 내
Spring Camp 2017 - 2부 (일요일) 참석 후기!
스프링캠프 2017의 2부를 다녀왔습니다. 오늘은 지인 분들의 발표가 많아 더 재밌게 들을 수 있었던것 같습니다.스프링캠프에는 항상 이렇게 커피를 제공해주십니다.맛있게 아이스 아메리카노를
jojoldu.tistory.com
'프로젝트 > 스프링심화1기' 카테고리의 다른 글
[중간발표] B2B2C SaaS 대기열 서비스 (5) | 2024.10.11 |
---|---|
Domain Driven Design (DDD) (0) | 2024.09.09 |
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!