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

예예님의 프로필 이미지

작성한 질문수

실습으로 배우는 선착순 이벤트 시스템

쿠폰을 발급하다가 에러가 발생하면 어떻게 하나요 ?

쿠폰 발급을 api로 제공할 경우, client에서 쿠폰 발급 여부를 확인할 수 있는 방법 문의드립니다.

작성

·

504

0

안녕하세요. 강의 잘 들었습니다.

강의 들으면서 궁금증이 생겼는데, 만약에 쿠폰 발급 기능을 API로 제공한다고 가정하면
client -> 쿠폰 발급 기능 API 호출이 이루어지고

쿠폰 발급 기능 API에서는 쿠폰 발급 여부를 확인하고 kafka로 produce하게 되는데, 이때는 실제로 쿠폰이 발급된 상태는 아닐 수도 있을 것으로 예상됩니다(실제 쿠폰이 발급되는 시점은 consumer에서 작업이 정상적으로 완료되어야하므로 트래픽이 많거나 하는 경우 시간차이가 더 심할 것으로 예상됩니다)

 

이러면 쿠폰 발급 기능 API에서 응답값은 어떤 값을 줘야할까요?

  1. 쿠폰 발급 여부에서 발급이 가능하다면 쿠폰 발급되는것은 확정이기 때문에 발급되었다는 정보?

  2. 쿠폰 발급 여부에서 발급이 가능하지만 추가적으로 polling해서 client 쪽에서 확인하도록 처리?

제가 생각했을땐 위의 2가지정도로 가능할 것 같은데 강사님 의견이 궁금합니다..! 감사합니다.

답변 2

0

최상용님의 프로필 이미지
최상용
지식공유자

예예님 안녕하세요.
제가 의도했던 것은 1번을 의도했습니다.
발급 되는것은 확정이며 대부분의 상황에서 큰 지연없이 생성이 될 것일거라 예상하기 때문입니다.
감사합니다!

0

안녕하세요 예예 님, 인프런 AI 인턴이에요.
쿠폰 발급 기능을 API로 제공할 때 쿠폰 발급 여부를 확인하는 방법에 대해 궁금한 점이 있으신군요. 제 생각을 공유해드리겠습니다.

  1. 쿠폰 발급 여부에서 발급이 가능하다면 쿠폰 발급된 것으로 응답하는 방법:
    이 경우에는 쿠폰 발급 기능 API에서는 즉시 응답으로 쿠폰 발급 여부가 가능하다면 발급되었다는 정보를 전달할 수 있습니다. 이러한 방법은 쿠폰 발급과 발급 여부 확인의 동시성을 보장하고, 클라이언트에서 추가적인 서버 호출 없이 쿠폰 발급 여부를 확인할 수 있다는 장점이 있습니다.

  2. 쿠폰 발급 여부에서 발급이 가능하지만 추가적으로 polling하여 확인하는 방법:
    이 경우에는 쿠폰 발급 기능 API가 쿠폰 발급 여부 확인 후에는 클라이언트에게 쿠폰 발급이 완료되지 않았다는 정보를 응답합니다. 클라이언트는 이후 일정 시간마다 해당 API를 호출하여 쿠폰 발급 여부를 계속해서 확인할 수 있습니다. 이 방법은 쿠폰 발급이 실제로 완료된 시점을 알기 위해 추가적인 호출이 필요하지만, 트래픽이 많거나 지연이 발생할 경우에도 정확한 정보를 얻을 수 있다는 장점이 있습니다.

두 가지 방법 중에는 서비스 요구사항, 클라이언트 동작 방식, 시나리오에 따라 선택하시면 됩니다. 어떤 방법이 더 적합한지는 분석과 검토가 필요합니다. 감사합니다!

예예님의 프로필 이미지

작성한 질문수

질문하기