개발 기간 :
2025.10.10 ~ 2025.11.20
Runnity는 러너들이 실시간으로 운동 데이터를 공유하며 함께 달릴 수 있는 러닝 챌린지 플랫폼입니다. 개인 러닝과 그룹 챌린지를 지원하며, WebSocket 기반 실시간 데이터 공유와 AI 중계 기능으로 몰입감을 높였습니다.
-
챌린지 생성/참여: 거리(3km, 5km, 10km 등)와 공개 범위를 설정해 챌린지를 만들고 참여할 수 있습니다.
-
운동 데이터 실시간 공유: WebSocket으로 거리, 페이스, 시간 등 운동 데이터를 주고받으며 함께 달립니다.
-
실시간 랭킹: 거리와 페이스를 기반으로 순위를 계산해 경쟁 요소를 제공합니다.
-
라이브 스트리밍: 챌린지 상황을 실시간으로 중계해 시청자들이 참가자들의 러닝을 관전할 수 있습니다.
-
AI 하이라이트: Kafka로 수집한 데이터를 분석해 러닝 중 주요 순간을 자동 생성합니다.
- 기록 관리: 개인 러닝과 챌린지 기록을 구분해 거리, 페이스, 랩 타임 등 상세 정보를 제공합니다.
- 통계 대시보드: 주/월/년 데이터를 시각화해 러닝 추이를 확인할 수 있습니다.
- 스마트워치 연동: Wear OS 기기로 러닝 중에도 실시간 데이터를 확인하고 간편하게 제어할 수 있습니다.
-
소셜 로그인: Google, Kakao 로그인을 지원합니다.
-
프로필 관리: 프로필 이미지, 닉네임 등 개인 정보를 관리할 수 있습니다.
소셜 로그인으로 간편하게 시작할 수 있습니다.
| 온보딩 화면 |
|---|
![]() |
다양한 옵션으로 챌린지를 만들고 참여할 수 있습니다.
| 챌린지 목록 | 챌린지 상세 |
|---|---|
![]() |
![]() |
| 챌린지 생성 | 챌린지 결과 |
|---|---|
![]() |
![]() |
WebSocket으로 거리, 시간, 페이스 등 운동 데이터를 실시간 주고받습니다.
| 메인 홈 | 개인 러닝 시작 |
|---|---|
![]() |
![]() |
| 개인 러닝 진행 중 | 개인 러닝 결과 |
|---|---|
![]() |
![]() |
챌린지 진행 상황을 실시간 중계하며, AI가 중계 메세지를 생성합니다.
| 챌린지 진행 화면 및 중계방 스트리밍 |
|---|
![]() |
달린 기록을 확인하고 나만의 통계를 관리할 수 있습니다.
| 러닝 기록 및 통계 |
|---|
![]() |
사용자 정보를 확인하고 수정할 수 있습니다.
| 마이페이지 |
|---|
![]() |
- Backend Server: API 제공, 사용자 및 챌린지 관리
- WebSocket Server: 운동 데이터 실시간 송수신
- Stream Server: 라이브 중계 처리
- AI Server: 운동 데이터 기반 하이라이트 생성
- Redis: 캐싱 및 Pub/Sub 메시지 처리
- Kafka: 서버 간 이벤트 스트리밍
| 분류 | 기술 스택 |
|---|---|
| Frontend | |
| Backend | |
| AI | |
| Database | |
| Infra |
- Kotlin, Jetpack Compose (MVVM)
- Retrofit, OkHttp, Coroutines, Flow
- Hilt, Kakao Map SDK
- Google/Kakao 로그인, FCM 알림, Wear OS 연동
- Java 17, Spring Boot 3.5.7
- Gradle 8.14.3, JPA, Hibernate
- JWT, OAuth2 인증
- Swagger 문서화, AWS S3 연동
- Python 3.11, FastAPI, Uvicorn
- Kafka (kafka-python), Threading
- Ubuntu 24.04, Docker, Docker Compose
- Jenkins, Nginx (SSL, Reverse Proxy)
- Let's Encrypt 인증서
- Prometheus, Grafana 모니터링
신상원 팀장 / FE |
김동휘 BE |
김상경 BE |
윤선호 BE |
이상민 INFRA |
이다예 FE |
조예림 BE |




















