프로젝트
[열쇠는 나였다 / 개인프로젝트] 기획서
c-hano
2025. 6. 8. 15:12
1. 프로젝트 이름
열쇠는 나였다 (I was the Key)
2. 프로젝트 개요
방탈출을 좋아하는 사람들이 정보를 공유하고 직접 테마를 예약할 수 있는 커뮤니티 사이트입니다.
방탈출 예약 API와 연동해 실시간 예약 가능 여부를 확인하고, 지역별/평점순 추천 테마를 확인할 수 있습니다.
커뮤니티 기능을 통해 사용자들의 리뷰, 후기, 동행 모집도 함께 운영합니다.
3. 핵심 기능(초안)
기능 | 비회원 | 로그인 회원 |
게시글 열람 | O | O |
게시글 작성/수정/삭제 | X | O |
댓글 열람 | O | O |
댓글 작성/수정/삭제 | X | O |
좋아요 기능 | X | O |
마이페이지 접근 | X | O |
마이페이지 닉네임 변경/이미지 업로드 | X | O |
방탈출 예약 | O | O |
방탈출 추천 수 확인 | O | O |
게시판 종류
- 동행 모집 게시판
- 방탈출 리뷰 게시판 (방탈출 예약 페이지에서 작성된 리뷰가 자동으로 등록) (별점 등록, 별점 순으로 표기하는 기능 추가)
- 자유게시판
- 방수(성공 인증) 자랑 게시판
마이페이지 기능
- 닉네임 변경 (중복 확인, 무작위 닉네임 기본 제공)
- 프로필 이미지 업로드 (없을 경우 기본 이미지 적용)
- 내가 작성한 게시글 확인
- 내가 단 댓글 확인
- 좋아요 누른 게시글 확인
4. 사용 기술 스택(초안)
백엔드 | Java, Spring Boot, Spring Security, JPA, MySQL |
프론트엔드 | TypeScript, React, Node.js, Tailwind |
인증 | OAuth2 (Google, Kakao) |
외부 연동 | 방탈출 테마 API (실시간 예약/테마 추천) |
기타 | JWT 인증, Postman, GIT |
5. 시스템 아키텍쳐 개요(초안)
[Browser (User)]
↓
[Frontend - React (TypeScript)]
↓ REST API
[Backend - Spring Boot (JWT, OAuth2)]
↓
[Database - MySQL (User, Post, Like)]
6. 주요 페이지 설계
메인 페이지 | 전체 게시판 요약 보기 + 네비바 |
방탈출 예약 | API 사용, 방탈출 표기 |
추천 방탈출 | API 사용, 지역별 평점, 리뷰 많은 방탈출 순위별로 표기 |
동행 모집 게시판 | 구인/구직용 게시글 CRUD |
리뷰 게시판 | 방탈 테마 리뷰 게시글 CRUD |
자유 게시판 | 일반 자유 주제 글 CRUD |
마이페이지 | 프로필 설정, 닉네임 변경, 활동 내역 확인 |
예약 도움 페이지 | 외부 API 연동: 지역/날짜 필터로 테마 추천 |
7. API 명세 (초안)
POST | /api/v1/auth/login/oauth | 소셜 로그인 (Google, Kakao) |
GET | /api/v1/posts | 게시글 전체 조회 |
POST | /api/v1/posts | 게시글 작성 |
GET | /api/v1/posts/{id} | 게시글 상세 조회 |
PATCH | /api/v1/posts/{id} | 게시글 수정 |
DELETE | /api/v1/posts/{id} | 게시글 삭제 |
POST | /api/v1/comments | 댓글 작성 |
GET | /api/v1/comments/{postId} | 게시글 댓글 조회 |
PATCH | /api/v1/comments/{id} | 댓글 수정 |
DELETE | /api/v1/comments/{id} | 댓글 삭제 |
POST | /api/v1/posts/{postId}/like | 게시글 좋아요 누르기 |
GET | /api/v1/posts/{postId}/likes | 좋아요 수 확인 |
GET | /api/v1/mypage/posts | 내가 쓴 게시글 |
GET | /api/v1/mypage/comments | 내가 단 댓글 |
GET | /api/v1/mypage/likes | 좋아요 누른 게시글 |
PATCH | /api/v1/mypage/nickname | 닉네임 변경 |
PATCH | /api/v1/mypage/profile-image | 프로필 이미지 변경 |
GET | /api/v1/reservations | 예약 가능한 테마 리스트 (날짜/지역 필터) |
GET | /api/v1/recommendations | 추천 테마 리스트 (평점순/리뷰순) |
GET | /api/v1/reviews | 방탈출 후기 작성 |
GET | /api/v1/reviews/{themeId} | 특정 테마의 후기 목록 조회 |
요약
프로젝트명 | 열쇠는 나였다 (I was the Key) |
목표 | 방탈출을 좋아하는 사람들을 위한 커뮤니티 및 예약 지원 서비스 |
주요 기능 | 게시판 CRUD, 소셜 로그인, 방탈출 예약, 테마 추천, 마이페이지 |
사용 기술 | React (TypeScript), Spring Boot, MySQL, OAuth2, JWT |
차별점 | 실시간 방탈출 예약 API 연동 + 지역별 추천 시스템 제공 + 커뮤니티 |