안녕하세요
https://ai-cycling-workout-planner.vercel.app/
AICocah 줄여서
달마카세의 소소한 업데이트를 오늘 조금 진행했습니다. 유저입장에서는 이전 날짜 플랜을 다시 불러오면 제대로 그려지지 않던것을 수정했어요. 나머지는 인프라작업과 관리자 페이지라서ㅎㅎ
자신의 wellness 데이터가 제대로 나오지 않는다는 문의가 많아서 이거를 조금 정리해두려고 합니다.
복잡한 데이터 흐름을 4가지 사용자 케이스로 나누어, 자신의 장비 환경에 맞춰 따라 할 수 있도록 정리했습니다.
🚴♂️데이터 연동 가이드 (4가지 유형별 설정법)
안녕하세요! AI Workout Coach 서비스를 100% 활용하기 위해 가장 중요한 것이 바로 "데이터 흐름"입니다.내 몸 상태(수면, 스트레스)와 훈련 기록(파워, 심박)이 꼬이지 않고, 중복 없이 AI에게 전달되어야 정확한 코칭을 받을 수 있습니다.
여러분이 사용 중인 장비와 스마트폰 환경에 최적의 설정 방법을 4가지 케이스로 정리했습니다.
아래 다이어그램에서 Push 와 Pull 이 있는데 연결 설정의 주체라고 생각하시면 됩니다. 밀어넣냐 땡겨오냐의 차이이기도 합니다.
- 와후 -> Push -> Strava 라서 연결 설정은 와후 앱에서 해야합니다.
- 와후 -> Pull -> Intervals 라서 연결 설정을 Intervals 의 Setting 에가서 해야합니다. (와후 엘리먼트에가면 Intervals 연결 설정이 없습니다.)
✅ 공통 필수 준비물
모든 케이스에 공통적으로 필요한 핵심 허브(Hub)입니다.
-
Intervals.icu 가입: 모든 데이터가 모이는 베이스캠프입니다.
-
Strava 계정: SNS용 + 기록 공유용입니다. (분석용 데이터와는 분리합니다)
1️⃣ Case 1. "가민 포러너& 와후 & 아이폰" 사용자
-
장비: 가민 워치(수면/HRV) + 와후 볼트(라이딩) + 아이폰(Inbody 연동)
-
특징: 라이딩 기록은 와후에서, 건강 데이터는 가민워치에서 각각 받아옵니다. 몸무게와 체성분은 인바디로 부터 받는데, 인바디에서 Intervals 로 바로 가지 못해서 Health Fit 이라는 유료어플을 통해서 보냅니다. (약 9000원인데 한번 사두면 영구라이센스입니다)

⚙️ 설정 방법:
-
Intervals.icu 설정:
-
Settings > Partners > Strava: Download activities [OFF] (중복 방지 핵심!) -
Settings > Partners > Garmin: Download wellness data [ON], Activities [OFF] -
Settings > Partners > Wahoo: Connect [ON] (라이딩 데이터 직접 수신)
-
-
HealthFit 앱 (iOS):
-
Intervals.icu 메뉴에서 Health Metrics [ON] (체중 전송용), Activities [OFF]
-
-
와후 앱:
-
Strava 업로드 켜기 (소셜용)
-
2️⃣ Case 2. "Case 1 + 즈위프트(Zwift)" 사용자
-
장비: 가민 워치 + 와후 볼트 + 아이폰 + 즈위프트(가상 라이딩)
-
특징: 실내 훈련(Zwift) 데이터까지 AI가 분석할 수 있도록 직통 경로를 뚫어줍니다.

⚙️ 추가 설정 방법 (Case 1 설정에 더해서):
-
Intervals.icu 설정:
-
Settings > Partners > Zwift: Download activities [ON] -
이제 Dropbox를 쓰지 않아도 즈위프트 원본 데이터가 바로 들어옵니다!
-
-
즈위프트(Zwift) 앱:
-
Connections메뉴에서 Garmin Connect 연결 (가민 워치에 훈련 부하 업데이트용) -
Strava 연결 (친구 자랑용)
-
3️⃣ Case 3. "All 가민 + 아이폰 + 즈위프트"
-
장비: 가민 워치 + 가민 엣지 + 아이폰 + 즈위프트
-
특징: 속도계와 시계가 모두 '가민'이라 설정이 가장 심플하고 강력합니다.

