바로 가기
배달 플랫폼 구현하기 (4) - 스토어 / 메뉴 도메인
배달 플랫폼 구현하기 (8) - 가맹점 정산 배치 개발
트러블 슈팅
배달 플랫폼[ Multi Module ] 트러블슈팅⚽️
배달 플랫폼[ JSON parse error ] 트러블슈팅⚽️
배달 플랫폼[ Unknown Properties ] 트러블슈팅⚽️
배달 플랫폼[ RabbitMQ Enable Management ] 트러블슈팅⚽️
가맹점 도메인을 개발하면서 가맹점 가입, 로그인을 처리하고 가맹점의 정보를 받을 수 있도록 API 를 구성 했다.
이번에는 가맹점에 점주에 대해서 주문의 알림을 제공하자.
실제 배달 플랫폼을 예시로 보면 현재 프로젝트는 사용자에게 가게와 메뉴를 제공하고, 주문을 접수하는 것 까지 구현이 완료 되었다. 이후 접수 된 주문을 가맹점 점주에게 알리고 주문 정보에 대해서 전달한다.
이러한 알림 기능을 비동기 처리 방식으로 진행 할 것이다.
비동기 처리를 알기에 앞서서 동기 처리 라는 반대되는 방법이 존재한다. 아래의 그림은 동기 방식의 처리 과정이다. 즉, 하나의 요청이 응답이 되기 까지 한번에 오는 것을 동기 방식이라고 합니다.
이처럼 1번 요청이 끝나기 까지 “주문 요청 확인”, “주문 접수” 가 오래 걸린다면 그 시간 동안 1번 요청에 대한 응답을 받지 못하여 그 동안에 오는 요청을 처리 할 수가 없다. 물론, 이러한 전제는 단건의 Thread 로 처리한다는 과정하에 설명한다.
이러한 점을 개선하기 위해서 비동기 방식을 사용하게 된다.
비동기 방식을 사용하면 사용자는 주문을 접수하면 접수 완료를 즉시 응답 받고, 이후 작업에 대해서는 차후 가맹점 측에서 동작에 따라 알림을 제공하면 된다.
메시지 큐와 같은 브로커 역할을 하는 공간에 요청을 담아두고 가맹점 Server 에서 메시지 큐의 요청을 가져와 처리를 진행 한다. 이때, 주문을 접수하면서 사용자에게 Push 알림을 제공한다.