모먹지 프로젝트는 배달 기반의 음식 주문 서비스 입니다. Microservice Architecture의 전반적인 이해 및 패턴 구현을 위해 제작되었으며, 현재 해당 momukji-services 깃 저장소에는 모먹지 프로젝트의 Microservices를 다루고 있습니다. 모먹지 프로젝트의 Microservices에는 Customer, Store , Rider의 주요 API들이 있는 Main과 JWT 토큰 발행과 인증 관련 API를 다루는 Auth, user관련 API를 다루는 User 로 구성되어 있습니다. 클라이언트의 모든 API 호출을 올바른 Microservice로 라우팅하는 역할인 Gateway는 다른 깃 저장소인 momukji-gateway 에 구현되었습니다. 진행 상황에 있어 세분화된 기록을 위해 저장소를 분리하였습니다. 프로젝트 진행에 따라 ReadMe 업데이트 예정입니다.
- momukji-gateway : https://github.com/f-lab-edu/momukji-gateway
- 배달 앱 서비스를 구현해 내는 것이 목표입니다.
- 대규모 트래픽과 대용량 데이터 처리가 가능하도록 구현해내고 싶습니다.
- 이유와 근거가 명확한 기술의 사용을 지향합니다.
- 이 프로젝트를 통해 기존의 Monolithic Architecture을 Microservice Architecture로 전환함으로써 두 구조에 대한 전반적인 이해도를 높이고 패턴 구조를 구현하는데 목표를 두고 있습니다.
- MSA 구조를 통해 대용량 처리, 서비스별 트래픽 분석, 트래픽별 서비스 증설 구현
- MonogoDB를 활용하여 대용량처리 과정 중 DB 병목 현상 방지
🐣Customer
- 회원가입한다
- 로그인한다
- 탈퇴한다
- 음식 카테고리를 선택하여 가게 목록을 본다
- 음식 카테고리 내려받기
- 가게 목록 내려받기
- 가게 위치 정보도 같이 수신
- API 파라미터로 내 위치 정보도 전달
- 가게 상세정보를 본다
- 음식 메뉴를 본다
- 가게에 결제하고 주문한다 (돈은 가상머니로 구현한다)
- 주문 상태를 확인한다 (WebSocket 비동기 알림 사용한다)
- 주문을 취소하고 환불받는다
🐣Store
- 회원가입한다
- 로그인한다
- 탈퇴한다
- 내 가게를 등록한다
- 주문 푸쉬알람을 받는다
- 주문을 거절/승인한다
- 승인 후 받은 주문을 취소한다
- 주문 정보를 확인한다 (주문 목록, 소비자 연락처, 주문상태)
- 라이더 호출
- 라이더에게 음식 인계 후 인계 정보 등록
🐣Rider
- 회원가입한다
- 로그인한다
- 탈퇴한다
- 배차요청 푸쉬알람을 받는다 (WebSocket 비동기 알림 사용한다)
- 배차요청 대기 목록을 본다
- 배차 요청을 받는다
- 수락한 배차 요청을 취소한다
- 배달을 완료한다
- 배차요청 푸쉬알림 수신 여부를 설정한다