Garmin 데이터 잠금 해제: 셀프 호스팅 Grafana 대시보드로 모든 메트릭 시각화

발행: (2026년 2월 11일 오후 11:14 GMT+9)
6 분 소요
원문: Dev.to

Source: Dev.to

빠른 요약 📝

이 저장소는 Garmin Connect에서 건강 데이터를 가져와 InfluxDB 데이터베이스에 저장하는 Docker화된 Python 스크립트를 제공합니다. 그런 다음 Grafana를 사용해 데이터를 시각화할 수 있어, 사용자가 장기적인 건강 추세를 추적하고 맞춤형 대시보드를 만들 수 있습니다.

주요 포인트 💡

  • ✅ Garmin Grafana는 Garmin Connect에서 모든 포괄적인 건강 지표를 가져와 로컬에 저장하는 간단한 Docker화 솔루션을 제공합니다.
  • ✅ 피트니스 데이터를 자체 호스팅하여 완전한 데이터 자율성과 프라이버시를 확보하고, 제3자 클라우드 서비스에 의존하지 않습니다.
  • ✅ InfluxDB와 Grafana의 강력한 기능을 활용해 HRV, 수면 점수, Body Battery와 같은 지표를 결합한 맞춤형 대시보드를 구축하고 더 깊은 인사이트를 얻습니다.
  • ✅ 이 프로젝트는 과거 데이터 백필링 및 자동 동기화를 지원하여 장기 건강 추적을 위한 강력한 “설정 후 잊어버리기” 솔루션을 제공합니다.

프로젝트 통계 📊

  • Stars: 2,827
  • Forks: 174
  • Open Issues: 20

기술 스택 💻

  • ✅ Python
  • Docker
  • InfluxDB (time‑series storage)
  • Grafana (visualization)

개요

기본 피트니스 트래커 앱의 대시보드에 제한을 느끼시나요? Garmin 기기를 사용한다면 데이터가 매우 가치 있다는 것을 알지만, 시각화 옵션이 제한적이고 로컬에 데이터를 완전히 소유하지 못한다는 점이 아쉽습니다. Garmin Grafana는 오픈소스 솔루션을 제공하여 건강 지표를 해방하고 실행 가능한 완전 맞춤형 인사이트로 전환합니다.

이 프로젝트는 Docker 컨테이너에 포장된 자체 호스팅 데이터 파이프라인입니다. 주요 역할은 Garmin Connect 계정과 개인 데이터베이스 사이의 안전하고 자동화된 다리 역할을 하는 것입니다. Garmin 서버에 자동으로 연결해 세밀한 심박수 데이터, 상세한 수면 패턴(SpO₂, 호흡률, HRV 포함), 스트레스 수준, Body Battery 점수 등 모든 포괄적인 건강 지표를 가져와 로컬 머신이나 서버에서 실행 중인 InfluxDB 인스턴스로 직접 전달합니다.

아키텍처

  • Docker 컨테이너 – 추출 및 로딩(ETL)을 처리합니다.
  • InfluxDB – 시계열 데이터를 저장합니다.
  • Grafana – 시각화 레이어를 제공합니다.

이 모듈식 구성은 헬퍼 스크립트나 Helm/Kubernetes 차트를 사용해 쉽게 배포하고 유지관리할 수 있습니다. 설정이 완료되면 시스템이 Garmin Connect 업로드 직후 새로운 데이터를 자동으로 동기화하여 로컬 저장소를 최신 상태로 유지합니다.

맞춤형 대시보드

Grafana를 로컬 InfluxDB 인스턴스에 연결하면 공식 앱의 제한을 없앨 수 있습니다. 완전히 맞춤형 대시보드를 만들고, Garmin이 결합하지 않은 지표들을 조합하며, 데이터 평균화 없이 수개월·수년간 추세를 추적할 수 있습니다. 예시:

  • 6개월 동안 수면 점수와 러닝 페이스를 상관관계 분석.
  • 스트레스 히트맵과 함께 Body Battery 회복을 분석.

프라이버시 및 내보내기

스택을 직접 호스팅함으로써 민감한 건강 데이터를 제3자와 공유할 위험을 없앨 수 있습니다. 데이터는 CSV 파일로 내보낼 수 있어 고급 분석, Python 스크립트와의 통합, 로컬 AI 모델 등에 활용할 수 있으며, 진정한 데이터 자율성과 피트니스 여정에 대한 깊은 인사이트를 제공합니다.

자세히 보기 🔗

View the Project on GitHub

0 조회
Back to Blog

관련 글

더 보기 »

bilingual_pdf, @rudifa가 만든 앱

설명: 다른 인간 언어를 배우고 있다면, 자신이 아는 언어의 텍스트와 그 번역이 포함된 bilingual documents를 만들고 싶을 수도 있습니다...