🗓️ 예약 관리 시스템 (Meeting Room / 미용실 / 병원 등)
- 주요 기능: 예약 등록/조회, 시간대 중복 방지, 관리자 승인
- 학습 포인트:
- Spring: REST API 설계, JPA + DB 연동, 예약 중복 체크 로직
- Vue: 캘린더 컴포넌트, 시간 선택 UI, 예약 목록 관리
- 인증: 사용자/관리자 권한 분리 (JWT or Spring Security)
Spring + Vue 기반의 "예약 관리 시스템"은 실제 스타트업, 병원, 미용실, 학원 등에서 사용하는 실전성이 높은 프로젝트입니다.
아래는 이 프로젝트의 전체 구성, 기능 목록, 기술 스택, 그리고 추후 확장 포인트입니다.
✅ 프로젝트 개요: 예약 관리 시스템
🎯 목표
사용자는 시간대를 선택해 예약하고, 관리자는 이를 확인 및 승인/거절할 수 있는 시스템 구축
📦 주요 기능
[사용자 기능]
- 회원가입 / 로그인 (JWT 기반)
- 예약 가능한 날짜 및 시간 확인
- 예약 등록 / 수정 / 취소
- 예약 내역 조회
[관리자 기능]
- 전체 예약 목록 확인 (필터링: 날짜/상태 등)
- 예약 승인 / 거절 처리
- 예약 통계 확인 (선택적)
🛠️ 기술 스택
🔹 백엔드 (Spring Boot)
- Spring Boot 3.x
- Spring Security + JWT 인증
- Spring Data JPA + Hibernate
- MySQL
- RESTful API
- Lombok, MapStruct(optional)
🔸 프론트엔드 (Vue 3)
- Vue 3 + Composition API
- Vue Router / Pinia
- Vuetify 또는 Tailwind CSS
- Axios (API 통신)
- FullCalendar / vue-datepicker 등 UI 라이브러리
🗂️ ERD 예시
User
- id (PK)
- email
- password
- name
- role (USER | ADMIN)
- created_at
Reservation
- id (PK)
- user_id (FK)
- date (예약일 yyyy-MM-dd)
- time_slot (예: "10:00~11:00")
- status (PENDING | APPROVED | REJECTED | CANCELLED)
- created_at
- ERD(Entity-Relationship Diagram)는 데이터베이스 설계에서 엔티티(데이터 객체) 간의 관계를 도식화한 다이어그램입니다. 쉽게 말해, 어떤 데이터 테이블이 존재하고, 그 테이블들 사이에 어떤 관계가 있는지를 시각적으로 보여주는 설계도입니다.
🔁 API 예시
메서드 | URI | 설명 |
---|---|---|
POST | /auth/signup | 회원가입 |
POST | /auth/login | 로그인 (JWT 발급) |
GET | /reservations/available?date=2025-05-25 | 시간대 조회 |
POST | /reservations | 예약 등록 |
GET | /reservations | 내 예약 조회 |
PUT | /reservations/{id}/cancel | 예약 취소 |
PUT | /admin/reservations/{id}/approve | 관리자 승인 |
PUT | /admin/reservations/{id}/reject | 관리자 거절 |
📆 UI 구성 예시
- 메인 페이지: 예약 버튼, 나의 예약 보기
- 캘린더/시간 선택 UI: 날짜 클릭 → 예약 가능한 시간 리스트 출력
- 관리자 페이지: 전체 예약 목록, 승인/거절 버튼
🚀 확장 아이디어
- 예약 중복 방지 (DB Lock 또는 Validation)
- 이메일 알림 (예약 확정 시)
- 관리자 통계 대시보드 (예약 수/취소율)
- 카카오 로그인 / 구글 OAuth
- 모바일 대응 (PWA)
💡 개발 순서 추천 (WBS)
- 🔐 사용자 인증 (Spring Security + JWT)
- 📆 예약 기능 (백엔드 API → 프론트 예약 폼 연결)
- ⚙️ 관리자 승인/거절 기능
- 🖥️ 프론트엔드 UI 연결 (캘린더, 시간 선택 등)
- 📊 마이페이지 및 관리 페이지
- 🔔 알림 / 예외 처리 / UX 개선
'예약 관리 시스템 - Spring + Vue' 카테고리의 다른 글
예약 관리 시스템 (Spring Boot 3 + Vue 3) - 예약 하기 (프론트엔드) (0) | 2025.05.26 |
---|---|
예약 관리 시스템 (Spring Boot 3 + Vue 3) - 사용자 인증 프론트엔드 (Vue 3 + Vuetify) (0) | 2025.05.26 |
예약 관리 시스템 (Spring Boot 3 + Vue 3) - 사용자 인증 백엔드 (Spring Security + JWT) (0) | 2025.05.26 |
예약 관리 시스템 (Spring Boot 3 + Vue 3) - UI 구성 (0) | 2025.05.25 |
예약 관리 시스템 (Spring Boot 3 + Vue 3) - 서비스 운영 시나리오 (0) | 2025.05.25 |