런닝 코스 공유 서비스

[런닝 코스 공유 서비스] - 1. 프로젝트 기획 및 설계

sson-coding 2025. 12. 11. 00:07

요구사항 분석

주제

  • 러닝 코스 공유 서비스 및 러닝 커뮤니티

프로젝트 이름

가제 : Run -ing

기능

회원가입 , 로그인

  1. 회원 가입
    • 회원 타입 : 일반 유저 / 관리자
    • 회원가입 입력 내용
      • 이메일(필수)
        • 한 번 설정 후 변경 불가
        • 중복 불가능
      • 비밀번호(필수)
        • BCrypt 암호화
      • 이름(필수)
      • 닉네임
        • 중복 불가능
        • 설정 안하면 (러너 1 … )자동 설정
      • 전화번호(필수)
        • 형식 : 010-0000-0000
      • 지역(시/구)(필수)
      • 프로필 이미지(선택)
  2. 로그인
    • 입력 내용
      • 이메일 + 비밀번호
    • JWT, 시큐리티 이용해 구현
    • 카카오/네이버/구글 OAuth (향후 확장)

사용자 프로필

  1. 사용자 정보 조회
    • 본인만 가능
    • 이메일
    • 비밀번호 (수정 가능)
    • 이름 (수정 가능)
    • 닉네임 (수정 가능)
    • 전화번호 (수정 가능)
    • 지역(시/구) (수정 가능)
    • 프로필 이미지 (수정 가능)
    • 러닝 성향(총 거리, 페이스 등)
    • 팔로우 & 팔로잉 수
  2. 회원 탈퇴
    • 본인만 가능
    • soft 삭제

러닝 코스 공유

  1. 코스 공유 등록
    • 코스 이름 , 거리, 소요 시간, 난이도, 위치(시작위치,종료위치)
    • 경로 데이터
    • 코스 설명, 사진(썸네일)
    • 전체 공개, 크루원만 공개,개인 공개(선택, 기본 전체공개)
  2. 코스 공유 후
    • 정렬 : 최신 좋아요, 댓글, 북마크, 조회수
    • 검색 : 난이도, 제목, 위치
    • 공개 변경 가능

커뮤니티

  • 게시판 종류
    • 러닝크루 모집/ 물품 추천/ 대회 추천/ 자유 게시판
  • 공통 기능
    • 정렬 : 최신, 좋아요, 댓글, 조회
    • 검색 : 제목, 내용, 작성자
    • 댓글, 대댓글
    • 좋아요
    • 신고/차단

개인 러닝 기록 (런닝 기록 누적)

  • 런닝 기록 항목
    • 날짜, 거리, 시간, 페이스, 코스, 메모
  • 통계
    • 주간/월간 누적 거리, 누적 시간, 평균 페이스

오늘의 러닝왕, 이달의 러닝왕 , 오늘의 러닝 코스, 이달의 러닝 코스

  • 러닝왕
    • 오늘 / 이번 달 누적 거리 TOP 5 , 페이스 TOP 5, 횟수 TOP 5
  • 러닝 코스 왕
    • 오늘/ 이번달 누적 좋아요 수 TOP 5

회원 지역 기반의 날씨 (오늘, 일주일)

  • 날씨
    • 외부 날씨 API 사용

1:1 및 그룹 채팅

  • 1:1 DM(팔로우 및 팔로잉 한 사람끼리 가능)
    • 읽음 표시
  • 그룹 채팅 : 크루 단위

팔로우 & 팔로잉

  • 팔로우 및 팔로잉
    • 팔로우 추천 (추후 확장) : 같은 지역, 비슷한 페이스

비기능

성능

  • 러닝 기록/코스 , 랭킹 조회 → 배치 or 캐시 기반으로 응답 시간 줄이기

보안

  • 비밀번호 BCrypt 암호화
  • JWT 기반 인증/인가
  • 일반 회원, 관리자 권한 다르게 부여
    • 관리자 : 신고 처리, 글 비공개

신뢰성

  • 헬스체크

기술 스택 결정

  • 프론트
    • AI 활용
  • 백엔드
    • Java
    • Spring Boot / Spring Web / Spring Data JPA / Sprint Security + JWT
    • Spring WebSocket
  • DB
    • PostgreSQL
  • 인프라
    • Docker
    • AWS
  • 문서화
    • Notion , Git
  • ERD 설계
    • ERDCloud
  • 테스트
    • JUnit 5
    • Spring Boot Test + MockMvc
  • API 문서화
    • Swagger
  • CI/CD
    • GitHub Actions