SSAFY 12기 2학기 공통 프로젝트
⌛ 프로젝트 기간 : 2025.01.13 ~ 2025.02.20 (6주)
📆 상세 기간 : 기획 2주 + 공부 1주 + 개발 2주 + 버그 해결 1주
🔗 노션 링크
✨ 혼자 하는 러닝은 이제 그만!
지루한 러닝이 실시간 레이드 게임으로 다시 태어났어요.
친구들과 함께 보스를 물리치며 즐거운 러닝을 시작해보세요!
🎮 이런 분들을 위한 러닝 게임이에요
혼자 뛰기는 심심하고 동기부여가 필요하신 분
친구들과 함께 목표를 달성하며 운동하고 싶으신 분
러닝을 더 재미있게 즐기고 싶으신 분
갤럭시 워치로 건강한 습관을 만들고 싶으신 분
😻 로캣냥만의 특별한 기능
실시간으로 친구와 함께하는 보스 레이드
달리면서 쌓이는 공격게이지로 짜릿한 보스 처치
러닝 후 받은 코인으로 귀여운 캐릭터 꾸미기
일별/주별/월별 상세한 러닝 통계
💪 이렇게 사용해보세요!
1️⃣ 친구를 초대하거나 랜덤 매칭으로 파티 구성
2️⃣ 함께 달리며 실시간으로 공유되는 러닝 현황 확인
3️⃣ 보스를 물리치고 획득한 코인으로 캐릭터 꾸미기
4️⃣ 레벨업하고 랭킹에서 나만의 기록 달성하기
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
|---|---|---|---|---|---|
| 박혜원 @hyeOOO |
권규리 @rnjs010 |
김주찬 @PoloCeleste |
서성우 @bamtol2 |
이가람 @garam0107 |
이혜령 @hyerongii |
| 백엔드 개발 (팀장) |
프론트 개발 | 인프라 개발 | 백엔드 개발 | 프론트 개발 | 프론트 개발 |
| 통계 개발, 레이드 게임 개발, 아이템 도트 디자인 | 메인/통계/옷장/아이템 판매/랭킹/마이페이지 개발 및 디자인 | 인프라 CI/CD 구축, 워치 센서 살짝, 픽셀아트 디자인, 모바일앱 배포 | 메인/로그인/옷장/판매/랭킹/마이페이지 API 개발 | Wear OS, 모바일 소셜 로그인, 지라 관리 | 모바일 단 웹소켓, 워치 통신, 게임/뽑기 페이지 구현, UI/UX 디자인 |
로그인, 메인 페이지, 랭킹, 유저프로필
| 유저 프로필 모달 | 랭킹 모달 |
|---|---|
![]() |
![]() |
| 유저정보 모달에서 정보 수정 터치 시 닉네임, 신체 정보를 수정가능하며 중복, 입력 검사 완료시 저장 버튼이 활성화됩니다. 하단에는 회원탈퇴 로그아웃 버튼도 위치해있습니다. |
랭킹 모달에서는 유저들의 순위를 볼 수 있습니다. 자신의 순위는 상단에 고정되며 각 플레이어의 프로필 사진도 확인 가능합니다. |
통계 페이지, 옷장 페이지, 판매 페이지
| 통계 페이지 (일별) | 통계 페이지 (세부) | 통계 페이지 (주별) |
|---|---|---|
![]() |
![]() |
![]() |
| 일/주/월 페이지는 탭을 터치하거나 슬라이드를 통해 넘어갈 수 있습니다. 일별 데이터는 모든 기록이 최근순으로 보여집니다. |
일별 데이터 중 개인 기록 터치 시, 해당 일자에 달린 상세 정보가 모달로 나타납니다. | 주/월의 경우 날짜를 선택할 수 잇는 모달이 있습니다. |
게임 페이지
워치 페이지
| 워치 시작 페이지 | 게임 실행 페이지 | 플레이어 현황 페이지 |
|---|---|---|
![]() |
![]() |
![]() |
| 확인 버튼을 누르면 모바일 앱이 실행됩니다. (모바일 앱에서만 게임 시작이 가능합니다.) |
5초 카운트다운 후 나타나는 사용자의 실시간 러닝 데이터 화면입니다. | 플레이어들의 실시간 달린 거리, 공격 횟수 표시 화면입니다. |
| 공격 시 화면 | 피버타임 화면 | 게임 종료 화면 |
|---|---|---|
![]() |
![]() |
![]() |
| 사용가능한 공격 아이템이 있다면 공격 버튼이 활성화됩니다. (공격 시 1초간 진동으로 알림이 발생하고 참치캔이 날라갑니다.) |
모든 플레이어가 2회씩 공격한다면 피버 타임이 시작됩니다. 피버타임은 30초동안 진행되고, 진동이 계속 발생합니다. |
정상적으로 게임이 종료되었을 때 나오는 화면입니다. |
| 메인페이지 로그인/회원가입 | 메인페이지 튜토리얼 | 메인페이지 아이템 뽑기 |
|---|---|---|
![]() |
![]() |
![]() |
| 메인페이지 기능 | 메인페이지 통계 |
|---|---|
![]() |
![]() |
| 게임페이지 설명/규칙 | 게임페이지 플레이 |
|---|---|
![]() |
![]() |
Back 폴더 구조 보기
📦main ┣ 📂java ┃ ┗ 📂com ┃ ┃ ┗ 📂ssafy ┃ ┃ ┃ ┗ 📂roCatRun ┃ ┃ ┃ ┃ ┣ 📂api ┃ ┃ ┃ ┃ ┃ ┗ 📂controller ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂auth ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokenController.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SocialLoginController.java ┃ ┃ ┃ ┃ ┣ 📂domain ┃ ┃ ┃ ┃ ┃ ┣ 📂boss ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BossController.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BossResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Boss.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BossDifficulty.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BossRepository.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜BossService.java ┃ ┃ ┃ ┃ ┃ ┣ 📂game ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AuthenticateRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CreateRoomRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameEndVoteRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JoinRoomRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MatchRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PlayerRunningResultRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RunningDataUpdateRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UseItemRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜AuthResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FeverTimeEndedResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FeverTimeStartedResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameCountdownResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameEndVoteResultResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameEndVoteStartedResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameOverResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameReadyResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameResultResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameStartResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameStatusResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MatchStatusResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PlayerDisconnectedResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PlayerJoinedResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PlayerLeftResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PlayerReconnectedResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜roomCreatedResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RoomJoinedResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RunningDataUpdateResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂raid ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜BossLevel.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameResult.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameRoom.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameStatus.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Item.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Player.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RunningData.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂user ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜User.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜UserSession.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UserStatus.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameResultRepository.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂manager ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameDisconnectionManager.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameRoomManager.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameTimerManager.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameService.java ┃ ┃ ┃ ┃ ┃ ┣ 📂gameCharacter ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameCharacterController.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameCharacterCreateRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NicknameUpdateRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameCharacterResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RankingListResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RankingResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameCharacter.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Level.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameCharacterRepository.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LevelRepository.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameCharacterService.java ┃ ┃ ┃ ┃ ┃ ┣ 📂inventory ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜InventoryController.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜InventoryEquipRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜InventorySellRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜InventoryResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemSellResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Inventory.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜InventoryRepository.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜InventoryService.java ┃ ┃ ┃ ┃ ┃ ┣ 📂item ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemController.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemDrawRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ItemDrawResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Item.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemRepository.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ItemService.java ┃ ┃ ┃ ┃ ┃ ┣ 📂member ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MemberController.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂oauth ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GoogleLoginDto.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoLoginDto.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NaverLoginDto.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MemberDeleteRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MemberProfileUpdateRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂response ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜LoginResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂token ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokenRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokenResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokens.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RefreshToken.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂userinfo ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GoogleUserInfoResponseDto.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoUserInfoResponseDto.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NaverUserInfoResponseDto.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Member.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MemberRepository.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RefreshTokenRedisRepository.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂auth ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GoogleService.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokenService.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoService.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NaverService.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MemberService.java ┃ ┃ ┃ ┃ ┃ ┣ 📂myPage ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MyPageController.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MyPageUpdateRequest.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MyPageResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MyPageService.java ┃ ┃ ┃ ┃ ┃ ┗ 📂stats ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameStatsController.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DailyStatsResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MonthlyStatsResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StatsResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WeeklyStatsResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameStats.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂exception ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameStatsNotFoundException.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameStatsRepository.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GameStatsService.java ┃ ┃ ┃ ┃ ┣ 📂global ┃ ┃ ┃ ┃ ┃ ┣ 📂common ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ApiResponse.java ┃ ┃ ┃ ┃ ┃ ┣ 📂config ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GameConfig.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RedisConfig.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RestTemplateConfig.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜S3Config.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜SecurityConfig.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WebSocketConfig.java ┃ ┃ ┃ ┃ ┃ ┣ 📂exception ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CustomException.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ErrorCode.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ErrorResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ExceptionCode.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GlobalExceptionHandler.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜InvalidNicknameException.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TokenRefreshException.java ┃ ┃ ┃ ┃ ┃ ┣ 📂s3 ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜FileUploadController.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂dto ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜UploadResponse.java ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂exception ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FileDeleteException.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜FileUploadException.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜InvalidFileException.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂service ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜S3Service.java ┃ ┃ ┃ ┃ ┃ ┣ 📂security ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂jwt ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂filter ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜JwtAuthenticationFilter.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜JwtTokenGenerator.java ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜JwtTokenProvider.java ┃ ┃ ┃ ┃ ┃ ┣ 📂socket ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜SessionManager.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜SocketEventHandler.java ┃ ┃ ┃ ┃ ┃ ┣ 📂util ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ResponseUtil.java ┃ ┃ ┃ ┃ ┃ ┗ 📂validation ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂annotation ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ValidNickname.java ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂validator ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NicknameValidator.java ┃ ┃ ┃ ┃ ┣ 📂health ┃ ┃ ┃ ┃ ┃ ┗ 📜SimpleHealthIndicator.java ┃ ┃ ┃ ┃ ┗ 📜RoCatRunApplication.java ┗ 📂resources ┃ ┗ 📜data.sql
Front - mobile 폴더 구조 보기
📦main ┣ 📂java ┃ ┗ 📂com ┃ ┃ ┗ 📂eeos ┃ ┃ ┃ ┗ 📂rocatrun ┃ ┃ ┃ ┃ ┣ 📂api ┃ ┃ ┃ ┃ ┃ ┗ 📜RetrofitInstance.kt ┃ ┃ ┃ ┃ ┣ 📂closet ┃ ┃ ┃ ┃ ┃ ┣ 📂api ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ClosetAPI.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ClosetDataClass.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ClosetViewModel.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜ClosetActivity.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜ClosetScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜GradeInfoScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜ItemInfoScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜SaveCheckScreen.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜SendImage.kt ┃ ┃ ┃ ┃ ┣ 📂game ┃ ┃ ┃ ┃ ┃ ┣ 📜AlertScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜BossScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜GameplayActivity.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜GameplayScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜GameroomActivity.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜GameroomScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜InfoScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜LoadingActivity.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜LoadingScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜MatchingActivity.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜MatchingScreen.kt ┃ ┃ ┃ ┃ ┣ 📂home ┃ ┃ ┃ ┃ ┃ ┣ 📂api ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜HomeAPI.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜HomeInfoDataClass.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜HomeViewModel.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜HomeActivity.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜HomeScreen.kt ┃ ┃ ┃ ┃ ┣ 📂intro ┃ ┃ ┃ ┃ ┃ ┣ 📜IntroActivity.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜IntroScreen.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜StoryScreen.kt ┃ ┃ ┃ ┃ ┣ 📂login ┃ ┃ ┃ ┃ ┃ ┣ 📂data ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ApiService.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜CreateCharacterResponse.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜LoginResponse.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MemberResponse.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜NicknameCheckResponse.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RetrofitClient.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜TokenManager.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜TokenStorage.kt ┃ ┃ ┃ ┃ ┃ ┣ 📂social ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GoogleWebViewLoginActivity.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜KakaoWebViewLoginActivity.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜NaverWebViewLoginActivity.kt ┃ ┃ ┃ ┃ ┃ ┣ 📂util ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MessageBox.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜NicknameCheckHelper.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜NicknameValidator.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Register.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜GlobalApplication.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜LoginActivity.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜LoginButton.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜LoginScreen.kt ┃ ┃ ┃ ┃ ┣ 📂ppobgi ┃ ┃ ┃ ┃ ┃ ┣ 📂api ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PpobgiAPI.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜PpobgiDataClass.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜PpobgiViewModel.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜PpobgiButton.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜PpobgiScreen.kt ┃ ┃ ┃ ┃ ┣ 📂profile ┃ ┃ ┃ ┃ ┃ ┣ 📂api ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ProfileAPI.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ProfileDataClass.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ProfileViewModel.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜ProfileScreen.kt ┃ ┃ ┃ ┃ ┣ 📂ranking ┃ ┃ ┃ ┃ ┃ ┣ 📂api ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RankingAPI.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜RankingDataClass.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RankingViewModel.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜RankingScreen.kt ┃ ┃ ┃ ┃ ┣ 📂result ┃ ┃ ┃ ┃ ┃ ┣ 📜LevelUpScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜MultiLoseScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜MultiWinScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜SingleLoseScreen.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜SingleWinScreen.kt ┃ ┃ ┃ ┃ ┣ 📂service ┃ ┃ ┃ ┃ ┃ ┣ 📜GamePlayService.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜MessageHandlerService.kt ┃ ┃ ┃ ┃ ┣ 📂shop ┃ ┃ ┃ ┃ ┃ ┣ 📂api ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ShopAPI.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ShopDataClass.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ShopViewModel.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜ShopActivity.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜ShopScreen.kt ┃ ┃ ┃ ┃ ┣ 📂socket ┃ ┃ ┃ ┃ ┃ ┗ 📜SocketHandler.kt ┃ ┃ ┃ ┃ ┣ 📂splash ┃ ┃ ┃ ┃ ┃ ┗ 📜SplashActivity.kt ┃ ┃ ┃ ┃ ┣ 📂stats ┃ ┃ ┃ ┃ ┃ ┣ 📂api ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜DailyDataClass.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StatsAPI.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜StatsViewModel.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜WeekMonDataClass.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜CommonUtils.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜DayStatsScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜MonStatsScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜StatsActivity.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜StatsDetailScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜StatsScreen.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜WeekStatsScreen.kt ┃ ┃ ┃ ┃ ┣ 📂textgpxviewer ┃ ┃ ┃ ┃ ┃ ┣ 📂gpx ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜GpxFileHandler.kt ┃ ┃ ┃ ┃ ┃ ┗ 📂map ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜MapboxGPXViewer.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜RouteDrawer.kt ┃ ┃ ┃ ┃ ┣ 📂ui ┃ ┃ ┃ ┃ ┃ ┣ 📂components ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ConfirmDialog.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜format.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜GifImage.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜ModalBottomBtn.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜StrokeText.kt ┃ ┃ ┃ ┃ ┃ ┗ 📂theme ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Color.kt ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📜Theme.kt ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Type.kt ┃ ┃ ┃ ┃ ┗ 📜MainActivity.kt ┣ 📂res ┣ 📜AndroidManifest.xml ┗ 📜ic_rocatrun-playstore.png
Front - wear 폴더 구조 보기
📦main ┣ 📂java ┃ ┗ 📂com ┃ ┃ ┗ 📂eeos ┃ ┃ ┃ ┗ 📂rocatrun ┃ ┃ ┃ ┃ ┣ 📂constants ┃ ┃ ┃ ┃ ┃ ┗ 📜GameRules.kt ┃ ┃ ┃ ┃ ┣ 📂detector ┃ ┃ ┃ ┃ ┃ ┣ 📜ArmGestureDetector.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜ArmRaiseDetector.kt ┃ ┃ ┃ ┃ ┣ 📂presentation ┃ ┃ ┃ ┃ ┃ ┣ 📂theme ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜Theme.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜CountdownScreen.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜GameState.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜ItemActivity.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜MainActivity.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜NetworkErrorActivity.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜ResultActivity.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜RunningActivity.kt ┃ ┃ ┃ ┃ ┣ 📂receiver ┃ ┃ ┃ ┃ ┃ ┗ 📜SensorUpdateReceiver.kt ┃ ┃ ┃ ┃ ┣ 📂sensor ┃ ┃ ┃ ┃ ┃ ┗ 📜SensorMangerHelper.kt ┃ ┃ ┃ ┃ ┣ 📂service ┃ ┃ ┃ ┃ ┃ ┣ 📜LocationForegroundService.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜MessageHandlerService.kt ┃ ┃ ┃ ┃ ┣ 📂ui ┃ ┃ ┃ ┃ ┃ ┣ 📜CircularItemGauge.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜FeverTime.kt ┃ ┃ ┃ ┃ ┣ 📂util ┃ ┃ ┃ ┃ ┃ ┗ 📜FormatUtils.kt ┃ ┃ ┃ ┃ ┗ 📂viewmodel ┃ ┃ ┃ ┃ ┃ ┣ 📜BossHealthRepository.kt ┃ ┃ ┃ ┃ ┃ ┣ 📜GameViewModel.kt ┃ ┃ ┃ ┃ ┃ ┗ 📜MultiUserViewModel.kt ┣ 📂res ┣ 📜AndroidManifest.xml ┗ 📜ic_rocatrun-playstore.png



























































