API 명세서
세부 내용은 위 노션페이지에서 확인바랍니다.
테이블 명세서
세부 내용은 위 노션페이지에서 확인바랍니다.
모든 테이블 공용 컬럼
created_at | TIMSTAMP | 생성 시각 |
created_by | varchar(255) | 생성 유저 식별자 |
updated_at | TIMSTAMP | 수정 시각 |
updated_by | varchar(255) | 수정 유저 식별자 |
deleted_at | TIMSTAMP | 삭제 시각 |
deleted_by | varchar(255) | 삭제 유저 식별자 |
사용자 테이블 (p_users)
user_id | varchar(255) | 사용자 ID, PK 최소 4자 이상, 10자 이하 알파벳 소문자(a~z), 숫자(0~9) |
region_id | UUID | 사용자 지역을 가지는 테이블의 ID, FK |
password | varchar(255) | 사용자 비밀번호 최소 8자 이상, 15자 이하 알파벳 대소문자(a~z, A~Z), 숫자(0~9), 특수문자 |
role | varchar(255) | 사용자 역할 CUSTOMER, OWNER, MANAGER, MASTER |
가게 테이블 (p_shop)
shop_id | UUID | 가게 ID, PK |
user_id | varchar(255) | 가게 소유 유저 ID, FK |
shop_category_id | UUID | 가게 카테고리 ID, FK |
shop_name | varchar(255) | 가게명 |
rating | integer | 별점 |
상품 테이블 (p_product)
product_id | UUID | 상품 ID, PK |
shop_id | UUID | 가게 ID, FK |
product_name | varchar(255) | 상품 이름 |
product_price | int | 상품 가격 |
product_description | varchar(255) | 상품 설명 |
product_state | varchar(255) | 상품 상태 설정 HIDE, SHOW |
주문 테이블 (p_order)
order_id | UUID | 주문 ID, PK |
user_id | varchar(255) | 사용자 ID, FK 주문한 사람 |
state | varchar(255) | 주문 상태 |
PENDING, APPROVED, COMPLETED, CANCELED | ||
type | varchar(255) | 주문 분류 (오프라인, 온라인) |
리뷰 테이블 (p_review)
review_id | UUID | 리뷰 ID, PK |
shop_id | UUID | 가게 ID, FK |
user_id | varchar | 유저 ID, FK |
rating | INTEGER | 별점 1점 ~ 5점 |
content | varchar(255) | 리뷰 내용 |
가게 카테고리 테이블 (p_shop_category)
shop_category_id | UUID | 카테고리 ID, PK |
category_name | String | 한식, 중식, 일식 등의 카테고리 |
주문_상품 테이블 (p_order_product)
order_product_id | UUID | PK |
product_id | UUID | 상품 ID, FK |
order_id | UUID | 주문 ID, FK |
AI 히스토리 테이블 (p_ai)
ai_id | UUID | PK |
user_id | varchar(255) | 질문 요청 유저 |
request_content | varchar(255) | 질문 요청 내용 |
response_content | varchar(255) | 질문 답변 내용 |
결제 테이블 (p_payment)
payment_id | UUID | 결제 ID, PK |
order_id | UUID | 주문 ID, FK |
amount | Integer | 결제 금액 |
state | varchar(255) | 결제 상태 PENDING, COMPLETED, CANCELED, FAILED |
pg_provider | varchar(255) | PG 사 이름 |
지역 테이블 (p_region)
region_id | UUID | PK |
region_name | varchar(255) | 지역명 |
ERD 명세서
인프라 설계서
애플리케이션 아키텍처 (초안)
헥사고날 아키텍처를 적용하려 했으나 팀 전체의 러닝커브를 고려하여
싱글 모듈로 구성할 수 있는 유사 헥사고날 아키텍처 디자인으로 설계했습니다.
추후 멀티 모듈로의 마이그레이션이 용이하도록 각 레이어의 의존성을 최소화하였습니다.
호출 방향(런타임 의존성)과 전달되는 오브젝트 종류
'Spring' 카테고리의 다른 글
Spring 예외 핸들링 전략 (4) | 2024.03.08 |
---|---|
Spring Interceptor vs Servlet Filter (1) | 2024.03.05 |
SLF4J 와 Log Level 간단 정리 (0) | 2024.03.03 |
[Spring Boot] JPA - MySql 연결 (0) | 2023.03.02 |
[Spring Boot] ThymeLeaf 템플릿 사용 (0) | 2023.03.02 |