DEV Community

2x lazymac
2x lazymac

Posted on

ACWR 0.85–1.35 Sweet Spot 으로 러닝 부상 예측 — Translation Device 가 되어버린 코칭 앱

요약 — 러닝 앱이 "더 빠르게"라고 외치는 동안 우리 몸은 매일 다른 신호를 보냅니다. 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
Enter fullscreen mode Exit fullscreen mode

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일 평균)
Enter fullscreen mode Exit fullscreen mode
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';
Enter fullscreen mode Exit fullscreen mode

UI 에서는 가로 게이지로 Sweet Spot 구간이 녹색으로 강조됩니다. raw 숫자 단독 노출은 절대 없으며, 모든 값에 텍스트 라벨이 동반됩니다.

3. 언어 번역 — raw 수치 단독 노출 금지

LLM 시스템 프롬프트 수준에서 금지 발화를 강제합니다:

const BUDDY_BANNED_PHRASES = [
  '부상입니다', '디스크입니다', '진단', '처방', '수술',
  '확실히 ', '반드시 ', '단언컨대',
  '더 빠르게', '더 고통스럽게', '한계까지', '죽을 만큼',
];
Enter fullscreen mode Exit fullscreen mode

그리고 시스템 프롬프트는 이렇게 강제합니다:

== 언어 번역 (절대) ==
raw 수치 단독 노출 금지. 모든 수치 → "당장 취할 수 있는 보행 지침" 으로 번역.

예시)
  원시  → "오른발 충격이 왼발 대비 12% 높음"
  번역  → "오른발 착지 충격이 왼발 대비 12% 강합니다.
            우측 골반이 미세하게 뒤로 밀려 있을 수 있으니,
            상체를 곧게 펴고 명치를 가볍게 앞으로
            밀며 주행해 주세요."
Enter fullscreen mode Exit fullscreen mode

여기가 Computational Sports Scientist 가 마이크를 Empathetic Coach 에게 넘겨주는 지점입니다.

4. 신뢰 스택 (Trust Stack) — 세 레이어를 항상 노출

건강 데이터 제품은 신뢰 위에서 부서집니다. 세 가지 UX 룰을 브랜드 거버넌스 최상단에 박았습니다:

  1. Role Framing — "이 앱은 의료 장비가 아니라 번역 장치(Translation Device) 입니다." Onboarding + Settings 에 명시.
  2. 정확도 정직 공개 — 모든 카드 footer 에 "트렌드 기반. 단일 측정값은 신뢰하지 않습니다" 표시. 7일 이동평균이 최소 단위.
  3. 가시적 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 코치 출력                       │
└─────────────────────────────────────┘
Enter fullscreen mode Exit fullscreen mode

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)

Top comments (0)