Record Sports — 탁구 기록 & ELO 랭킹 상세 설계서
상태: PUBLIC · RELEASED · STORE_LIVE (Google Play) 기술 스택: React Native 0.84 (Granite), TypeScript, Zustand, TanStack Query, Firebase 카테고리: Mobile / Sports App
1. 문제와 대상 사용자
동호회 탁구는 경기 결과가 개인의 기억이나 종이 기록으로 흩어져, 실력이 얼마나 늘었는지 확인할 방법이 없습니다. Record Sports는 클럽 단위로 뛰는 생활체육 탁구인을 대상으로, 경기를 그 자리에서 기록하고 ELO 레이팅으로 실력 변화를 눈에 보이게 만듭니다.
2. 핵심 기능
| 기능 | 설명 |
|---|---|
| 실시간 경기 기록 | Quick / Detailed 모드, 5세트·3세트 포맷, 듀스 자동 감지 |
| ELO 레이팅 | 7단계 티어, 자동 승격 연출 |
| 그룹 · 랭킹 | 클럽 관리, 글로벌/친구 랭킹, 이중 승인 시스템 |
3. 기술 선택 이유
- React Native (Granite Router): 단일 코드베이스로 기록 UI를 빠르게 반복하기 위해 선택했습니다.
- Zustand + TanStack Query: 로컬 경기 진행 상태와 서버 동기화 상태를 분리해 다루기 위한 조합입니다.
- Firebase (Auth / Firestore / Functions): 1인 운영에서 서버 관리 부담을 줄이고 승인·랭킹 집계를 서버리스로 처리합니다.
- Sentry: 실사용자 환경의 크래시를 추적합니다.
4. 현재 범위
- 경기 기록, ELO, 그룹·랭킹까지 실사용 가능한 상태로 Google Play에 출시되어 있습니다.
- 웹 아카이브에서는 앱을 실행하지 않습니다. 화면 기반 제품 투어를 제공하고, 실제 사용은 공식 스토어 설치로 연결합니다.
5. 알려진 한계
- Android 우선입니다. 웹 투어는 실제 앱 실행이 아니며, 기록 데이터는 앱 계정에 귀속됩니다.
- 랭킹은 클럽 내 활동량에 영향을 받으므로 소규모 그룹에서는 레이팅 변동 폭이 큽니다.
6. 다음 검증
- 토너먼트 시스템의 실사용 검증
- 스토어 버전·지원 기기·개인정보 정책 링크를 릴리스 레저에 반영