HealthKit 작동 원리
Apple Health가 사용자의 건강 데이터를 어떻게 저장하고 구성하는지에 대한 기술적 기초 가이드입니다.
HealthKit이란 무엇인가요?
HealthKit은 Apple의 건강 및 피트니스 데이터를 위한 프레임워크입니다. 다음과 같은 중앙 저장소 역할을 수행합니다:
- 여러 소스(Apple Watch, iPhone, 제3자 앱)에서 온 건강 데이터를 저장합니다.
- 모든 건강 지표에 대해 일관된 데이터 형식을 제공합니다.
- 세밀한 수준에서 개인정보 보호 권한을 관리합니다.
- 승인된 앱들 간의 데이터 공유를 가능하게 합니다.
데이터 저장 방식
HealthKit은 데이터를 유형화된 샘플(Typed samples) 형식으로 저장하며, 일반적으로 다음과 같은 구성 요소를 포함합니다:
| 구성 요소 | 설명 | 예시 |
|---|---|---|
| 시작/종료 시간 | 측정이 발생한 시각 | 2025-01-15 08:30:00 |
| 수치 + 단위 | 측정값 자체 | 72 bpm |
| 소스 및 기기 | 데이터를 생성한 앱/기기 | Apple Watch Series 9 |
| 메타데이터 | 추가적인 맥락 정보 | 운동 종류, 기기 착용 위치 등 |
샘플 유형 (Sample Types)
수치형 샘플 (Quantity Samples)
단위가 있는 숫자 형태의 측정값입니다.
예시: - 걸음 수 (count) - 심박수 (bpm) - 혈당 (mg/dL) - 거리 (meters) - 소모 에너지 (kcal)
범주형 샘플 (Category Samples)
정의된 집합 내의 열거형 값입니다.
예시: - 수면 단계 (REM, 코어, 깊은 잠, 깨어 있음) - 생리량 (적음, 보통, 많음) - 마음 챙김 세션 (수행함/수행 안 함)
상관 관계 샘플 (Correlation Samples)
서로 연관되어 함께 저장되는 샘플 그룹입니다.
예시: - 혈압 (수축기 + 이완기) - 음식 (한 끼 식사에서 섭취한 여러 영양소)
운동 샘플 (Workout Samples)
다음을 포함하는 구조화된 활동 세션입니다: - 활동 유형 (달리기, 수영, 사이클링 등) - 시작 및 종료 시간 - 총 소모 에너지 - 거리 (해당하는 경우) - 경로 데이터 (기록된 경우)
진료 기록 (Clinical Records)
사용자의 지역 및 의료 기관에서 지원하는 경우: - 검사 결과 - 예방 접종 기록 - 복용 약물 - 임상 문서
데이터 소스
HealthKit은 다양한 소스로부터 데이터를 수신할 수 있습니다:
Apple 기기
- Apple Watch - 심박수, 활동량, 운동, 심전도, 수면, 혈중 산소
- iPhone - 걸음 수, 거리, 오른 층수 (동작 센서 활용)
제3자 기기
- 스마트 체중계 (체중, 체성분)
- 혈압계
- 혈당계
- 수면 추적 기기
수동 입력
- 사용자가 Apple 건강 앱에 직접 입력한 데이터
- 제3자 앱을 통해 입력된 데이터
의료 기관 통합
- 지원되는 병원으로부터 가져온 진료 기록
- 검사 결과 (지원 가능한 경우)
소스 우선순위
여러 소스에서 동일한 지표를 기록하는 경우, HealthKit은 규칙에 따라 표시할 데이터를 결정합니다:
- 일반적으로 사용자가 직접 입력한 데이터가 가장 높은 우선순위를 갖습니다.
- 착용 중인 센서에서 직접 측정된 기기 데이터
- 제3자 앱 데이터
사용자는 Apple 건강 세부 설정에서 소스 우선순위를 직접 관리할 수 있습니다.
개인정보 보호 아키텍처
HealthKit의 개인정보 보호 모델은 설계의 핵심입니다:
항목별 권한 설정
앱은 모든 건강 데이터가 아닌, 특정 데이터 유형에 대해서만 접근 권한을 요청합니다. 사용자는 다음 중 선택할 수 있습니다: - 읽기만 허용 - 쓰기만 허용 - 읽기 및 쓰기 모두 허용 - 허용 안 함
사용자 제어권
- 언제든지 설정 > 건강 > 데이터 접근 및 기기에서 권한을 검토할 수 있습니다.
- 언제든지 접근 권한을 철회할 수 있습니다.
- 어떤 앱이 어떤 데이터 유형에 접근했는지 확인할 수 있습니다.
온디바이스 저장
- 건강 데이터는 사용자의 iPhone 내부에 로컬로 저장됩니다.
- 기기 암호로 암호화됩니다.
- iCloud 설정에서 '건강'이 활성화된 경우에만 iCloud에 백업됩니다.
주요 HealthKit 식별자
각 데이터 유형은 고유한 식별자를 가집니다. 예시:
| 건강 지표 | HealthKit 식별자 (ID) |
|---|---|
| 심박수 | HKQuantityTypeIdentifier.heartRate |
| 걸음 수 | HKQuantityTypeIdentifier.stepCount |
| 수면 분석 | HKCategoryTypeIdentifier.sleepAnalysis |
| VO₂ Max | HKQuantityTypeIdentifier.vo2Max |
| 혈압 | HKCorrelationTypeIdentifier.bloodPressure |
