ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • WIL - 이벤트 기반 시스템 아키텍처 구축
    Develop/WIL 2025. 8. 31. 16:55

    주간 학습 회고 (Weekly I Learned)

    이번주는 이커머스 플랫폼의 결합도를 낮추고 확장성을 높이기 위해 이벤트 기반 아키텍처를 전면적으로 도입하는 작업에 집중했습니다. 단순한 동기식 처리에서 벗어나 비이벤트 처리를 통한 시스템 분리와 데이터 플랫폼 연동까지 구현했습니다.


    🧠 이번주 학습 성과

    1. 종합적인 이벤트 시스템 설계 및 구현

    • 기본 이벤트 인프라 구축 (Event, EventPublisher, EventHandler)
    • 이벤트 감사 시스템 구현으로 모든 이벤트 추적 가능
    • 주문 이벤트 시스템 구축으로 주문 생명주기 관리
    • 결제 이벤트 시스템 구축으로 결제 상태 변화 추적

    2. 이벤트 기반 좋아요 처리와 집계 분리

    • 좋아요 처리집계 업데이트를 이벤트로 분리
    • 사용자 경험 향상을 위한 즉시 응답 + 백그라운드 집계 처리
    • 집계 실패 시에도 사용자 액션은 보장되는 구조

    3. 데이터 플랫폼 연동 시스템 구축

    • 주문/결제 이벤트 발생 시 데이터 플랫폼으로 자동 전송
    • DataPlatformEvent 를 통한 비동기 데이터 전송
    • 외부 시스템 연동을 위한 확장 가능한 이벤트 구조 설계

    4. 결제 결과 기반 주문 상태 관리 시스템

    • 결제 성공/실패에 따른 주문 상태 자동 업데이트
    • 이벤트 기반으로 결제와 주문 시스템 간 느슨한 결합 달성
    • 결제 상태 변화에 대한 실시간 반영 시스템

    🤔 아쉬웠던 점과 개선할 부분

    1. 과한 이벤트 분리

    • 문제점
      • 비즈니스 맥락이 없는 기술 중심의 이벤트 분리는 컨슈머의 로직을 파편화시키고, 전체 시스템의 복잡성을 가중시킵니다.
    • 개선 방안
      • 단일 비즈니스 트랜잭션이나 유스케이스를 기준으로 이벤트의 응집도를 높여, 컨텍스트가 풍부한 단일 이벤트로 발행하는 것을 지향해야 합니다.

    2. 이벤트 실패 시 재시도 전략 미비

    • 문제점
      • 이벤트 처리 실패를 로그로만 기록하는 것은 이벤트 유실로 이어져, 서비스 간 데이터 불일치를 유발하는 심각한 문제입니다.
    • 개선 방안
      • 시스템 신뢰도 확보를 위해, 일시적 오류에 대응하는 재시도(Retry) 메커니즘과 영구 실패한 이벤트를 보관/분석하기 위한 데드 레터 큐(DLQ) 도입이 필수적입니다.

    🚀 다음 주 도전 과제

    • Kafka 기반의 이벤트 파이프라인 구현
    • Dead Letter Queue (DLQ)

     

     

    댓글

Designed by Tistory.