⚙️ 설정 방법:
-
Intervals.icu 설정:
-
Settings > Partners > Garmin: Download activities [ON] & Wellness data [ON] (둘 다 켜세요!) -
Settings > Partners > Strava: Download activities [OFF] -
Settings > Partners > Zwift: Download activities [ON]
-
-
데이터 흐름:
-
가민 엣지의 라이딩 기록과 워치의 수면 데이터가 Garmin Connect를 통해 한 번에 들어옵니다.
-
즈위프트 기록은 Zwift 직접 연동을 통해 들어옵니다.
-
4️⃣ Case 4. "가민 생태계 + 안드로이드"
-
장비: 가민 워치 + 가민 엣지 + 안드로이드(갤럭시 등) + 즈위프트
-
특징: 아이폰의 HealthFit 대신 구글 핏(Google Fit)을 사용하여 체중및 체성분 데이터를 연결합니다.

⚙️ 설정 방법:
-
Intervals.icu 설정:
-
Settings > Partners > Garmin: Download activities [ON] & Wellness data [ON] -
Settings > Partners > Google Fit: Download wellness data [ON] (체중 및 체성분 데이터 수신용) -
Settings > Partners > Zwift: Download activities [ON]
-
-
스마트폰 설정 (체중 연동):
-
Inbody 앱: 설정에서 Google Fit 연동 켜기
-
이제 인바디 체중이 구글 핏을 타고 Intervals.icu로 넘어갑니다.
-
이 정도 케이스면 나머지 애플워치나 갤럭시 워치등도 어떻게 연동이 모두 가능할것같습니다. 모든 케이스를 그리는건 저도 한계가....애플워치라면 갤럭시이지는 않을거기 때문에 Apple Health -> Healthfit -> Intervals 로 가면 됩니다,.
💡 요약: "왜 이렇게 설정하나요?"
핵심은 AI에게 가장 깨끗한 원본 데이터(Raw Data)를 주는 것입니다.
-
Strava는 '눈팅'용: 스트라바를 거치면 데이터가 가공되거나 타 서비스 전송이 막힙니다.
-
Intervals.icu는 '베이스캠프': 모든 디바이스(가민, 와후, 즈위프트)가 이곳으로 직접 데이터를 쏘게(Direct Sync) 해야 재전송이 가능한 정확한 데이터 확보가 가능합니다.
🚨 [필독] 왜 "직접 연결"을 해야 하나요? (플랫폼 정책 설명)

저도 처음에 그랬고 아마 많은 분들이 "그냥 스트라바에 다 모아서 Intervals.icu로 보내면 편하지 않나요?" 라고 생각하시지만, 플랫폼들의 데이터 정책 때문에 그렇게 하면 제3자 서비스가 데이터를 읽지 못합니다.
우리가 '직접 연결(Direct Sync)' 방식을 써야만 하는 기술적 이유를 간단히 정리해 드립니다.
1. 스트라바(Strava)의 "제3자 데이터 재전송 제한"
스트라바는 API 정책상 "자신들이 직접 생성하지 않은 데이터"가 다시 외부로 나가는 것을 제한합니다.
-
상황: 즈위프트(제3자) 데이터를 스트라바에 올린 후, 이를 다시 다른 서비스나 Intervals.icu로 넘기려 할 때.
-
결과: 스트라바는 "이건 내가 만든 데이터가 아니니 API로 줄 수 없다"*며 전송을 차단하거나, 분석에 필요한 세부 데이터(초 단위 파워 등)를 뭉개버립니다.
-
해결: 즈위프트 데이터를 스트라바를 거치지 않고, Intervals.icu로 직통 전송해야 온전한 원본 파일(.fit)을 확보할 수 있습니다.
2. 가민(Garmin)의 "타사 하드웨어 배제 (Passthrough 차단)"
가민 커넥트는 "가민 디바이스로 기록한 활동"만 외부 파트너(Intervals.icu 등)에게 전송합니다.
-
상황: 즈위프트나 와후(Wahoo) 데이터를 가민 커넥트에 밀어 넣은 뒤(Upload), 이를 다시 Intervals.icu로 보내려 할 때.
-
결과: 가민 커넥트에는 모두 취합되어 기록이 남지만, 가민 API는 "이건 가민 기기가 만든 파일이 아닙니다"라고 판단하여 Intervals.icu로 데이터를 쏴주지 않습니다. (데이터가 가민에서 멈춤)
-
해결: 와후나 즈위프트는 가민을 통하지 않고 각각 별도로 연동해야 합니다.
-----
참고로 라이덕이나 스트랭크는 스트라바를 통해서 직접 데이터를 받아서 분석하고 업데이트하는데 그건 직접 데이터를 가지고 모델링한 데이터를 생성하기 떄문인것 같아요. "Strava -> 라이덕" 이렇게 단일 패스인데. 저는 "Strava -> Intervals -> AI코치" 이렇게 한쿠션먹이고 Intervals에 기생하기 때문에 ㅠㅠ.... 나중에 저도 Strava로 부터 아예 직접 받는것을 검토해보려 합니다.