바이브코딩 다이어리

19. FIT 데이터 분석

미노스빌더 2026. 4. 21. 21:41

가민 계정을 연동할 수 있게 되니 가민 유저 타겟으로 더 집중해야겠다고 결정했다. 

그래서 러닝 서비스에서 범용적으로 사용하는 GPX data가 아니라,

가민이 독자적으로 만든 FIT data를 사용하여 분석하기로 했다.

 

사실 많이 고민했다. 

범용적 서비스가 더 많은 유저층을 모객할 수 있을리라는 기대감

이미 GPX data로 구축해놓은 POC의 수정을 최소화 할 수있을 거라는 마음…

많이 흔들렸으나….

 

본질에 대한 집중

뾰족한 서비스를 만들어야 한다는 방향성

내가 만들고 싶은 서비스가 아니라 고객(이미 확보한 DATA)에 집중한다는 원칙

…에 따라 FIT파일을 사용하기로 결정!!

 

분석의 방향성은 

  1. 먼저 가민이 제공하는 모든 데이터를 동일하게 제공하고
  2. +거기에 더해 inmyrace가 제공할 수 있는 분석을 추가한다.예를 들자면 각종 안정성 분석(페이스, 케이던스, 수진수평진폭 등의 레이스 진행 동안 얼마나 동일한 수치를 보이는가), 100미터 단위 세분화 분석 등등..

 

여튼 3차례에 걸쳐서 스펙을 보강했다. 

제작된 스펙 문서를 바탕으로 이 과정을 gemini에게 정리시켰고,

그 내용은 아래에 있다.    




# FIT 데이터 분석 -- 작업 히스토리

 

> 작성일: 2026-04-14

> 대상: 비개발자 보고용

> 카테고리: FIT 분석 (3개 SPEC)

 

---

 

## 카테고리 개요

 

가민 시계에서 수집한 FIT 파일(Flexible and Interoperable Data Transfer)을 파싱하고 분석하는 시스템을 구축하는 작업입니다.

 

FIT 파일은 가민 시계가 기록한 러닝 데이터의 원본입니다. 심박수, 페이스, 케이던스(분당 발걸음 수), 고도 등 모든 러닝 데이터가 이 파일 형식으로 저장됩니다. 이 파일을 해독하고 의미 있는 지표로 변환하는 것이 이 카테고리의 목표입니다.

 

---

 

## 포함된 SPEC

 

| SPEC ID | 제목 | 상태 | 작업 기간 |

|---------|------|------|----------|

| SPEC-FIT-ANALYSIS-001 | FIT 데이터 전수 파싱 및 분석 | 완료 | 2026-04-12 |

| SPEC-FIT-ANALYSIS-002 | FIT 파생 지표 및 고급 분석 | 완료 | 2026-04-13 |

| SPEC-FIT-ANALYSIS-003 | 러닝 안정성 종합 분석 | 계획 | 2026-04-14 ~ |

 

---

 

## 작업 흐름

 

### 1단계: FIT 파일 전수 파싱 (001)

 

**상태**: 완료

 

**무엇을 했는가**: FIT 파일에 있는 모든 데이터를 빠짐없이 읽어들이는 파서를 구축했습니다.

 

**비유**: FIT 파일이 하나의 "암호화된 일기장"이라면, 이 단계에서 암호를 풀어 일기장의 모든 내용을 읽을 수 있게 만들었습니다.

 

**주요 구현 내용**:

- FIT 파일 헤더, 레코드, 세션, 랩 데이터 파싱

- 러닝 세션 기본 지표 추출 (거리, 시간, 심박수, 페이스)

- 데이터 검증 및 오류 처리

- 비정상 데이터(센서 오류 등) 필터링

 

**결과**:

- 테스트 88개 통과

- 코드 커버리지 85% ~ 91%

 

### 2단계: 파생 지표 및 고급 분석 (002)

 

**상태**: 완료

 

**무엇을 했는가**: 1단계에서 읽은 원본 데이터를 바탕으로, 더 의미 있는 분석 지표를 계산했습니다.

 

**비유**: 일기장의 "오늘 5km 달림, 심박수 150"이라는 원본 데이터에서 "평균 페이스 6분/km, 심박수 구간별 분포, 훈련 강도" 같은 분석 결과를 도출하는 단계입니다.

 

**주요 구현 내용**:

- 심박수 구간 분석 (5개 구간: 매우 쉬움 ~ 최대)

- 페이스 분포 분석 (구간별 속도 변화)

- 케이던스 분석 (발걸음 수 패턴)

- 고도 변화에 따른 페이스 보정

- VO2max 추정 (심박수 + 페이스 기반)

- 훈련 부하(Training Load) 계산

- 효율성 지표 (심박수 대비 페이스)

 

**결과**:

- 테스트 110개 통과

- 코드 커버리지 83% ~ 88%

- 기존 88개 테스트에 22개 신규 테스트 추가

 

### 3단계: 러닝 안정성 분석 (003)

 

**상태**: 계획 중 (리서치 단계)

 

**무엇을 할 것인가**: 여러 러닝 세션을 종합적으로 분석하여 사용자의 러닝 패턴 일관성과 안정성을 평가합니다.

 

**예상 구현 내용**:

- 훈련 일관성 지표 (정기적 러닝 여부)

- 페이스 안정성 (런당 페이스 편차)

- 심박수 회복 패턴 분석

- 피로도 누적 모델

- 부상 위험도 평가

- 훈련 적응도 (시간 경과에 따른 성능 변화)

 

**의존성**: 001, 002 완료에 의존 (이미 완료됨)

 

---

 

## 핵심 성과

 

```

FIT 데이터 분석 파이프라인:

  FIT 파일 (원본 바이너리)

      --> 파싱 (001): 모든 필드 디코딩

          --> 기본 지표 (거리, 시간, 심박수, 페이스)

              --> 파생 지표 (002): 고급 분석

                  --> 심박수 구간, VO2max, 훈련 부하

                      --> 종합 분석 (003): 안정성 평가

                          --> 일관성, 회복, 부상 위험도

```

 

| 지표 | 001 | 002 | 003 |

|------|-----|-----|-----|

| 테스트 수 | 88 | 110 | (리서치 중) |

| 커버리지 | 85~91% | 83~88% | - |

| 상태 | 완료 | 완료 | 계획 |

 

**누적 테스트**: 198개 이상 (003 완료 시 271개 이상 예상)

 

---

 

## 현재 과제

 

1. 003 안정성 분석 SPEC 구체화

2. 부상 위험도 모델 검증

3. 기존 198개 테스트와의 통합 검증