Skip to content

Latest commit

 

History

History
227 lines (149 loc) · 10.9 KB

File metadata and controls

227 lines (149 loc) · 10.9 KB

PlayRoute

1. 프로젝트 개요

동네 산책을 탐험과 게임, 커뮤니티로 바꾸는 위치 기반 SNS

기획 배경

  • 많은 사람들이 반복되는 경로로 인해 산책에 쉽게 지루함을 느끼는 문제
  • 기존 걷기 앱의 단순한 보상(걸음 수, 포인트)으로 지속적인 동기 부여가 어려운 문제
  • 산책을 중심으로 한 지역 기반 커뮤니티가 부재하여 사회적 연결과 정보 공유가 부족한 문제
  • 최근 MZ세대를 중심으로 로컬 탐험·위치기반 경험 콘텐츠 수요가 확대

▶ 산책을 탐험, 게임, 커뮤니티 경험으로 전환해 장기적 참여와 몰입을 유도

주요 특징

  1. 게시글 생성·공유 – GPS 기반 경로 + 체크포인트 기록·공유
  2. AR 탐험 미션 – 유령 퇴치·보물찾기 등 AR 이벤트
  3. 위치 기반 SNS – 게시글 피드·팔로우·댓글·지역 랭킹
  4. 게임형 보상 – 경험치·뱃지·아이템으로 활동 장려
  5. 다양한 주제 확장 – 반려동물 산책·여행·테마 탐방 등

2. 프로젝트 기간 및 팀 구성

개발 기간

  • 2025년 7월 14일 ~ 2025년 8월 18일 (총 5주)

팀원 구성

이름 역할 담당 기능 / 주요 작업
정예성 프론트엔드 웹 디자인 & 프로토타입 제작, 홈 페이지, 랭킹 페이지, 새 게시물 생성, 검색 페이지, 게시물 바텀 시트, 따라가기 페이지, 체크포인트 상세 모달, 모바일 Tilt 기반, WebAR 유령 포획과 보물찾기 게임, 위도/경도 좌표 기반 유령 게임, 댓글 리스트 모달, 게시물 컴포넌트, Axios 통신
박지훈 프론트엔드 전역 베이스 설정, 사용자 관리, 상점 페이지 구축, 마이프로필 연관 네비게이션
성경준 백엔드 / 팀장 게시글·체크포인트 API 설계 및 구현 (위치 기반 검색, AI 연동), Spring AI 기반 게시글 초안 생성 로직 개발
송준영 백엔드 / CI/CD 알림·팔로우·좋아요·댓글·업적 API 설계 및 구현, CI/CD 파이프라인 구축(Jenkins), MongoDB로 사용자 로그와 업적 관리, Docker 기반 배포 환경 구성, Redis 캐싱 및 성능 최적화, 로깅/모니터링 설정
임규리 백엔드 인증 API 설계 및 구현 (회원가입, 로그인/로그아웃, 토큰 재발급, 비밀번호 재설정), 스크랩/검색 기능 API 개발, 스텝보드(격자 방문 통계) API 구현, JWT + Spring Security 기반 인증/인가 적용
김태민 백엔드 사용자 관리 API 설계·구현 (프로필 수정, 회원 탈퇴, 팔로우/팔로잉 관리), 아이템 및 상점 API 설계·구현 (구매/적용 로직), 업적/레벨 시스템 연동, AWS S3 bucket 연동 및 리소스 관리, MongoDB로 아이템 리소스 관리

3. 주요 기능 소개

1) 회원가입

회원가입

  • 필수 정보 입력 및 관심지역 선택
  • 이메일/닉네임 중복 확인

2) 홈 : 게시글 탐색

게시글 탐색

  • 현 위치 기반 피드 탐색
  • 카드/리스트 스크롤, 상세 이동
  • 좋아요/댓글/스크랩/팔로우

3) 홈 : 관심지역 탐색

관심지역 탐색

  • 관심지역을 기준으로 게시글 탐색
  • 관심지역 선택 (설정한 별명으로 표현)
  • 해당 지역 피드/지도 이동

4) 따라가기

따라가기

  • 사용자가 만든 게시글을 따라가며 체크포인트 방문
  • 지도에서 체크포인트 위치 확인, 방문 판정
  • AR 이벤트 실행 (유령 퇴치, 보물 상자)
  • 진행도/보상 획득 및 저장

5) AI를 이용한 게시글 생성

