← 제안서로 돌아가기
메인 제안서로 돌아가기 🏗 시스템 아키텍처 ⚙️ 기술 스택 🗄 데이터베이스 🔌 API 명세 📄 페이지 구조 🔀 비즈니스 로직 📅 로드맵
SYSTEM ARCHITECTURE v1.0

시스템 아키텍처 &
기능 명세서

더숲 아카데미하우스 디지털 플랫폼의 전체 기술 설계도.
모든 기능과 데이터 흐름을 빠짐없이 정리합니다.

140+
API Endpoints
40+
DB Tables
50+
Pages
6
Weeks
01 — ARCHITECTURE
시스템 구조도
사용자 요청부터 데이터 저장, 외부 서비스 연동까지 전체 흐름
CLIENT
웹 브라우저
PC / 모바일 / 태블릿
관리자 대시보드
CRM · 예약관리 · 정산
CDN
Cloudflare
WAF · DDoS 방어 · SSL · 캐싱 · Edge
APP
Next.js 14 (Vercel)
SSR/SSG · 공개페이지 · 예약 · 마이페이지 · 관리자
NestJS API (Railway)
Auth · Booking · Payment · CRM · Content · Member · Wedding · Shop · Notification
DATA
PostgreSQL 16
메인 DB · 40+ Tables · Prisma ORM
Redis 7
세션 · 캐시 · 실시간 재고 · 큐
S3 / R2
이미지 · 문서 · 미디어
Meilisearch
전문 검색 엔진
EXT
토스페이먼츠
결제 PG
카카오
알림톡 · 로그인
네이버
로그인
Google
로그인 · GA4
SendGrid
이메일
Sentry
모니터링
02 — TECH STACK
기술 스택
검증된 기술로 안정적이고 확장 가능한 플랫폼을 구축합니다
Frontend
Next.js 14 + TypeScript
App Router, SSR/SSG 하이브리드, SEO 최적화, 서버 컴포넌트
CORE
Styling
Tailwind CSS + shadcn/ui
유틸리티 퍼스트 CSS, 접근성 준수 컴포넌트 라이브러리
CORE
State
Zustand + React Query
클라이언트 상태 + 서버 상태 캐싱, 옵티미스틱 업데이트
CORE
Backend
NestJS + TypeScript
모듈 기반 아키텍처, DI 컨테이너, Guard/Interceptor
CORE
Database
PostgreSQL 16
ACID 보장, JSONB 지원, 전문 검색, 40+ 테이블
DATA
Cache
Redis 7
세션 관리, API 캐시, 실시간 객실 재고, Rate Limiting
DATA
ORM
Prisma
타입 세이프 쿼리, 자동 마이그레이션, 스키마 관리
DATA
Search
Meilisearch
한국어 전문 검색, 오타 보정, 실시간 인덱싱
DATA
Payment
토스페이먼츠
카드, 카카오페이, 네이버페이, 토스, 가상계좌
EXTERNAL
Auth
NextAuth.js + JWT
소셜 로그인 (카카오/네이버/구글), 세션 관리
CORE
Storage
Cloudflare R2
이미지, 문서, 미디어 파일 저장, S3 호환
INFRA
Messaging
카카오 알림톡 + SendGrid
예약 확인, 리마인더, 마케팅 이메일, 트랜잭션 메시지
EXTERNAL
Deploy
Vercel + Railway
프론트 자동배포, 백엔드 컨테이너, CI/CD 파이프라인
INFRA
CDN
Cloudflare
글로벌 CDN, WAF, DDoS 방어, SSL, 한국 엣지
INFRA
Monitoring
Sentry + GA4
에러 트래킹, 성능 모니터링, 사용자 분석
INFRA
03 — DATABASE
데이터베이스 설계
40+ 테이블로 모든 비즈니스 데이터를 체계적으로 관리합니다
👤 사용자 & 인증
users
회원 정보
social_accounts
소셜 로그인 연동
sessions
세션 관리
staff
직원/관리자
🛏 숙박
rooms
객실 정보
room_rates
요금 체계
room_inventory
일별 재고
accommodation_bookings
숙박 예약
packages
패키지 상품
🎬 문화프로그램
programs
프로그램 통합
program_schedules
회차/일정
movies
영화 상세
exhibitions
전시 상세
concerts
공연 상세
academy_courses
아카데미 강좌
seats
좌석 배치
program_bookings
프로그램 예약
💒 웨딩
wedding_inquiries
상담 신청
wedding_packages
웨딩 패키지
wedding_options
추가 옵션
wedding_bookings
웨딩 계약
wedding_timeline
진행 트래킹
🍽 레스토랑 & 대관
restaurants
레스토랑
tables
테이블
menus
메뉴
special_menus
특별 메뉴
restaurant_bookings
레스토랑 예약
venues
대관 시설
venue_equipment
시설 장비
venue_bookings
대관 예약
💳 결제 & 정산
payments
결제 내역
refunds
환불
invoices
세금계산서
settlements
정산
회원 & 커뮤니티 & 리뷰
membership_tiers
멤버십 등급
points
포인트
coupons
쿠폰
user_coupons
사용자 쿠폰
boards
게시판
posts
게시글
comments
댓글
likes
좋아요
gatherings
모임
reviews
리뷰
🛒 온라인 샵
products
상품
product_categories
카테고리
orders
주문
order_items
주문 항목
shipping
배송
⚙️ 시스템 & 분석
notifications
알림
notification_preferences
알림 설정
notification_templates
알림 템플릿
page_views
페이지뷰
audit_logs
활동 로그
site_settings
사이트 설정
media
미디어 파일
pages
CMS 페이지
banners
배너
9
그룹
44
테이블
200+
컬럼
04 — API ENDPOINTS
API 명세
REST API 기반 140+ 엔드포인트. 상세 스펙은 마크다운 문서를 참고하세요.
POST/api/auth/register회원가입 (이메일)
POST/api/auth/login로그인
POST/api/auth/logout로그아웃
POST/api/auth/social/{provider}소셜 로그인 (kakao/naver/google)
POST/api/auth/verify-phone본인인증 (SMS)
POST/api/auth/forgot-password비밀번호 찾기
POST/api/auth/reset-password비밀번호 재설정
GET/api/auth/me현재 사용자 정보
GET/api/rooms객실 목록 (필터: 날짜, 인원, 타입)
GET/api/rooms/:id객실 상세
GET/api/rooms/:id/availability예약 가능 여부
GET/api/rooms/:id/rates요금 조회 (날짜별)
POST/api/bookings/accommodation숙박 예약 생성
GET/api/bookings/accommodation/:id예약 상세
PATCH/api/bookings/accommodation/:id예약 수정
DEL/api/bookings/accommodation/:id예약 취소
GET/api/packages패키지 목록
GET/api/programs프로그램 목록
GET/api/programs/:id프로그램 상세
GET/api/programs/:id/schedules회차/일정
GET/api/programs/:id/schedules/:sid/seats좌석 현황
POST/api/bookings/program프로그램 예약
GET/api/movies상영 중인 영화
GET/api/exhibitions전시 목록
GET/api/concerts공연 목록
GET/api/academy아카데미 강좌
POST/api/academy/:id/enroll수강 신청
GET/api/wedding/packages패키지 목록
GET/api/wedding/options추가 옵션
POST/api/wedding/estimate견적 시뮬레이션
POST/api/wedding/inquiries상담 신청
GET/api/wedding/availability날짜 가용 확인
POST/api/wedding/bookings웨딩 계약
GET/api/wedding/bookings/:id/timeline진행 현황
GET/api/wedding/gallery웨딩 갤러리
GET/api/restaurants레스토랑 목록
GET/api/restaurants/:id/menus메뉴 조회
GET/api/restaurants/:id/specials특별 메뉴
GET/api/restaurants/:id/availability테이블 가용
POST/api/bookings/restaurant레스토랑 예약
PATCH/api/bookings/restaurant/:id예약 수정
DEL/api/bookings/restaurant/:id예약 취소
GET/api/venues대관 시설 목록
GET/api/venues/:id시설 상세 (장비 포함)
GET/api/venues/:id/availability예약 가능 일시
POST/api/venues/:id/estimate견적 자동 산출
POST/api/bookings/venue대관 신청
POST/api/payments/prepare결제 준비 (PG 토큰)
POST/api/payments/confirm결제 승인
POST/api/payments/:id/cancel결제 취소
POST/api/payments/:id/refund환불
GET/api/payments/history결제 내역
POST/api/payments/:id/invoice세금계산서 발행
GET/api/users/me내 프로필
PATCH/api/users/me프로필 수정
GET/api/users/me/bookings내 예약 목록
GET/api/users/me/payments결제 내역
GET/api/users/me/points포인트
GET/api/users/me/membership멤버십
GET/api/users/me/coupons쿠폰
GET/api/users/me/notifications알림
GET/api/boards게시판 목록
GET/api/boards/:slug/posts게시글 목록
POST/api/posts게시글 작성
GET/api/posts/:id게시글 상세
POST/api/posts/:id/comments댓글 작성
POST/api/posts/:id/like좋아요
POST/api/reviews리뷰 작성
GET/api/gatherings모임 목록
GET/api/shop/products상품 목록
GET/api/shop/products/:id상품 상세
POST/api/shop/orders주문 생성
GET/api/shop/orders/:id주문 상세
GET/api/shop/orders/:id/tracking배송 추적
POST/api/shop/orders/:id/return교환/반품
GET/api/admin/dashboard경영 대시보드
GET/api/admin/dashboard/revenue매출 현황
GET/api/admin/bookings전체 예약 관리
GET/api/admin/customers고객 목록 (CRM)
GET/api/admin/settlements정산 내역
GET/api/admin/settlements/export엑셀 내보내기
POST/api/admin/staff직원 추가
PATCH/api/admin/staff/:id/permissions권한 설정
POST/api/admin/promotions프로모션 생성
POST/api/admin/coupons쿠폰 발행
PATCH/api/admin/content/pages/:idCMS 페이지 수정
GET/api/admin/analytics분석 데이터
05 — PAGE STRUCTURE
페이지 구조 (50+)
공개 웹사이트, 회원 영역, 관리자 대시보드 3개 레이어

