응답이 오지 않았는데 다시 요청해도 될까? : 서버 재요청과 멱등성(Idempotency)
1. 멱등성 기술면접에서 제대로 대답하지 못했던 질문. "A 서버가 B 서버에 아이템 생성을 요청했습니다. B 서버에서는 정상적으로 아이템을 생성했지만 네트워크 문제로 응답이 A 서버에 도착하지 않았습니다. A 서버가 요청을 다시 보내면 아이템이 중복 생성될 수 있는데, 이 문제를 어떻게 해결하시겠어요?" 나는 중복 생성이 더 치명적인 문제라고 생각해 자동 재요청을 막고, 예외 상황에서는 사람이 확인하도록 하겠다고 했다. "그럼 실제 요청이 처리되지 않았던 경우에는 사용자가 아이템을 못 받는 문제가 생기지 않나요?" 면접이 끝난 뒤 다시 생각해보니 내가 해결하려고 한 것은 ‘중복 실행 방지’였지만, 해결 방식은 ‘재요청 자체를 막는 것’에 가까웠다.필요한 것은 요청을 하지 않는 것이 아니라, 같은..