Mealhub는 음식점 검색부터 주문·결제, 그리고 신뢰 가능한 리뷰까지 한 곳에서 해결하는 음식 주문 플랫폼입니다.
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|---|
| 김민형 | 김나은 | 박근용 | 이유진 | 이호준 | 장가현 |
| User, Auth, Cart, PaymentLog | Restaurant, RestauCategory, AI, CI |
Order | Review | Product | Address |
- 회원가입
- 회원가입 시, 요청한 정보로 데이터베이스에 유저 정보를 등록합니다.
- 로그인
- 사용자 인증 정보를 통해 로그인 합니다.
- 유저 정보 조회
- 유저 ID에 대한 유저 정보를 조회합니다.
MANAGER권한의 유저만 수행 가능합니다.
- 로그인한 유저 정보 조회
- 로그인한 유저에 대한 유저 정보를 조회합니다.
- 유저 정보 수정
- 로그인한 유저에 대한 유저 정보를 수정합니다.
- 유저 탈퇴
- 로그인한 유저에 대한 탈퇴를 수행합니다.
- 주소 등록
- 사용자가 배송지를 등록합니다.
- 주소 조회
- 단일 주소 또는 등록된 주소 전체 목록을 조회할 수 있습니다.
- 키워드 검색과 페이징 기능을 통해 조회가 가능합니다.
- 주소 수정
- 등록된 주소 정보를 수정할 수 있습니다.
- 주소 삭제
- soft-delete 방식을 적용해 데이터 일관성을 유지하며 필요 시 복구가 가능합니다.
- 기본 주소 설정
- 여러 배송지 중 하나를 기본 주소로 지정할 수 있습니다.
- 가게
- 가게 등록, 수정, 삭제 기능을 제공합니다.
- 가게 카테고리
- 한식, 중식, 분식, 치킨, 피자 등 음식점 카테고리 관리 기능을 제공합니다.
- 카테고리 추가 및 수정이 가능한 확장성 있는 데이터 구조로 설계하였습니다.
- 상품 등록
- 매니저 또는 관리자가 상품을 등록하여 상품을 생성합니다.
- 상품 조회
- 단일 상품 또는 생성된 상품 전체 목록을 조회가 가능합니다.
- 키워드 검색 또는 페이징 및 정렬을 이용하여 목록을 상세하게 볼 수 있습니다.
- 상품 수정
- 등록된 상품 이름,가격,설명등을 수정하여 상품 내용을 전체 및 일부분 수정 할 수 있습니다.
- 상품 삭제
- soft-delete 원리를 이용하여 데이터를 일시적으로 삭제하며, 필요시 데이터를 다시 불러와서 사용할 수 있습니다. -상품 숨김 활성화 및 비활성화
- 등록된 상품을 숨김 동작을 활성화하여 상품을 보이게 하거나, 비활성화시켜 상품을 숨기게 할 수 있습니다.
- AI
- 상품 등록 시 Gemini API를 활용해 상품 설명을 자동 생성 기능을 제공합니다.
- AI 요청 및 응답 내역을 별도의 AI 로그 테이블에 저장하도록 설계하였습니다.
- 장바구니 상품 추가
- 장바구니에 상품을 추가합니다.
- 동일한 상품이 장바구니에 이미 존재할 시, 기존의 장바구니 상품 수량을 변경하도록 동작합니다.
- 장바구니 상품 조회
- 로그인한 유저의 장바구니 상품을 조회합니다. 장바구니 상품 페이징 결과와 총 금액을 포함합니다.
- 장바구니 상품 수량 변경
- 장바구니 상품의 수량을 변경합니다.
- 장바구니 상품 삭제
- 장바구니 상품을 삭제합니다.
- 주문 생성
- 고객이 상품 목록과 배송지 정보를 포함한 주문을 생성합니다.
- 실제 상품 조회를 통해 가격을 검증하고 총액을 자동 계산합니다.
- 주문 조회
- 단건 조회: 주문 ID로 특정 주문의 상세 정보를 조회합니다.
- 목록 조회: 주문 상태, 레스토랑, 유저, 기간 등 다양한 조건으로 주문을 검색합니다.
- 권한 검증: 고객은 본인 주문만, 가게 주인은 자신의 레스토랑 주문만 조회 가능합니다.
- 주문 상태 관리
- 가게 주인이 주문 상태를 업데이트합니다. (PENDING → IN_PROGRESS → OUT_FOR_DELIVERY → DELIVERED)
- 상태 전환 규칙을 검증하여 잘못된 상태 변경을 방지합니다.
- 모든 상태 변경 이력을 로그로 저장합니다.
- 주문 취소
- 고객이 본인의 주문을 취소할 수 있습니다.
- 취소 사유와 함께 주문 상태를 CANCELLED로 변경합니다.
- 주문 삭제
- 관리자 또는 가게 주인이 주문을 소프트 삭제합니다.
- 삭제된 주문은 조회되지 않지만 데이터는 보존됩니다.
- 리뷰 생성
- 고객의 주문 ID를 통해 주문 및 배달이 완료된 건에 대하여 해당 가게에 대한 리뷰 작성
- 한 주문당 하나의 리뷰만 작성 가능
- "사장님만 보기" 기능으로 타 유저에 대한 리뷰 숨김 처리 기능 제공
- 리뷰 단건 조회
- 리뷰 ID로 해당 리뷰에 대한 상세 보기 조회
- 리뷰 리스트 조회
- 가게 ID로 해당 대한 모든 리뷰 목록 조회
- 정렬 및 페이징 기능 제공
- 동일 값이 나올 경우를 대비해 주 정렬 키 + id DESC 보조 정렬로 안정 정렬 설계
- 관리자, 해당 가게 사장님, 리뷰 작성자 본인만 "사장님만 보기 true"설정 리뷰 볼 수 있도록 설계
- 내가 작성한 리뷰 조회
- 접속한 유저의 ID로 본인이 작성한 리뷰만 전체 모아보기 제공
- 리뷰 수정
- 리뷰 ID로 해당 리뷰를 작성한 본인 및 관리자가 리뷰 수정
- 별점, 리뷰 본문, 사장님만 보기 설정 단일 수정 가능
- 리뷰 삭제
- 리뷰 ID로 해당 리뷰를 작성한 본인 또는 관리자가 리뷰를 소프트 삭제
- 삭제된 리뷰는 조회할 수 없지만 데이터는 보존
- 결제 기록 조회
- 유저 ID나 주문 ID를 받아 결제 기록을 조회합니다.
- 유저 ID 또는 주문 ID 중 하나는 반드시 제공되어야 합니다. 결제 상태에 따른 필터링을 제공합니다.
MANAGER권한의 유저만 수행 가능합니다.
작성한 API는 아래에서 확인할 수 있습니다.