🌐 공개 웹사이트 (30+ 페이지)

/ 메인 홈페이지
/about 소개 · 역사 · 철학 · 시설 · 오시는 길
/stay 객실 목록 · 상세 · 패키지 · 예약
/culture 영화 · 전시 · 공연 · 아카데미 · 캘린더 · 아카이브
/wedding 패키지 · 갤러리 · 견적 시뮬레이터 · 상담 신청
/dining 레스토랑 상세 · 메뉴 · 예약
/venue 시설 상세 · 대관 신청 · 캘린더
/community 게시판 · 게시글 · 모임
/shop 상품 목록 · 상세 · 장바구니 · 결제
/news 소식 · 뉴스레터
/support FAQ · 문의

👤 회원 영역 (10+ 페이지)

/my 마이페이지 메인
  /my/profile 프로필 수정
  /my/bookings 내 예약 목록 · 상세
  /my/payments 결제 내역
  /my/membership 멤버십 · 포인트
  /my/coupons 쿠폰
  /my/reviews 리뷰
  /my/orders 주문 · 배송추적
  /my/notifications 알림 설정

🔒 관리자 대시보드 (20+ 페이지)

/admin 경영 대시보드
  /admin/bookings 숙박 · 프로그램 · 레스토랑 · 대관 · 웨딩
  /admin/rooms 객실 관리 · 재고 · 요금
  /admin/programs 영화 · 전시 · 공연 · 아카데미
  /admin/wedding 상담 · 진행 관리
  /admin/restaurant 메뉴 · 테이블
  /admin/customers 고객 관리 (CRM)
  /admin/shop 상품 · 주문 · 배송
  /admin/finance 매출 · 정산 · 세금계산서
  /admin/marketing 프로모션 · 쿠폰 · 뉴스레터 · 분석
  /admin/content CMS · 배너 · 미디어
  /admin/staff 직원 · 권한
  /admin/settings 시스템 설정
