피움뜰 — 프로그램 설계 개요
쇼핑몰(상품·주문·결제·배송)과 커뮤니티(게시글·댓글·좋아요), 관리자·쿠폰·마일리지 등을 제공하는 웹·모바일 서비스입니다. 저장소는 웹 애플리케이션과 모바일 WebView 셸로 구성됩니다.
1. 시스템 구성 요소
| 구분 | 디렉터리 | 역할 |
|---|---|---|
| 웹 | piumddeul-web | Next.js(App Router) UI·API Routes, Prisma·MySQL, NextAuth(소셜·이메일 등) |
| 모바일 | piumddeul-app | Expo 앱. WebView로 웹을 로드하고 푸시·OTA 등 네이티브 연동 |
2. 아키텍처
- 클라이언트: 브라우저 직접 접속 또는 앱 내 WebView.
- 서버: Next.js가 페이지·API를 제공하고 Prisma로 MySQL에 접근합니다.
- 푸시·파일: 푸시 토큰·업로드·결제 결과 웹훅 등은 API와 외부 연동(결제·배송사 등)으로 처리합니다. 호스트·키는 문서에 적지 않습니다.
3. 데이터 흐름
- 회원·인증:
User와 NextAuth 세션. 소셜·자격 증명 로그인, 주소·푸시 토큰 등 부가 정보가 사용자에 연결됩니다. - 커머스:
Product·카테고리·옵션·Basket·Order·결제 상태·클레임·QNA·리뷰·찜(Wish) 등이 API를 통해 CRUD됩니다. - 커뮤니티·운영:
Post·댓글·좋아요, 신고·차단, 게시판·태그 검색, 관리자 주문·상품·쿠폰·통계 등이 동일 DB 스키마를 사용합니다.
상세 모델은 piumddeul-web/prisma/schema.prisma를 기준으로 합니다.
3.1 요청·저장 흐름(도식)
3.2 핵심 엔티티 관계(요약)
(실제 스키마는 주문–상품 N:M 링크 테이블 등으로 정규화되어 있습니다.)
4. 웹 애플리케이션 레이어 (piumddeul-web)
4.1 기능 영역(예)
- 스토어: 상품 목록·상세·검색·필터·장바구니·주문·결제(완료·취소·상태·웹훅·영수증 등)·배송 조회
- 사용자: 프로필·주소·찜·쿠폰·마일리지·푸시 토큰·비밀번호 재설정
- 커뮤니티: 게시글·댓글·좋아요·검색·태그·신고·차단
- 콘텐츠: 게시판·고객 문의 등
- 관리자: 대시보드 통계, 주문·상품·사용자·쿠폰·모더레이션, 주문 엑스포트 등
4.3 인증·보호
- NextAuth와 라우트 보호로 관리자·일반 사용자 영역을 구분합니다.
5. 모바일 앱 레이어 (piumddeul-app)
5.1 WebView 브릿지(메시지 흐름, 요약)
- 로드 URL·푸시 등록 경로는 빌드·배포 설정에 따릅니다.
6. 디렉터리 구조(루트)
PROD_piumddeul/
├── piumddeul-web/
├── piumddeul-app/
└── ReadMe.md
7. 기술 스택 요약
| 영역 | 기술 |
|---|---|
| 웹 | Next.js 16, React 19, TypeScript, Prisma, MySQL, NextAuth, Tailwind, Ant Design·Mantine·Radix 등 |
| 앱 | Expo, React Native, WebView, 알림·OTA 모듈(프로젝트 의존성 기준) |