네트워크 통신에서는 아래와 같은 예외적인 상황이 존재할 수 있음
이러한 상황에 맞서 요청하는 쪽은 알 수 없는 에러를 처리해야 하며, 요청 받는 쪽은 명등성 API를 제공해야 함
대표적으로 read timeout
으로 인해서 응답을 받지 못하였으면, 해당 요청이 성공했는지 실패했는지 명확하게 판단하기 어려움
주문서버가 결제 요청을 했을 때 결제 서버에서는 성공했지만 주문 서버에서 응답을 제대로 받지 못하여 실패처리로 했다면 결제는 됐는데 주문처리가 되지 않은 이상한 상황이 연출됨
이에 따라서 클라이언트에서 할 수 있는 방법은 아래와 같음
그러나 알 수 없음 에러에 대한 대응책을 실현하더라도 똑같은 API요청이므로 해당 요청이 다시 재현되지 않을거라는 보장은 없음