WEBBOOK CHAPTER

AI가 짠 코드, 어디서부터 고칠까: 9장 중복 요청과 동시성을 견딘다

9장 중복 요청과 동시성을 견딘다

사용자는 버튼을 두 번 누른다. 모바일 네트워크는 응답을 잃는다. 프록시는 재시도한다. 중복은 예외가 아니라 정상 환경이다.

클라이언트가 요청 ID를 만들고 서버가 그 ID와 결과를 보존하면 같은 요청을 재생해도 같은 예약을 돌려줄 수 있다. 멱등성 키는 payload와 함께 묶어야 한다. 같은 키로 다른 예약 시간을 보내면 충돌로 거부한다.

겹침 검사와 쓰기 사이에도 경쟁이 있다. 두 요청이 동시에 “비어 있음”을 보고 둘 다 저장할 수 있다. 실제 구현에서는 직렬화 가능한 트랜잭션, 잠금, 범위 제약 또는 예약 슬롯 모델 가운데 데이터베이스에 맞는 방법을 택한다. 배열 테스트를 통과했다고 운영 동시성이 해결됐다고 쓰지 않는다.