[Java] 비동기 처리 중 다른 회원 데이터가 섞인 이유: AttributeConverter와 Race Condition
09 Jul 2026 Java미납 결제건을 재결제하는 배치에서 이해하기 어려운 문제가 발생했다.
배치는 30일 이상 미납된 결제건을 조회한 뒤, 각 결제건을 비동기로 병렬 처리하고 있었다. 그런데 배치 실행 후 일부 결제 데이터의 구매자 이메일과 전화번호가 다른 회원의 값으로 UPDATE되는 현상이 확인되었다.
처음에는 DTO 생성을 위해 엔티티의 getter를 호출했을 뿐인데...