오늘 운동 앱의 회복 점수는 이렇게 계산합니다
측정값 7가지(대부분 애플워치)를 각각 정해진 기준 곡선에 올려 만든 0–100점입니다. 개인 평균과 비교하지 않으며, 수면 비중이 가장 큽니다.
오늘 운동은 지난밤 애플워치 기록을 0–100점의 회복 점수 하나와 5단계 컨디션으로 바꿉니다. 점수는 상대가 아니라 절대 기준입니다. 각 입력을 내 과거 평균과 비교하지 않고, 기준 범위(예: 수면 7–9시간, 주간 유산소 150–300분)를 바탕으로 만든 정해진 곡선에 올립니다. 앱은 각 측정값이 최근 평소와 비교해 어떤지도 보여 주지만, 그 비교는 화면 표시용이고 점수를 바꾸지 않습니다. 점수는 iPhone 안에서 계산되고, 앱은 건강 측정값을 서버로 올리지 않습니다.
이 문서는 앱 1.4.3(점수 엔진 1.60.0)에 실제 구현된 규칙을 설명합니다. 웰니스 기능에 대한 설명이지 의학적 조언이 아닙니다.
앱이 읽는 데이터
앱은 건강 앱의 다음 기록을 읽습니다. 대부분 애플워치가 밤사이 기록합니다.
- 수면 분석(잠든 시간, 침대에 있던 시간, 수면 단계)
- 안정시 심박수와 심박수
- 심박변이도: 애플워치 심박 간격 기록이 있으면 거기서 계산한 rMSSD를 씁니다. 없으면 건강 앱이 주는 SDNN 값을 대신 쓰고 «대체 값»으로 표시합니다. rMSSD와 SDNN은 서로 다른 지표이고, 앱은 하나를 다른 하나로 변환하지 않습니다.
- 수면 중 호흡수
- 수면 중 손목 온도
- 운동 기록, 활동 에너지, 걸음 수
- 직접 기록하면 쓰는 생활 기록: 음주, 카페인, 마음챙김 시간, 혈압, 혈당, 수면 중 호흡 방해
밤사이 측정에는 애플워치가 필요합니다. 애플워치가 없으면 점수로 계산할 수면·HRV·야간 심박 데이터가 없습니다.
일곱 개의 축
각 입력은 0–100점짜리 자기 곡선에 올라갑니다. 곡선은 아래 기준 범위를 참고해 만들었습니다. 가중치, 기준값 사이의 점, 수면 상한은 제품 규칙이고, 합친 점수는 회복을 임상적으로 검증한 지표가 아닙니다.
| 축 | 가중치 | 100점 | 0점 | 기준 |
|---|---|---|---|---|
| 수면 시간 | 0.30 | 7–9시간 | 수면 없음 | NSF 2015 권고, AASM/SRS 합의(7시간 이상). 10시간을 넘는 긴 수면은 점수가 낮아짐(Cappuccio 2010) |
| 수면 효율 | 0.10 | 85% 이상 | 30% 이하 | Ohayon 2017(NSF 수면의 질 지표) |
| 주간 유산소 시간(최근 7일) | 0.20 | 300분 | 0분 | WHO 2020: 150분이 기준선(60점), 300분이 만점. 300분을 넘어도 감점하지 않음(Arem 2015) |
| 주간 근력 운동 일수(최근 7일) | 0.10 | 2일 이상 | 0일 | WHO 2020: 주 2일 이상 근력 운동(1일 = 50점) |
| 안정시 심박수 | 0.15 | 55bpm 이하 | 110bpm | Zhang 2016 메타분석: 10bpm 오를 때마다 전체 사망 위험 약 9% 증가. 100bpm은 임상적 빈맥 기준 |
| 심박변이도(7일 이동 평균) | 0.10 | 42ms 이상 | 0ms | Nunan 2010: 건강한 성인 평균 rMSSD 42ms. 개인차가 커서 높은 값은 감점하지 않음 |
| 야간 호흡수 | 0.05 | 분당 12–20회 | 분당 6회 또는 32회 | 특정 연구가 아닌 임상 관례 |
걸음 수도 유산소 축에 들어갑니다. 하루 평균 8,000보를 150분 기준선, 12,000보를 300분 목표로 봅니다(Saint-Maurice 2020, Paluch 2022). 2,000보 이하는 더하지 않습니다. 기록한 운동 시간과 걸음으로 환산한 시간 중 큰 쪽을 쓰고 둘을 더하지 않으므로, 운동으로도 기록한 산책이 두 번 세어지지 않습니다.
임신처럼 따로 WHO 활동 권고가 있는 생애 단계를 앱에 알려 주면 유산소 곡선이 그 권고를 따릅니다. 이것은 감점을 막을 뿐이고, 기본 곡선보다 낮게 점수를 매기지 않습니다.
축이 점수 하나가 되는 순서
- 가중 평균. 일곱 축 점수를 위 가중치로 합칩니다. 수면(시간+효율) 40%, 활동 30%, 안정시 심박수 15%, HRV 10%, 호흡수 5%입니다.
- 빠진 데이터는 0점이 아니라 건너뜁니다. 데이터가 없는 축은 가중치를 빼고 나머지를 다시 맞춥니다. 워치를 안 찬 밤은 나쁜 밤이 아니라 모르는 밤으로 다룹니다.
- 생활 보정. 음주, 저녁 카페인, 마음챙김, 짧은 낮잠을 기록했거나 혈압·혈당·호흡 방해가 내 평소보다 높으면 작은 보정이 붙습니다. 보정 합계는 −10점에서 +3점 사이로 제한되므로, 측정한 몸 상태가 늘 추정한 맥락보다 무겁습니다. 생활 기록이 없는 날은 정확히 0입니다.
- 0–100으로 자릅니다.
- 수면 상한. 마지막으로, 점수는 수면 시간 축 점수 + 22점을 넘을 수 없습니다. 5시간을 잤다면 수면 축이 30점이라, 다른 것이 아무리 좋아도 전체 점수는 52점에서 멈춥니다. 수면이 기록되지 않았으면 상한을 걸지 않습니다. 상한이 맨 마지막이라 다른 어떤 단계도 이 선을 넘기지 못합니다.
다섯 단계 컨디션
| 점수 | 단계 | 앱에서의 뜻 |
|---|---|---|
| 85–100 | 5 | 최상의 날 |
| 70–84 | 4 | 좋은 날 |
| 55–69 | 3 | 평소 같은 날 |
| 40–54 | 2 | 강도를 낮출 날 |
| 0–39 | 1 | 쉬어갈 날 |
단계는 이 표에서 시작합니다. 그다음 밤사이 신호를 더 읽는 별도의 층이 화면에 보이는 단계를 모두 합쳐 최대 한 단계까지 움직일 수 있습니다. 이 층은 0–100 점수를 바꾸지 않고, 단계를 움직이면 앱이 그 이유를 설명합니다.
점수를 보여 주지 않는 경우
- 기록이 7일 미만: 점수를 보여 주지 않습니다.
- 7–29일: 점수에 «학습 중» 표시가 붙습니다.
- 지난밤 핵심 데이터가 없음(수면, 안정시 심박수, HRV가 모두 없음): 점수가 없습니다. 주간 활동만으로는 부족합니다. 그것은 «오늘 몸이 어떤가»가 아니라 «요즘 어떻게 지냈나»의 답이기 때문입니다.
이 점수가 아닌 것
- 개인 평균과의 비교가 아닙니다. 예전 판(점수 엔진 1.0.0 이전)은 개인 기준선을 썼지만 지금 엔진은 쓰지 않습니다. 브리핑 화면의 «평소 대비» 수치는 참고용 표시입니다.
- 훈련량이 갑자기 늘면 경고 카드로 알려 주지만 점수에는 들어가지 않습니다.
- 하루 걸음 목표를 채우면 축하해 드리지만 점수나 단계에는 더해지지 않습니다.
- 앱은 의료기기가 아니고 점수는 진단이 아닙니다. 오늘 얼마나 운동할지 정할 때 참고하는 웰니스 정보입니다.
개인정보
점수 계산은 모두 iPhone 안에서 합니다. 서버에 저장되는 것은 다음과 같습니다.
- 계정 정보(이메일, 표시 언어): 계정을 만든 경우에만. 모든 분석 기능은 계정 없이 쓸 수 있습니다.
- 진단 정보: 진단 공유를 켠 경우에만. 정해진 목록에서 고른 이름과 값으로 된 앱 이벤트, 그리고 오류 종류·시스템 오류 문구·스택 추적이 담긴 오류 리포트입니다. 설정에서 지울 수 있습니다.
- 하루 한 번 «앱을 연 날» 신호: 무작위 설치 ID, 날짜, 플랫폼, 앱 버전. 계정과 연결되지 않고 건강 데이터는 없습니다. 이미 보낸 신호는 설정에서 지울 수 있고, 앱을 지우면 더 보내지 않습니다.
출처
- App Store의 오늘 운동: https://apps.apple.com/kr/app/id6803109089
- 앱 안: 설정 › 계산 방법. 같은 기준점과 그 한계를 그대로 보여 줍니다.
이 글은 일반적인 건강 정보이며 의학적 진단이나 치료를 대신하지 않습니다. 몸에 이상이 있으면 의료 전문가와 상의하세요.