06 — BUSINESS LOGIC
비즈니스 로직
핵심 예약·결제·멤버십 흐름을 시각화합니다

숙박 예약 플로우

날짜·인원 선택
Redis 재고 확인
객실·요금 반환
객실 선택
10분 임시 홀드
정보 입력 + 결제
PG 결제 승인
예약 확정 + 재고 차감
알림톡 발송

웨딩 상담 → 계약 플로우

견적 시뮬레이션
상담 신청
관리자 배정
상담 진행
계약서 생성
계약금 결제
타임라인 생성
단계별 진행 트래킹

결제 처리 플로우

결제 준비 (토큰)
PG 결제창
카드/간편결제
결제 승인 확인
DB 기록
알림 발송

멤버십 등급 시스템

🌱 나무 (기본)
연 50만원 or 5회
🌲 숲 (5%할인)
연 200만원 or 20회
⛰ 산 (10%할인+VIP)
07 — ROADMAP
6주 개발 로드맵
Phase별 구축 계획과 산출물
Phase 1 · 3주
Foundation — 핵심 기반 구축
프로젝트 초기화, DB 설계, 인증, 메인 홈페이지, 숙박 예약, 결제 연동, 관리자 기초
프로젝트 세팅 Prisma 스키마 CI/CD 디자인 시스템 소셜 로그인 메인 페이지 객실 CRUD 예약 엔진 PG 연동 관리자 대시보드 알림 시스템
Phase 2 · 2주
Expand — 사업 영역 확장
문화프로그램, 웨딩, 레스토랑, 대관, 콘텐츠 관리 시스템
문화프로그램 CMS 영화 예매 좌석 선택 웨딩 견적 웨딩 상담 레스토랑 예약 대관 시스템 CMS 아카이브
Phase 3 · 1주
Community — 공동체 연결
멤버십, 커뮤니티, 온라인 샵, 리뷰, 최종 QA
멤버십 등급 커뮤니티 게시판 온라인 샵 리뷰 시스템 뉴스레터 통합 테스트 성능 최적화 배포
Phase 4 · 운영 후
Grow — 데이터 기반 성장
마케팅 자동화, AI 챗봇, OTA 연동, 모바일 앱
마케팅 자동화 AI 챗봇 A/B 테스트 OTA 연동 모바일 앱