
대량 배치 작업의 종착지에서 사용자 경험을 망치지 않는 '진짜 완료 시점' 탐색기
이 아티클은 배치 처리의 물리적 완료와 사용자의 실제 체감 완료(조회 시점) 간의 간극을 좁히기 위한 flex 팀의 치열한 엔지니어링 고민을 담고 있습니다. 단순 건수 카운팅과 시간 기반 추론의 한계를 깨닫고, 불변 식별자와 일반 사용자 권한 기반의 '프로브(Probe)' 방식을 도입하여 알림 신뢰성을 극대화한 여정을 소개합니다.
비동기 대용량 데이터 처리 후 사용자에게 실시간 알림을 제공해야 하거나, 백엔드 반영 지연(Replication Lag) 환경에서 정확한 완료 상태를 전파해야 하는 백엔드 엔지니어들에게 적극 추천합니다.
대량의 배치 작업 수행 시, 시스템 내부 처리가 완료되었더라도 실제 데이터가 사용자 화면에 조회되기까지의 시차가 존재하여 완료 알림을 받은 사용자가 빈 화면을 보게 되는 현상이 발생했습니다. 또한, 작업 완료 여부를 단순 건수 비교나 공유 자원인 최종 수정 시각을 기준으로 추론하다 보니 동시성 문제로 인해 알림이 오작동했습니다.
완료 여부를 단순히 추론하는 대신, 마지막 처리 대상의 불변 식별자를 배치 실행 시점에 기록해 두고 이를 특권이 없는 일반 사용자 권한으로 직접 조회(Probing)하여 실제 노출 여부를 확인하는 방식을 도입했습니다.
관리자가 직접 대시보드를 확인하여 알림 발송 여부를 판단할 필요가 없어졌으며, 정상 통과, 시간 초과, 대상 분실 등 모든 케이스가 자동화되어 코드 기반으로 종결되고 일관된 사용자 경험을 보장하게 되었습니다.
Trade-off
마지막 기준값 유실에 대비해 다수의 기준점을 유지해야 하고, 일반 사용자 권한 조회 불가능 시 특권 권한으로 회귀해야 하며, 무한 대기를 막기 위한 강제 타임아웃 발송 로직을 추가해야 하는 등 복잡성이 다소 증가했습니다.
시스템의 내부 상태를 단순히 숫자로 세거나 추론하지 않고, 실제 사용자가 이용하는 경로를 통해 데이터를 직접 조회하여 정상 작동 여부를 능동적으로 검증하는 기법입니다.
다른 트랜잭션에 의해 오염될 수 있는 수정 시각 등의 공유 상태 대신, 배치 처리 시점에 확정된 고유하고 변하지 않는 값을 별도로 저장해 두는 방식입니다.
시스템 관리자나 작성자 등의 우회 경로(특권)를 배제하고, 가장 엄격한 권한 필터가 적용되는 일반 사용자 관점에서 데이터가 실제로 노출되는지 판단하는 설계 원칙입니다.




