멱등 요청 관련 문의
안녕하세요. 멱등 요청 관련하여 문의드립니다.
현재 상점 백엔드에서 토스페이먼츠로 api 요청할 때 POST 메서드의 경우 문서(https://docs.tosspayments.com/reference/using-api/idempotency-key) 가이드에 따라 요청 헤더에 멱등키를 추가하여 보내고 있습니다. 멱등키의 경우 nanoid를 사용하여 300자를 넘지 않는 충분히 무작위적인 고유 값으로 생성하고 있으며, 15일 주기로 갱신되도록 구현해놨습니다.
이런 환경에서 같은 결제 건에 대해서 결제 승인 api를 멱등 요청 테스트를 진행해봤습니다. 테스트 결과 문서에 나와있는대로 같은 요청이 여러번 일어났으나 실제로 요청이 이루어지지 않고 첫 번째 요청 응답과 같은 응답을 받았습니다. 다만, 이후 다른 결제 건에 대해 정상적인 결제 승인 api 요청을 보냈으나, 해당 결제 건 또한 멱등 요청으로 인식되어 요청이 이루어지지 않음을 확인했습니다. 이에 대해 문서를 찾아보니 멱등키와 API 키, API 주소, HTTP 메서드 조합 기반으로 멱등성을 보장한다고 나와 있는데, 결제 승인 api의 경우 다른 결제 건임에도 모든 조합이 같아 멱등 요청으로 인식되는 것 같습니다.
이러한 문제를 해결하기 위해 멱등키를 세팅하는 팁이 있을까요?
현재 상점 백엔드에서 토스페이먼츠로 api 요청할 때 POST 메서드의 경우 문서(https://docs.tosspayments.com/reference/using-api/idempotency-key) 가이드에 따라 요청 헤더에 멱등키를 추가하여 보내고 있습니다. 멱등키의 경우 nanoid를 사용하여 300자를 넘지 않는 충분히 무작위적인 고유 값으로 생성하고 있으며, 15일 주기로 갱신되도록 구현해놨습니다.
이런 환경에서 같은 결제 건에 대해서 결제 승인 api를 멱등 요청 테스트를 진행해봤습니다. 테스트 결과 문서에 나와있는대로 같은 요청이 여러번 일어났으나 실제로 요청이 이루어지지 않고 첫 번째 요청 응답과 같은 응답을 받았습니다. 다만, 이후 다른 결제 건에 대해 정상적인 결제 승인 api 요청을 보냈으나, 해당 결제 건 또한 멱등 요청으로 인식되어 요청이 이루어지지 않음을 확인했습니다. 이에 대해 문서를 찾아보니 멱등키와 API 키, API 주소, HTTP 메서드 조합 기반으로 멱등성을 보장한다고 나와 있는데, 결제 승인 api의 경우 다른 결제 건임에도 모든 조합이 같아 멱등 요청으로 인식되는 것 같습니다.
이러한 문제를 해결하기 위해 멱등키를 세팅하는 팁이 있을까요?
멱등키를 사용해서 중복 요청을 방지하고 안전하게 API 요청을 보내는 방법을 알아봅니다. 멱등키를 사용하면 민감한 API 요청이 반복적으로 일어나는 문제를 막을 수 있고, 네트워크 이슈나 타임아웃 문제로 응답을 받지 못했을 때도 안전하게 같은 요청을 다시 보낼 수 있습니다.