게시글 생성

  • 체크포인트(사진/메모/GPS) 기반으로 AI 초안 생성
  • 사진 태그/감정/말투/형식 옵션 반영
  • 초안 편집 후 게시 가능

6) 랭킹

랭킹

  • 관심지역별 TOP10과 내 순위 확인
  • 최대 3개 관심지역 선택 → 내 순위/스텝보드 진행률 표시
  • TOP10 사용자 프로필 이동 및 팔로우

7) 프로필 : 업적

업적

  • 사용자 로그를 기반으로 업적 판단
  • 업적 달성 시 보상 제공

8) 상점

상점

  • 배경/프레임/배지 구매 및 미리보기
  • 포인트 차감 후 아이템 보유함에 추가
  • 프로필 꾸미기 화면에서 적용

9) 프로필 관리

개인정보 수정

개인정보 수정

  • 별명/비밀번호/관심지역/프로필 사진 수정 가능

프로필 꾸미기

프로필 꾸미기

  • 구매한 상품들로 프로필 꾸미기
  • 미리보기 가능
  • 프로필 화면에 적용

작성한 게시글

작성한 게시글

  • 내가 만든 게시글 목록 및 관리
  • 게시글 상세 이동, 수정/삭제

따라가기한 게시글

따라가기한 게시글

  • 따라가기 진행/완료 상태를 한눈에 확인
  • 진행률을 별로 표시
  • 상세 진입 → 진행 현황/재시작

스크랩한 게시글

스크랩한 게시글

  • 저장해 둔 게시글 모아보기
  • 상세 보기로 이동

팔로우/팔로잉

팔로우/팔로잉

  • 소셜 관계 관리
  • 팔로우/팔로잉 목록 조회
  • 사용자 프로필 이동 및 언팔로우

로그아웃

로그아웃

  • 안전한 로그아웃 절차
  • 확인 모달 → 로그아웃
  • 토큰/세션 정리 및 홈 이동

회원탈퇴

회원탈퇴

  • 경고/안내 모달 확인 → 탈퇴 확정

10) 비밀번호 재설정

비밀번호 재설정

  • 이메일/이름 검증 후 재설정 링크 발송
  • 메일 링크 클릭 → 재설정 화면 이동
  • 새 비밀번호 저장 및 재로그인 안내

4. 기술 스택

백엔드

구분 기술
언어 / 런타임 Java 21, Gradle
프레임워크 Spring Boot 3.5.4
- Spring Web (MVC)
- Spring WebFlux (Reactive)
- Spring Validation
- Spring Security
- Spring Mail
데이터 / 스토리지 PostgreSQL (JDBC)
MongoDB (Spring Data MongoDB)
Redis (Spring Data Redis)
AWS S3 (Spring Cloud AWS S3)
JPA & 지오스페이셜 Spring Data JPA
Hibernate Spatial
PostGIS JDBC
JTS Topology Suite
Proj4J
인증 / 보안 Spring Security
JWT: JJWT
AI 연동 Spring AI
spring-ai-starter-model-openai
매핑 / 유틸 MapStruct
Lombok
OpenCSV
테스트 Spring Boot Starter Test
Spring Security Test
Mockito Core
Spring Boot Test Autoconfigure
JUnit Platform (Jupiter)
Flapdoodle Embedded Mongo

프론트엔드

구분 기술
언어 / 프레임워크 React.js, TypeScript
지도 / 위치 기반 MapBox GL JS
상태 관리 Zustand
스타일링 Tailwind CSS
UI 컴포넌트 FontAwesome
AR / 모바일 센서 활용 WebAR
API 통신 Axios
빌드 / 번들러 Vite
테스트 배포 환경 Vercel

개발 환경 및 협업 도구

구분 기술
배포 환경 AWS EC2, Nginx, Docker, Jenkins
협업 도구 Notion (문서화), Mattermost (커뮤니케이션), Jira(프로젝트 관리)
버전 관리 Git + GitLab
CI/CD Jenkins 파이프라인 구축 및 자동 배포
컨테이너 관리 Docker 기반 환경 구성

5. 아키텍처 및 설계

ERD

ERD

시스템 아키텍처

ERD

  • 클라이언트: React + Vite, Axios 기반 API 통신
  • 백엔드: Spring Boot, JPA, Redis 캐싱, S3 스토리지
  • DB: PostgreSQL + PostGIS(공간데이터), MongoDB(로그성 데이터), Redis(랭킹/세션)
  • AI 서버: OpenAI API(Spring AI 연동)
  • 배포: Docker → Jenkins CI/CD → Nginx Reverse Proxy → AWS EC2