파일 목록으로

활동-혈당 추론 모델 AS-IS (2026-02-09)

문서 목적

이 문서는 현재 iOS Inference 구현에서 활동/운동 데이터가 혈당 추론에 어떻게 반영되는지 정리하고, 최신 근거 대비 어디가 부족한지 명확히 드러내는 AS-IS 문서다. 범위는 SleepTest 테스트 하네스와 ios/Packages/Inference의 실제 코드 기준이다.


현재 구현 요약

현재 파이프라인은 HealthKit에서 영양/심박/HRV/수면/활동/보행 데이터를 수집해 InferenceSnapshot을 만든 뒤, 규칙 기반(rule-based) 점수 모델로 GlucoseResponseInsulinSensitivity를 계산한다.

핵심 구현 경로:

  • 스냅샷 생성: ios/Apps/SleepTest/SleepTestPackage/Sources/SleepTestFeature/Stores/SleepTestStore.swift
  • 피처 엔지니어링: ios/Packages/Inference/Sources/Inference/ML/FeatureEngineering.swift
  • 혈당 반응 추론: ios/Packages/Inference/Sources/Inference/Services/GlucoseInferenceService.swift
  • 인슐린 민감도 추론: ios/Packages/Inference/Sources/Inference/Services/InsulinInferenceService.swift

활동 데이터 관점의 실제 반영 상태

항목현재 반영 여부현재 방식
식후 걷기/운동 타이밍반영식사 후 0-30/30-60/60-120분 걷기 시간 피처 반영
식후 활동 강도반영식사 후 0-120분 active kcal 피처 반영
식후 좌식 시간/브레이크반영식후 활동 공백(gap), sedentary break count, max sedentary bout 피처 반영
식전/사전 운동 (GLUT4 priming)반영식사 2~24시간 전 운동을 감지, GLUT4 decay 함수(반감기 4h)로 시간 감쇠 적용, buffer 가중치 0.08
장기 활동량부분 반영InsulinSensitivity에서 7일 평균 active energy 반영
운동 세션 자체반영WorkoutSession을 meal-linked window와 prior exercise window 양쪽에서 feature 계산
연령/성별/BMI부분 반영baseline calibration 보정항으로만 사용(작은 가중치), 진단 목적 아님

요약하면, GlucoseResponse에 식후 활동 정보가 직접 반영되고 InsulinSensitivity에는 인구통계 baseline 보정이 추가되었다.


현재 모델 구조 (rule-based)

GlucoseResponse

점수는 식사 구성 + 식후 자율신경 반응 + 식후 활동 + 인구통계 baseline 보정 중심이다.

  • 스트레스 축: 탄수화물, 식후 심박 상승, 식후 HRV 저하, 수면 패널티, 단식 완충
  • 활동 축: 식후 걷기/활동 완충(activity buffer), 활동 공백/좌식 패널티(activity penalty), 탄수화물-활동 상호작용
  • 식전 운동 축: GLUT4 priming buffer (식사 2-24h 전 운동, 반감기 4h 지수 감쇠)
  • demographic 축: age/sex/BMI 보정항(소가중치)
  • 완충 축: 섬유, 단백질
  • 출력: 0-100 상대점수

현재 구현은 rule-based 확장 단계(Phase 1)이며, 개인화 캘리브레이터/학습형 모델은 아직 적용되지 않았다.

InsulinSensitivity

점수는 장기 지표 중심이다.

  • 14일 HRV 추세, 7일 안정시 심박, 7일 수면, 7일 active energy, 14일 단식, glucose stress, age/sex/BMI baseline 보정
  • 출력: 0-100 상대점수

meal-level activity timing은 직접 사용하지 않고, 장기 지표 중심 구조를 유지한다.


근거 대비 갭

현재 구현은 식후 활동 효과와 식전 운동(GLUT4 priming) 효과를 모두 반영하지만, 여전히 아래 갭이 남아 있다.

  1. CGM/실측 혈당 기반 개인 캘리브레이션은 아직 미적용이다.
  2. 인구통계(age/sex/BMI)는 공정성 위험을 줄이기 위해 소가중치 baseline 보정으로만 쓰며, subgroup 평가 체계가 더 필요하다.
  3. 식사 시간대(아침/점심/저녁)별 반응 차이는 미반영이다.

대표 근거:

  1. 식후 15분 걷기 3회가 45분 1회보다 식후 혈당 억제에 유리 (Diabetes Care, 2013) https://diabetesjournals.org/care/article/36/10/3262/38015/Postprandial-Walking-is-Better-for-Lowering-the

  2. T2D에서 매 식후 10분 걷기가 하루 30분 임의 걷기보다 식후 혈당 조절에 유리 (Diabetologia, 2016) https://pubmed.ncbi.nlm.nih.gov/27747394/

  3. 식사 직후 걷기/활동이 식사 전 활동보다 혈당 관리에 유리하다는 체계적 고찰/메타분석 (Sports Medicine, 2023) https://pubmed.ncbi.nlm.nih.gov/36453835/

  4. 장시간 앉아있음을 standing/walking 브레이크로 끊는 전략이 식후 혈당 개선에 유의한 효과를 보인다는 무작위 급성 연구 (2022) https://pubmed.ncbi.nlm.nih.gov/35147898/

  5. 아침 공복 운동이 인슐린 민감도 15-25% 개선, 12-24시간 지속 (Diabetologia, 2023)

  6. 공복 상태 트레이닝이 GLUT4 발현을 증가시키고 당내성 보존 (J Physiol, 2010) https://pubmed.ncbi.nlm.nih.gov/20837645/

  7. GLUT4 전위 반감기 ~4시간, 24시간까지 잔류 효과 (Physiol Rev, 2017) https://pubmed.ncbi.nlm.nih.gov/28615461/


AS-IS 리스크

  1. 식후 활동 미측정(권한 미허용/기기 미착용) 상황과 실제 저활동 상태를 완전히 분리하지 못할 수 있다.
  2. 인구통계 보정항은 소가중치로 제한했지만, 하위집단별 성능 검증 없이는 편향 가능성을 배제할 수 없다.
  3. 현재는 규칙 기반 상수 튜닝 중심이어서 사용자별 장기 학습 적응력은 제한적이다.

현재 상태의 장점

  1. 규칙 기반이라 디버그 가능성이 높고, 결측 데이터에서도 동작한다.
  2. 신뢰도(confidence)와 근거 신호(evidence)를 명시하여 안전한 웰니스 프레이밍을 유지한다.
  3. predictor 주입 구조가 있어, 향후 ML 모델로 교체/병행하기 쉽다.

참고 문헌


업데이트 이력

  • 2026-02-09: 초안 작성
  • 2026-02-09: 식후 활동 + 연령/성별/BMI baseline 보정 반영 상태 업데이트
  • 2026-02-10: 식전 운동(GLUT4 priming) 반영 상태 추가, 근거 대비 갭 업데이트

0 / 70