요약 — 러닝 앱이 "더 빠르게"라고 외치는 동안 우리 몸은 매일 다른 신호를 보냅니다. RunVault 는 lnRMSSD 7일 이동평균, Acute:Chronic 부하 비율(ACWR), 좌우 보행 비대칭을 측정해 raw 수치 대신 보행 지침으로 번역 하는 Computational Sports Scientist 페르소나로 응답합니다.
왜 "더 빠르게 더 고통스럽게" 패러다임을 배격하는가
스트라바는 PR(Personal Record)을 강조합니다. 나이키 런 클럽은 오디오 가이드가 더 깊이 파고들라고 합니다. 런데이는 시작 전 광고를 보여줍니다. 어느 앱도 우리에게 가장 중요한 진실을 알려주지 않습니다.
"당신은 회복되지 않았습니다. 오늘은 달리지 마세요."
RunVault 는 이 격차를 메우려 만든 앱입니다. AI 코치는 두 정체성의 단일체 로 설계되었습니다.
| 정체성 | 역할 |
|---|---|
| Computational Sports Scientist | HRV / 지상반력 / 비대칭 데이터의 엄격한 수치 분석 |
| Empathetic Coach | 과학적 결과물을 따뜻한 처방형 언어로 번역 |
이 이중 페르소나는 brand/GOVERNANCE_PROMPT_PROTOCOL.md 의 최상위 거버넌스로 LOCK 되어 있으며, 브랜드 바이블·색 토큰·LLM 시스템 프롬프트 위에 군림합니다.
1. HRV — 단일 측정값은 노이즈, 7일 평균이 신호
아침에 한 번 측정한 RMSSD 값은 통계적으로 거의 쓸모가 없습니다. 수면, 수분, 어젯밤 음주, 정신적 스트레스 — 이 모든 요인이 값을 흔듭니다. 그래서 Altini / Kiviniemi / Plews 의 선행 연구를 따라:
lnRMSSD = ln(RMSSD)
RMSSD_MEAN_7d = mean(lnRMSSD_1 .. lnRMSSD_7)
RMSSD_CV = (std_7d / RMSSD_MEAN_7d) × 100
RMSSD_MEAN_7d 가 개인의 베이스라인 하한선 아래로 떨어지면서 동시에 RMSSD_CV 가 급감하면, Functional Overreaching (FOR) 로 판정하고 당일 트레이닝 계획을 자동으로 강도 다운그레이드합니다. 사용자의 의지력에 의존하지 않습니다.
2. ACWR Sweet Spot [0.85, 1.35] 가 친구입니다
Acute:Chronic Workload Ratio 는 프로 스포츠 (Catapult Vector, Zephyr BioHarness) 에서 검증된 부상 위험 지표입니다.
ACWR = AcuteLoad(최근 7일) / ChronicLoad(최근 28일 평균)
| ACWR | 상태 | 액션 |
|---|---|---|
| < 0.85 | 낮은 부하 | 점진적 증량, 다음 주 +10-15% |
| 0.85 – 1.35 | Sweet Spot | 지속 |
| 1.35 – 1.50 | 높은 부하 · 주의 | 다음 세션 강도 다운 |
| ≥ 1.50 | 위험 구간 | 강도 + 볼륨 강제 리셋 |
RunVault Cloudflare Worker 에서는 다음과 같이 구현됩니다:
const acwr = chronic > 0 ? acute / chronic : 0;
let status: 'low' | 'sweet_spot' | 'high' | 'danger' | 'no_data';
if (chronic <= 0) status = 'no_data';
else if (acwr < 0.85) status = 'low';
else if (acwr <= 1.35) status = 'sweet_spot';
else if (acwr < 1.5) status = 'high';
else status = 'danger';
UI 에서는 가로 게이지로 Sweet Spot 구간이 녹색으로 강조됩니다. raw 숫자 단독 노출은 절대 없으며, 모든 값에 텍스트 라벨이 동반됩니다.
3. 언어 번역 — raw 수치 단독 노출 금지
LLM 시스템 프롬프트 수준에서 금지 발화를 강제합니다:
const BUDDY_BANNED_PHRASES = [
'부상입니다', '디스크입니다', '진단', '처방', '수술',
'확실히 ', '반드시 ', '단언컨대',
'더 빠르게', '더 고통스럽게', '한계까지', '죽을 만큼',
];
그리고 시스템 프롬프트는 이렇게 강제합니다:
== 언어 번역 (절대) ==
raw 수치 단독 노출 금지. 모든 수치 → "당장 취할 수 있는 보행 지침" 으로 번역.
예시)
원시 → "오른발 충격이 왼발 대비 12% 높음"
번역 → "오른발 착지 충격이 왼발 대비 12% 강합니다.
우측 골반이 미세하게 뒤로 밀려 있을 수 있으니,
상체를 곧게 펴고 명치를 가볍게 앞으로
밀며 주행해 주세요."
여기가 Computational Sports Scientist 가 마이크를 Empathetic Coach 에게 넘겨주는 지점입니다.
4. 신뢰 스택 (Trust Stack) — 세 레이어를 항상 노출
건강 데이터 제품은 신뢰 위에서 부서집니다. 세 가지 UX 룰을 브랜드 거버넌스 최상단에 박았습니다:
- Role Framing — "이 앱은 의료 장비가 아니라 번역 장치(Translation Device) 입니다." Onboarding + Settings 에 명시.
- 정확도 정직 공개 — 모든 카드 footer 에 "트렌드 기반. 단일 측정값은 신뢰하지 않습니다" 표시. 7일 이동평균이 최소 단위.
- 가시적 Data Autonomy — Privacy Center 가 설정 깊숙히 묻혀있지 않고 메인 홈 화면 일급 버튼. 폐기 + 로컬 격리 토글 즉시 접근.
Oura Ring 의 "Live Fast, Die Old" + Translation Device 프레이밍이 명시적 벤치마크입니다.
5. 아키텍처 — Perception → Network → Application 3-Layer
BoxingPro 시스템 아키텍처를 러닝 도메인에 처음 이식:
┌─ 1. PERCEPTION ─────────────────────┐
│ IMU + 인솔 압력 + PPG HRV │
│ + 후방 카메라 MoveNet (17 키포인트) │
└──────────────┬──────────────────────┘
▼
┌─ 2. NETWORK ────────────────────────┐
│ 5차 버터워스 저역통과 필터 │
│ 타임스탬프 동기화 + 임계치 판정 │
└──────────────┬──────────────────────┘
▼
┌─ 3. APPLICATION ────────────────────┐
│ 거버넌스 프롬프트 시맨틱 매핑 │
│ LLM 코치 출력 │
└─────────────────────────────────────┘
Application 레이어에서 LLM (현재 Claude Haiku + Pollinations 무료 fallback) 이 운동역학 데이터를 받아 금지어 스캐너를 통과시킨 후 한국어 코칭 문장을 출력합니다.
6. 5경쟁사 매트릭스 — 왜 차별화되는가
| NRC | 스트라바 | 루나 (Runna) | 런데이 | RunVault | |
|---|---|---|---|---|---|
| 측정 데이터 | 페이스/심박 | 구간 | 마일리지 | GPS | 지상반력 / 제동력 / 좌우 대칭 / lnRMSSD / ACWR |
| AI 페르소나 | 직설적 코치 | 소셜 라이벌 | 플랜 생성기 | 한국어 페이서 | Computational Scientist + Empathetic Coach |
| 가격 | 무료 + 인앱 | $11.99/월 | $99.99/년 | 무료 + 광고 | $5.99/월 |
| 약점 | 워치 단독 불안 | 영어 우선 | 프리미엄 가격 | 광고 과다 | (초기) 센서 번들 진입 장벽 |
7. 직접 써보기
RunVault Closed Beta APK (Android, ~160 MB):
👉 https://api.lazy-mac.com/runvault.apk
Privacy Policy:
👉 https://api.lazy-mac.com/runvault/privacy
앱을 열면 AI 코치 탭 이 첫 화면입니다 — 그래프 뷰 + 음성 마이크 + 프롬프트. "어제 무릎이 약간 아팠는데 오늘 10km 가도 될까?" 같은 질문을 던지면 페르소나가 작동합니다.
8. 다음
- Health Connect HRV records SDK 실 wire (현재 Worker 는 D1 활동 데이터로 ACWR 만 계산; HRV 는 Phase F SDK 통합 대기 중 stub).
- NURVV Run / Moticon 인솔 호환으로 실시간 보행 비대칭 검출.
- Whoop Unite 스타일 B2B — 기업 웰니스 파일럿.
건강 데이터 제품을 만들고 있고 센서 숫자를 차트에 그냥 던지고 싶은 유혹이 들면, 제발 그러지 말아주세요. 번역 장치(Translation Device) 를 만드세요.
— Daniel (lazymac2x)













