그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록Architecture
Architecture

이벤트 소싱이란 무엇이며 장단점은 무엇인가요?

실무3/5
설계5/5
인간4/5
기초3/5

면접관의 질문 의도

개념 정의를 외웠는지가 아니라 이벤트 소싱을 언제 들이고 언제 피해야 하는지, 스냅샷·스키마 진화·CQRS까지 묶어서 운영 트레이드오프를 말할 수 있는지를 본다. 장점만 줄줄 읊으면 "단점은요?"로 바로 깊이가 갈린다.

큐레이션 답변

학습 자료

이벤트 소싱은 현재 상태를 덮어쓰지 않고, 상태를 바꾼 이벤트 자체를 시간순으로 쌓아 두는 저장 방식이다. 지금 잔고를 알고 싶으면 처음부터 이벤트를 재생(replay)해서 상태를 다시 만든다. "어떻게 이 상태가 됐는지"를 항상 되짚을 수 있지만, 읽을 때마다 비용이 든다. 스냅샷으로 재생 기점을 앞당기고, CQRS로 읽기 모델을 별도 관리해야 실제로 굴러간다.

좋은 답변 구조

  1. 01현재 상태 덮어쓰기 방식과 대비해 이벤트를 시간순으로 쌓는다는 정의를 먼저 짚는다
  2. 02재생(replay)과 스냅샷이 어떻게 묶여 동작하는지 핵심 원리를 설명한다
  3. 03감사·이력 재현이라는 장점과 읽기 비용·스키마 진화·운영 복잡도라는 대가를 같이 짚는다
  4. 04어떤 도메인에 들이고 어떤 도메인엔 피해야 하는지 도입 기준을 마지막에 정리한다

자주 실수하는 포인트

장점만 나열하고 읽기 비용·스키마 진화·운영 부담 같은 대가를 같이 말하지 못한다
스냅샷 없이 모든 이벤트를 매번 재생한다고 설명하며 재생 비용을 과소평가한다
이벤트 스키마가 바뀌었을 때 과거 이벤트 호환을 어떻게 끌고 갈지에 대한 그림이 없다
CQRS·읽기 모델 분리와의 관계를 빼고 이벤트 저장 얘기만 한다

실무 맥락

  • 정산·회계처럼 모든 상태 변화 근거를 사후에 증명해야 하는 도메인
  • 주문 상태나 잔고 이력을 시점별로 재현해 디버깅·정정해야 하는 운영 환경
  • 읽기 패턴이 시간이 지나며 늘어나서 같은 이벤트로 새 읽기 모델을 추가로 만들어야 하는 시스템
  • 감사·규제 대응 때문에 변경 이력 자체를 외부 감사에 제출해야 하는 도메인

본인 경험에 녹이는 힌트

주문·결제 상태를 사후에 재구성해야 했던 경험이 있다면 그때의 한계와 이벤트 소싱이 어떻게 답이 됐을지를 연결할 수 있다

감사 로그나 변경 이력 테이블을 따로 운영해본 적이 있다면 그 운영 부담과 이벤트 소싱 도입 비용을 같은 축에서 비교할 수 있다

스키마 변경으로 과거 데이터를 못 읽었던 경험이 있다면 이벤트 버전 진화 정책의 필요성으로 자연스럽게 이어진다

CQRS·읽기 모델을 따로 둔 프로젝트 경험이 있다면 이벤트 소싱과 결합했을 때 얻는 효과를 본인 사례로 풀 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1스냅샷 주기는 어떤 기준으로 정하나요
Q2이벤트 스키마가 바뀔 때 과거 이벤트 호환은 어떻게 유지하나요
Q3읽기 모델은 어떻게 분리하고 동기화하나요
Q4이벤트 순서·중복은 어떻게 보장하나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문