인프런 커뮤니티 질문&답변

큐딩님의 프로필 이미지

작성한 질문수

모든 개발자를 위한 HTTP 웹 기본 지식

3xx - 리다이렉션2

3xx-리다이렉션 강의 중 질문 있습니다.

작성

·

246

0

안녕하세요:)

결제 API에서 클라이언트와 서버 통신 예외처리에 대해 질문이 있습니다.

6분 34초경에 "클라이언트에서 유저가 페이지 리로드할 경우가 있어서 동일 주문이 서버에 요청이 될 수 있기 때문에 서버에서도 예외처리해놔야한다"고 하셨습니다.

제가 영한님의 말씀을 듣고 처음 생각난 방식은

클라이언트에서 주문번호를 난수로 만들어준 다음 쿠키에 저장하여서 동일한 주문번호를 서버에 요청했을 때 서버에서 거절하면 된다고 생각했은데,

클라이언트에서 주문번호를 자리수가 짧은 난수로 만들었을 때 중복되는 값이 발생할 것으로 생각이 드네요.

그래서 이 방법은 또 다른 이슈를 발생시킬 것 같아 좋은 방법은 아닌 것 같고...

2 번째로는 처음 생각한 방법을 응용한건데 난수를 유저테이블의 index와 구분자 그리고 현재 유닉스시간까지 숫자를 합쳐서 만들면 중복될 가능성이 낮아질 것 같다는 생각을 했습니다.

예) 12/1609305240

혹시 더 나은 방법이 있을까요?

8분30초 경에 말씀해주시는 주문 중복을 피하는 방법에 대해서는 이해했습니다! 

답변 2

2

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 큐딩님

클라이언트에서 아이디를 발급 하는 것 보다는 서버에서 주문 화면에 들어가는 시점에 임시 주문번호를 발급해두는 방식을 많이 사용합니다.

구현 방법은 서버에서는 보통 데이터베이스가 제공하는 중복없이 순서대로 값이 증가하는 시퀀스 라는 것을 사용할 수 있기 때문에 이것을 사용하거나 아니면 UUID 같은 것을 사용하면 됩니다.

감사합니다.

1

큐딩님의 프로필 이미지
큐딩
질문자

아 그렇게도 구현할 수 있군요 답변감사합니다:)

큐딩님의 프로필 이미지

작성한 질문수

질문하기