# GarminDB - 가민 커넥터/워치에서 데이터를 가져와 파싱하는 DB

> Clean Markdown view of GeekNews topic #19048. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=19048](https://news.hada.io/topic?id=19048)
- GeekNews Markdown: [https://news.hada.io/topic/19048.md](https://news.hada.io/topic/19048.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-02-04T09:56:41+09:00
- Updated: 2025-02-04T09:56:41+09:00
- Original source: [github.com/tcgoetz](https://github.com/tcgoetz/GarminDB)
- Points: 2
- Comments: 1

## Topic Body

- 건강 데이터를 SQLite 데이터베이스로 파싱하고 조작하는 Python 스크립트  
- Garmin Connect 또는 Garmin 시계, FitBit CSV, MS Health CSV 파일에서 데이터를 다운로드하여 구문 분석하고, Jupyter 노트북을 사용해 Sqlite 데이터베이스에 있는 데이터를 분석  
  
### 기능  
  
- Garmin Connect의 "Daily Summary" 페이지에서 하루 종일 심박수, 활동, 등반/하강, 스트레스, 강도 분 등의 데이터를 자동으로 다운로드하고 가져옴  
- 수면, 체중, 안정 시 심박수 데이터를 Garmin Connect에서 추출하여 JSON 파일로 저장하고 데이터베이스에 가져옴  
- Garmin Connect에서 활동 파일을 다운로드하고 가져옴. 모든 활동에 대한 요약 테이블과 일부 활동 유형에 대한 세부 데이터 포함  
- 일일, 주간, 월간, 연간 요약을 포함하는 테이블로 데이터를 요약함  
- 명령줄 또는 Jupyter 노트북을 사용하여 데이터를 그래프로 표시함  
- 다운로드한 JSON 및 FIT 파일을 보관하여 Garmin Connect에 다시 연결하거나 데이터를 다시 다운로드하지 않고 데이터베이스를 재생성할 수 있음  
- 활동을 TCX 파일로 내보낼 수 있음  
  
### 사용 방법  
  
#### 릴리스  
  
- GarminDb는 PyPI에 호스팅됨. Python 3.x가 필요함. 터미널에서 `pip install garmindb`를 실행하여 최신 릴리스를 설치함  
- `GarminConnectConfig.json.example`을 `~/.GarminDb/GarminConnectConfig.json`으로 복사하고, Garmin Connect 사용자 이름과 비밀번호를 추가하고 데이터의 시작 날짜를 조정함  
- 모든 데이터를 다운로드하고 데이터베이스를 생성하려면 `garmindb_cli.py --all --download --import --analyze`를 실행함  
- 최신 데이터를 다운로드하고 가져와 데이터베이스를 점진적으로 업데이트하려면 `garmindb_cli.py --all --download --import --analyze --latest`를 실행함  
- 데이터베이스 파일을 백업하려면 가끔 `garmindb_cli.py --backup`을 실행함  
  
#### 소스에서  
  
- SSH 클론 방법을 사용하여 GarminDB 저장소를 Git 클론함. 서브모듈은 SSH를 사용해야 함  
- 클론한 트리에서 `make setup`을 실행하여 데이터를 처리할 준비를 함  
- `GarminConnectConfig.json.example`을 `~/.GarminDb/GarminConnectConfig.json`으로 복사하고, 사용자 이름과 비밀번호를 추가하고 시작 날짜를 조정함  
- `make create_dbs`를 한 번 실행하여 데이터를 가져오고 처리함  
- `make` 명령을 주기적으로 실행하여 모든 로컬 데이터를 최신 상태로 유지함  
  
### Jupyter 노트북  
  
- 데이터베이스에서 데이터를 분석하기 위한 Jupyter 노트북은 소스 트리의 'Jupyter' 디렉토리에 있음  
  
### 플러그인  
  
- 플러그인은 사용자가 데이터베이스에 처리하고 저장할 데이터 유형을 확장할 수 있도록 함. GarminDb는 이미 타사 Connect IQ 앱과 데이터 필드를 처리하기 위한 여러 플러그인을 보유하고 있음

## Comments



### Comment 34123

- Author: neo
- Created: 2025-02-04T09:56:41+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=42912515) 
- Garth를 사용하여 인증하는 앱에 주의가 필요함. Garmin과의 통합이 어려움
  - Garmin의 API와 SDK는 사용하기 어려움
  - Garmin Connect에서 데이터를 FIT 파일로 내보내는 방법이 있음
  - Python과 Go의 오픈 소스 라이브러리로 FIT 파일을 읽고 해석할 수 있음

- 장치에서 현재 데이터를 가져오는 방법이 있음
  - 장치를 컴퓨터에 연결하고 파일 시스템으로 마운트하여 .FIT 파일을 가져올 수 있음

- Intervals를 사용하여 Garmin과 Strava 관련 데이터를 분석하는 것이 유용함
  - 특히 조정 관련 메트릭을 생성할 수 있어 좋음

- Garmin은 스마트폰 앱에 의존하는 대신 데이터를 더 잘 관리할 수 있는 하드웨어를 제공해야 함
  - API 접근이 어려운 것뿐만 아니라 커뮤니티의 의견을 듣지 않음
  - 장비 없이 운동을 필터링할 수 있는 기능이 필요함

- Garmin의 SDK는 오래되었고 데이터 접근이 제한적임
  - FIT 파일 형식은 제한된 앱에서만 지원됨

- 데이터 접근이 더 나은 피트니스 시계가 필요함
  - 실시간 건강 정보에 접근할 수 있는 시계가 필요함

- 새로운 Garmin Vivoactive5를 구입했으며, Garmin의 API가 최적은 아니지만 만족함
  - Apple Watch 시리즈 10을 고려했으나 배터리 수명과 가격 때문에 포기함
  - 해킹 가능한 오픈 시계가 필요하며, Pebble의 부활이 이 공백을 채울 수 있을 것임
