Project/나혼자 미슐랭

나혼자 미슐랭 – 요구사항 명세서

Coding Kitsune 2025. 4. 22. 18:21

1. 프로젝트 개요

  • 프로젝트명: 나혼자 미슐랭 (Solo Michelin)
  • 목표: 맛집들을 기록하고 평가하며, 혼밥 유저들의 경험을 공유할 수 있는 웹/앱 기반 서비스 구축
  • 개발인원: 2명 (박희범, 황인규)
  • 주요 기술 스택: Spring Boot, React, MYSQL, JWT, 지도 API(Google or NAVER)
  • 개발 기간: 2025년 4월 ~ 6월 (예정)
  • 활용 목적: 상업화 + 실무형 협업 경험축적

 

2. 시스템 개요

  • 전체 시스템 설명: 나혼자 미슐랭은 방문한 맛집을 지도 기반으로 탐색하고, 평가와 리뷰를 남길 수 있는 개인화된 맛집 기록 플랫폼입니다.
  • 핵심 기능 소개:
    • 사용자 별점 평가 기능 + 리뷰 기능
    • 사용자 방문 히스토리 조회 기능
  • 시스템 아키텍쳐:
    • 클라이언트 – 서버 구조 (React FE<-> Spring Boot BE <-> MYSQL DB)
    • JWT 기반 인증 방식 사용
    • 외부 지도 API(Google or NAVER)를 통한 장소 데이터 연동

 

3. 사용자 요구사항

  • 사용자는 회원가입과 로그인을 통해 본인의 계정을 생성하고 사용할 수 있어야 한다.
  • 사용자는 지도 기반으로 맛집을 검색할 수 있어야 한다.
  • 사용자는 검색한 맛집에 대해 1~5점의 별점과 텍스트 리뷰 (최대 150자)를 등록할 수 있어야 한다.
  • 사용자는 본인이 남긴 별점과 리뷰를 수정하거나 삭제할 수 있어야 한다.
  • 사용자는 별점과 리뷰를 남긴 맛집에 대한 방문기록(히스토리)을 남길 수 있어야 한다.
  • 사용자는 별점, 위치, 음식 카테고리 등 조건으로 맛집을 필터링 할 수 있어야 한다.

 

4. 시스템 요구사항

 

A. 기능 요구사항 (입력 / 처리 / 출력)

회원가입 기능

  • 입력: 사용자 이메일, 비밀번호, 닉네임 등
  • 처리: 입력값 유효성 검증, 중복 확인, 사용자 DB저장
  • 출력: 회원가입 성공 여부, 토큰 제공

로그인 기능

  • 입력: 이메일, 비밀번호
  • 처리: 사용자 인증, 토큰 발급(JWT)
  • 출력: Accss/Refresh Token

맛집 검색 기능

  • 입력: 키워드, 위치 정보
  • 처리: 지도 API를 통한 장소 검색
  • 출력: 검색된 맛집 (이름, 주소, 평점(사용자가 이미 평점을 작성한 경우))

리뷰 등록 기능

  • 입력: 맛집 ID, 별점, 리뷰 내용
  • 처리: 해당 사용자와 맛집에 대한 리뷰 저장
  • 출력: 등록된 리뷰 확인

리뷰 수정/삭제 기능

  • 입력: 리뷰 ID, 수정내용
  • 처리: 권한 확인 -> 내용 수정/삭제
  • 출력: 처리 결과 응답(성공여부)

히스토리 조회 기능

  • 입력: 사용자 요청 (로그인 상태)
  • 처리: 사용자의 방문 기록 불러오기
  • 출력: 내가 다녀온 맛집 리스트

B. 비기능 요구사항

 

성능

  • 평균 응답 시간: 300ms 이내(API 기준)
  • 동시 사용자 수: 최소 100명 이상 처리 가능하도록 설계

보안

  • JWT 기반 인증/인가 구현
  • 사용자 데이터 암호화 저장 (비밀번호 해시 등)
  • 리뷰 수정/삭제는 본인만 가능하도록 권한 체크

유지보수성

  • 모듈화된 서비스 구조(Controller – Service – Repository)
  • Spring Boot 기반 로깅 및 예외 처리
  • 기능 확장을 고려한 계층 구조 설계

호환성

  • 최신 크롬 브라우저 지원
  • 모바일 및 데스크탑 환경 모두 대응

 

5.기술 스택 (계획)

  • Backend: JAVA + Spring Boot + JPA + MySQL
  • Frontend: React, Axios, Tailwind CSS
  • API: Google Maps Places API or NAVER 장소 API
  • Auth: JWT 기반 로그인/회원 관리