응답이 없다고 결제를 다시 보냈다
가상 이야기 · 핵심노트 기반
핵심노트 개념: 트랜잭션과 실패 처리 — 응답이 끊겨도 실제 처리 결과를 확인한다
이 글에서 배우는 교훈
응답을 받지 못했다면 처리 실패로 단정하지 말고 실제 결과를 확인해야 합니다.
핵심노트를 바탕으로 만든 가상 이야기입니다. 실제 사건이나 검증된 성과가 아닙니다.
근거: 트랜잭션과 실패 처리 — 응답이 끊겨도 실제 처리 결과를 확인한다 · 핵심노트 7
구체적으로는 결제 응답이 끊긴 주문은 상태를 먼저 조회했습니다. 같은 요청 번호를 다시 받아도 새 결제를 만드는 대신 기존 결과를 확인했습니다.
관련 교재 내용
데이터 이해와 활용 · XI. 동시성제어 · 트랜잭션과 완료 상태
데이터 교재는 작업 단위의 원자성과 Commit·Rollback을 설명합니다. 통신 단절 시 결제 결과 조회와 요청 중복 방지는 이 원리를 외부 서비스에 확장한 설명입니다.
이 사례에 적용한 내용: 응답을 받지 못했다고 실패로 단정하지 않고 주문 식별자로 결제 상태를 확인합니다. DB 트랜잭션만으로 외부 결제 중복이 자동 방지되지는 않습니다.
교재 원리의 실무 적용 · 교재 원문 인용이 아닌 자체 설명입니다.
본문
결제 요청 뒤 통신이 끊겨 쇼핑몰은 결과를 받지 못했습니다. 고객이 다시 누르자 새 요청으로 처리되어 같은 주문에 두 번 결제가 시도되었습니다.
팀은 주문별 처리 식별자를 사용하고 결과가 불확실할 때 먼저 결제 상태를 조회했습니다. 동일한 요청이 다시 와도 기존 처리 결과를 확인하는 흐름을 마련했습니다.
결론
응답을 받지 못한 상태가 실패 확정과 같지 않다는 점을 반영했습니다. 재시도는 편의 기능이지만 중복 실행의 영향을 함께 다뤄야 합니다.