목록 보기
"다 됐습니다" 알림, 대체 언제 보내야 맞나
백엔드

"다 됐습니다" 알림, 대체 언제 보내야 맞나

flex
flex
2026년 9월 22일

두줄요약

배치 완료 알림이 너무 일찍 나가는 문제를 해결한 사례를 다루셨습니다. 처리 순간의 사실을 기록하고 실제 조회 가능 시점을 기준으로 완료를 판정하셨습니다.

문제 상황

  • 대량 배치 작업의 완료 알림이 실제 완료보다 먼저 발송되는 문제
  • 처리 완료 시점과 사용자가 결과를 실제로 볼 수 있는 시점의 불일치

원인 분석

  • 건수 집계만으로는 조회 가능 시점까지 판단할 수 없는 구조
  • 마지막 처리 시각 같은 공유 값이 다른 흐름에 의해 덮어써져 추론 기준이 오염되는 문제
  • 특권 자격으로 검증할 경우 중간 단계만 통과해도 완료로 오인되는 문제

해결 방법

  • 나중에 추론하지 않고 처리 순간의 식별값을 직접 기록해 기준 고정
  • 결과 조회 경로에 직접 프로브를 던져 실제 사용자 관점의 조회 가능 여부 확인
  • 일반 사용자 자격을 우선 사용하고, 기준 유실·판정 불가 상황에 대비해 다중 기준과 강제 발송 도입

적용해볼 점

  • 완료 상태는 상태값 재계산보다 관측 시점에 가까운 사실을 기록하는 방식 검토
  • 완료 판정은 처리 성공이 아니라 실제 조회 가능 시점 기준으로 설계
  • 알림 검증 자격과 예외 처리 기준을 명확히 분리

다음 읽기

#batch 주제를 이어서 읽기

@Scheduled 한 줄로 버티다, 트리거를 밖으로 꺼낸 이야기

@Scheduled 기반 배치가 Pod 확장 시 중복 실행과 유실 문제를 드러내자, 트리거를 애플리케이션 밖으로 분리했습니다. 실행은 선점과 체크포인트로 나눠 맡겨 여러 Pod가 작업을 분담하도록 전환했습니다.

flex
flex
백엔드

댓글 0

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

댓글을 불러오는 중...