개요
Grio는 Apple 건강 앱의 데이터를 읽어오기만 하며(단방향 동기화), 어떠한 데이터도 쓰지 않습니다. Apple 건강(HealthKit)의 원본 기록을 생성, 수정, 또는 삭제하지 않습니다. 사용자가 직접 입력하거나 채팅, 코치를 통해 남긴 기록은 모두 Grio 자체 기록으로 저장되며 출처가 명확히 표시됩니다.
이는 의도적인 설계입니다. Grio는 건강 데이터를 중복 기록하지 않으며, 각 데이터의 출처를 언제나 투명하게 확인할 수 있도록 합니다.
계산 원리와 반영 데이터
실제로 동기화되는 것
기본 동기화 과정에서는 최근 일정 기간의 데이터만 읽어와 일별 수치(수면, 활동, 회복 지표, 체중, 운동 등)로 변환합니다. 이때 기기에 저장되거나 서버로 전송되는 것은 가공된 수치일 뿐, 원본 데이터 자체가 아닙니다.
원본 데이터는 화면에 표시하거나 통계를 낼 때만 잠시 사용합니다. 상세 화면에서는 필요한 구간만 잘라낸 상세 구간 데이터를 가져옵니다. 한 번 불러온 데이터는 동일한 구간을 조회하는 여러 화면에서 공통으로 사용됩니다. 카드를 누르면 상세 화면에 필요한 데이터를 미리 준비하며, 화면을 닫고 몇 분이 지나면 메모리에서 삭제됩니다. 이러한 상세 데이터는 기기나 서버에 저장되지 않으며, 로그아웃하거나 Apple 건강 연결을 해제하면 즉시 삭제됩니다.
심박수 추이는 최대 366일 치의 통계용 데이터를 사용합니다. 각 날짜의 심박수는 최소/최댓값으로만 요약되어 처리되며, 기록이 없는 날은 빈값으로 둡니다.
언제 갱신되나
| 동기화 계기 | 동작 방식 |
|---|---|
| Apple 건강 연결 | 제한된 구간의 데이터 강제 동기화 |
| 당겨서 새로고침 | 제한된 구간의 데이터 강제 동기화 |
| 앱 열기 | 이전 업데이트 이후 일정 시간이 지났을 경우 동기화 |
| 일반 백그라운드 갱신 | 기기 내에서 데이터 확인은 가능하나 서버 업로드는 불가 |
| 두 가지 전용 백그라운드 경로 | 백그라운드 환경에서 제한적 네트워크 전송 가능 |
백그라운드에서 데이터를 서버로 보내는 경로는 앞서 언급한 두 가지 전용 경로뿐이며, 둘 다 모든 데이터를 포괄적으로 전송하지는 않습니다. 하나는 생체 부하와 스트레스 분석을 위한 5분 단위의 데이터를 전송합니다. 다른 하나는 개인 식별을 최소화한 수면, 운동, 체중, 일별 회복 수치만 선별하여 보냅니다. 두 경로는 서로 독립적으로 작동하며, 각각 별도의 보안 및 전송 규칙을 따릅니다.
백그라운드 동기화는 앱이 실행되기를 기다리지 않고, 정해진 구간 내의 데이터를 새로 계산하여 반영합니다. 최초 동기화 시 최대 30일 치 데이터를 가져오며, 이후에는 기존 기록을 기준으로 90분 전부터 5분 단위로 데이터를 확인합니다. 이를 통해 지연되거나 수정된 기록도 누락 없이 정확하게 반영할 수 있습니다.
중복 정리와 데이터 출처
- 연동된 운동 기록의 출처 보존: Apple 건강(HealthKit)의 고유 식별 정보와 출처를 그대로 유지합니다. Grio 앱에서 해당 기록을 지워도 Apple 건강 앱의 원본 데이터는 삭제되지 않으며, 원본 데이터에 변화가 생기면 Grio 앱도 그에 맞춰 기록을 복원하거나 삭제합니다.
- Apple 연동 기록과 Grio 직접 입력 기록이 겹칠 경우: 중복 처리 규칙에 따라 하나의 운동으로 통합되어 계산됩니다. 이때 통합 전 각각의 원본 기록은 고유 출처를 그대로 유지합니다.
- 연동된 체중 데이터: 체중 카드에 표시됩니다. 단, 같은 날 Grio 앱에 직접 입력한 체중 기록이 있다면 Grio 기록이 우선적으로 반영됩니다.
- 운동 분석 범위: Grio에서 직접 기록한 세션만 분석합니다. Apple 건강에서 가져온 운동은 Grio 기록 분석 통계에 들어가지 않습니다.
예외와 결측값 처리
- 데이터를 가져오는 데 실패하더라도 기존에 기록된 과거 값은 삭제되지 않고 유지됩니다. 단, 없는 데이터를 임의로 생성하지는 않습니다.
- 기록되지 않은 값은 0이 아닌 ‘데이터 없음’ 상태로 둡니다.
- 연동이 정상적으로 완료되려면 최근 기록된 지표가 최소 하나 이상 있어야 합니다. 과거 데이터만 있는 경우에는 동기화가 제대로 작동하는지 확인할 수 없습니다.
- 사용 중인 기기가 Apple 건강 앱과 동기화하지 않는 데이터는 Grio에서도 연동할 수 없습니다. Grio는 타사 제조사 계정(예: 가민 커넥트)과 직접 연결을 지원하지 않습니다.
수치 해석법
- 기록 누락 시 처리: 측정되지 않은 날은 0으로 취급하지 않고 Grio 전체에서 빈값으로 처리합니다. 특정 점수가 0점이 아닌 ‘측정 불가’로 표시되는 이유가 바로 이 때문입니다.
- 뒤늦게 들어온 데이터: 늦게 동기화된 데이터는 원래 날짜에 반영되므로, 오늘 수치가 갑자기 뛰지 않습니다.
- 출처가 충돌할 때: 여러 출처의 데이터가 어긋날 때는 먼저 기록된 쪽을 무조건 택하지 않고, 정해진 우선순위 규칙에 따라 정리합니다.
코치의 조언 및 행동 가이드
- 권한은 허용해 두세요: 권한을 거부하면 그 기능이 작동하지 않고 ‘데이터 없음’으로 처리됩니다.
- 당겨서 새로고침: 데이터가 늦게 뜬다면 화면을 아래로 당겨 보세요. 최신 데이터를 즉시 불러오는 가장 빠른 방법입니다.
- 수면 중 워치 착용: 심박변이도(HRV), 안정 시 심박수, 수면 데이터는 수면 중에 측정되므로 회복 점수를 정확히 확인하려면 취침 시 워치를 착용하세요.
- 다른 제조사 기기 확인: Apple Watch가 아닌 기기를 쓴다면 그 기기가 Apple 건강 앱으로 보내는 항목을 확인하세요. 제조사 전용 앱에서 보이는 것보다 실제로 넘어오는 데이터가 적을 수 있습니다.
자주 묻는 질문
- Apple 건강에는 분명 있는데 Grio에 오늘 데이터가 없어요.
- 데이터는 기기를 처음 연결하거나 화면을 당겨서 새로고침할 때, 또는 이전 갱신 후 시간이 지난 뒤 앱을 열 때 업데이트됩니다. 백그라운드에서 작동하는 두 가지 네이티브 동기화 경로가 있지만 모든 데이터를 포괄적으로 전송하지는 않습니다. 화면에 최신 데이터가 없다면 당겨서 새로고침해 보세요. 다음 동기화를 기다리지 않고 즉시 데이터를 가져올 수 있습니다.
- Grio가 Apple 건강에 뭔가 쓰나요?
- 아니요, Grio는 데이터를 읽어오기만 하는(단방향 동기화) 앱입니다. Apple 건강(HealthKit) 원본 기록을 생성, 수정, 삭제하지 않습니다. Grio 앱에서 연동된 운동 기록을 지우더라도 Grio 화면에서만 사라질 뿐 Apple 건강의 원본 데이터는 그대로 유지됩니다.
- 가민을 쓰는데 되나요?
- 가민 기기에서 Apple 건강 앱으로 보낸 데이터만 연동됩니다. 동기화 범위는 기기나 지표마다 다르며, 일부 데이터만 제한적으로 연동될 수 있습니다. Grio는 타사 계정(예: 가민 커넥트)과 직접 연결을 지원하지 않으므로 기기가 Apple 건강에 전송하지 않은 데이터는 가져올 수 없습니다.