목록 보기
Spring 트랜잭션 동기화로 레거시 알림톡 발송 시스템 한계 넘어서기
백엔드

Spring 트랜잭션 동기화로 레거시 알림톡 발송 시스템 한계 넘어서기

올리브영
올리브영
2026년 2월 23일

두줄요약

레거시 알림톡 발송을 트랜잭션 커밋 이후 Kafka 기반 구조로 분리했습니다. 데이터 정합성과 확장성을 높이며 공통 발송 체계를 만들었습니다.

문제 상황

  • 주문, 결제, 배송 알림톡 발송 로직이 여러 비즈니스 코드에 흩어진 레거시 구조
  • 서비스별 테이블과 조건이 달라 데이터 조회 기준이 불일치
  • 발송 성공 후 비즈니스 로직이 실패하면 알림과 실제 상태가 어긋나는 정합성 문제

원인 분석

  • 알림톡 발송이 비즈니스 트랜잭션과 강하게 결합된 구조
  • 레거시 환경의 Spring 버전 제약으로 일반적인 트랜잭션 이벤트 처리 방식 사용 어려움
  • 배송 유형과 주문 유형별 조건이 복잡해 공통 쿼리 하나로 모두 커버하기 어려운 상황

해결 방법

  • TransactionSynchronizationManager로 트랜잭션 커밋 이후 Kafka 메시지 발행
  • 레거시에서는 발송 시점만 결정하고, Delivery Consumer에서 발송 전담하도록 역할 분리
  • 배송 유형과 공통 기준에 따라 조회 로직을 통합하고, 단일 발송 API로 일원화

성능/운영 포인트

  • 실패 메시지 DB 저장 후 재처리 가능한 구조 마련
  • 알림톡 관련 코드와 조회 기준의 공통화로 유지보수성 향상
  • 알림 추가 시 템플릿 등록과 메시지 발행만으로 확장 가능

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...