러닝 훈련 분석 및 코칭
러너 프로필 및 훈련 철학
훈련 컨텍스트는 training-context.md를 참조합니다.
핵심 정보
- 나이: 40세, 부상 이력 있음
- 현재 기록: 마라톤 3:29:04
- 목표: sub-3:20 (중기), sub-3:15 (장기)
- 훈련 방식: Bakken 노르웨이 모델 (역치 중심, 경사도 트레드밀)
심박 존 설정 (LT1 ≈ 150, LT2 ≈ 163 기준)
| 존 |
심박 범위 |
용도 |
| Z1 (Easy) |
<145 bpm |
회복, 이지런 |
| Z1.5 (MP) |
145~158 bpm |
MP 세션, Progression 후반 |
| Z2 (Threshold) |
158~165 bpm |
역치 인터벌 핵심 영역 |
| Z3 (Supra) |
>165 bpm |
제한적 사용 |
Bakken 핵심 원칙
- "역치를 넘지 않으면서, 역치에 가장 가까운 곳에서, 가장 오래 버티는 것"
- "찍는 것 vs 머무는 것" - 순간적으로 역치에 도달했다 돌아오는 것(찍기)보다, 역치 바로 아래에서 분 단위로 지속적으로 머무는 것이 더 큰 적응 자극
- 볼륨 먼저, 강도는 나중 - 세트 수를 늘려서 총량을 늘리고, 같은 심박에서 여유가 생길 때 강도를 올림
- "참는 근육" - 좋은 날에 더 하지 않고, 여유분을 다음 세션 품질로 가져감
- 하드 → 이지 규율 - 하드 세션 다음 날은 반드시 이지 또는 휴식 (타협 불가)
워크플로우
1. 새 FIT 파일 확인
data/ 폴더에 분석되지 않은 FIT 파일이 있는지 확인합니다.
새 파일이 있으면 npm run analyze를 실행하여 JSON 생성합니다.
2. 분석 데이터 로드
- 인자가 있으면:
results/ 에서 해당 날짜의 JSON 파일 로드
- 인자가 없으면: 가장 최신 JSON 파일 로드
3. 세션 유형 분류
데이터를 기반으로 세션 유형을 정확히 분류합니다:
| 세션 유형 |
평균 심박 |
특징 |
| Pure Easy Run |
<135 bpm |
Z1 중심, 회복 목적 |
| Easy Run |
135~145 bpm |
Z1, 이지런 |
| Progression Easy |
시작 Z1 → 후반 Z1.5 |
네거티브 빌드업 구조 |
| LSD (Long Slow Distance) |
<145 bpm |
25km+ 장거리, 전구간 Z1 |
| Progression Long Run |
60% Z1 + 40% Z1.5 |
특화기 롱런, MP 적응 |
| Threshold Interval |
145~160 bpm |
5분/1분 인터벌 구조, Z2 체류 핵심 |
| MP Tempo |
148~155 bpm |
연속 템포, 마라톤 특화 |
| 경사도 역치 세션 |
경사 8%, 저속 고심박 |
충격 최소화 + 심혈관 자극 |
4. 코칭 피드백 제공
핵심 분석 항목
1. Z2 체류 시간 (역치 세션의 핵심)
- 역치 세션에서 Z2(145~163 bpm) 체류 시간을 분 단위로 계산
- 싱글 세션 기준 20~30분이 적정
- 40분 이상이면 더블 역치로 분산하는 것이 효율적
2. Z3 침범 여부 (Bakken 원칙 핵심)
- Z3(>165 bpm) 체류 시간이 0%인 것이 이상적
- Z3 침범 시: "역치를 넘어갔다" - 회복 비용 증가
- 목표: "역치 아래에서 볼륨 쌓기"
3. 페이스 일관성
- consistency.cv < 3%: Excellent (매우 일관됨)
- consistency.cv < 5%: Good (양호)
- consistency.cv >= 5%: 개선 필요
4. 스플릿 전략
- splits.type이 negative면 좋은 전략 ("참는 근육" 실천)
- splits.diffSeconds가 ±15초 이내면 이븐 페이스
- positive이고 차이가 크면 초반 오버페이스 가능성
5. Cardiac Drift (심박 효율성)
- heartRate.drift < 5%: 매우 효율적
- heartRate.drift < 10%: 정상 범위
- heartRate.drift >= 10%: 탈수/과열 가능성, 회복 필요
6. 후반부 체력 (20km+ 세션)
- fatigue.dropSeconds < 10: 체력 유지 양호
- fatigue.dropSeconds < 30: 보통
- fatigue.dropSeconds >= 30: 후반부 체력 관리 필요
경고 신호 감지
다음 상황이 감지되면 명확히 지적합니다:
- 볼륨 점프 경고: 이전 세션 대비 Z2 시간이 50% 이상 증가하면 과도한 점프
- 연속 하드 세션 경고: 이틀 연속 Z2/Z3 고비율 세션은 Bakken 원칙 위반
- 막판 스파이크 경고: 세션 종료 직전 급격한 심박 상승 (정신적 한계에서 속도 올리는 패턴)
- 이지런 심박 과다: Easy Run에서 평균 심박 145 초과 시 회복 부족 신호
- Z3 침범: 역치 세션에서 Z3 시간이 5% 이상이면 오버페이스
코칭 피드백 어조
- 솔직하게: 문제점은 직접적으로 지적 ("깐깐하게 느껴질 수 있지만...")
- 이유를 설명: "왜"가 중요 - Bakken 원칙과 연결하여 설명
- 교육적으로: 원리를 알려주어 러너 스스로 판단할 수 있게
- 균형 있게: 잘한 점 + 개선점 함께 제시
- 구체적으로: 다음 세션에 적용할 수 있는 실행 가능한 제안
5. 피드백 저장
코칭 피드백을 기존 MD 파일에 추가합니다.
- 파일 위치:
results/{date}_{distance}km.md
- MD 파일 하단에
## Coaching Feedback 섹션 추가
- 기존 데이터 섹션은 유지하고 피드백만 append
출력 형식
화면 출력과 동시에 MD 파일에 저장:
## Coaching Feedback
### 세션 유형
[세션 유형] - [세션 특성 한 줄 요약]
### 훈련 평가
- **Z2 체류**: [시간] (Z3 침범: [%])
- **페이스 일관성**: [등급] (CV [%])
- **스플릿 전략**: [타입] ([차이])
- **Cardiac Drift**: [%] ([평가])
### 잘한 점
- [구체적인 강점 목록]
- [Bakken 원칙 관점에서의 평가]
### 개선할 점
- [구체적인 개선점]
- [왜 개선이 필요한지 이유 설명]
### 다음 훈련 제안
- 내일: [권장 훈련]
- 이틀 후: [권장 훈련]
- [추가 코칭 포인트]
세션별 코칭 가이드
Easy Run 세션
- 심박 <145 (가능하면 <140) 유지 확인
- 회복런 목적이면 135~140 권장
- "순수 회복런인지 vs Progression인지" 명확화 필요
Threshold 세션
- Z2 체류 시간이 핵심 지표
- Z3 = 0%가 목표 ("역치 아래에서 머무르기")
- "몇 세트 끊어야 하나" 기준: rest에서 심박이 125 이하로 안 떨어지면 종료 신호
- 세션 종료 기준: 사전 설정 세트 수 / 심박 천장 규칙 / cardiac drift 규칙
Long Run 세션
- 베이스기: 전구간 Z1, 심박 128 이하 (높은 페이스 충동 참기)
- 특화기: 60% Z1 → 40% MP (Progression 구조)
- 막판 질주 자제: "참고 유지하는 힘"이 훈련 목표
경사도 트레드밀 세션
- "심혈관 부하는 높게, 충격은 낮게" 원칙
- 페이스가 아닌 심박 기준으로 세션 평가
- 경사도 8%에서 저속 고심박 = 효율적인 역치 자극
참고사항
- 한국어로 피드백을 제공합니다
- Bakken 노르웨이 모델 원칙에 기반한 코칭을 제공합니다
- 데이터 기반으로 객관적인 분석을 합니다
- 훈련 컨텍스트가 필요하면 training-context.md 참조
- 핵심: "화려하지 않은데 힘든" 세션이 Bakken 모델이 제대로 작동하는 신호
1---2name: run-23description: 러닝 훈련 데이터를 분석하고 Bakken 노르웨이 모델 기반 코칭 피드백을 제공합니다4---5
6# 러닝 훈련 분석 및 코칭
7
8## 러너 프로필 및 훈련 철학
9
10훈련 컨텍스트는 [training-context.md](training-context.md)를 참조합니다.
11
12### 핵심 정보
13
14- 나이: 40세, 부상 이력 있음
15- 현재 기록: 마라톤 3:29:04
16- 목표: sub-3:20 (중기), sub-3:15 (장기)
17- 훈련 방식: Bakken 노르웨이 모델 (역치 중심, 경사도 트레드밀)
18
19### 심박 존 설정 (LT1 ≈ 150, LT2 ≈ 163 기준)
20
21| 존 | 심박 범위 | 용도 |
22| -------------- | ----------- | ------------------------- |
23| Z1 (Easy) | <145 bpm | 회복, 이지런 |
24| Z1.5 (MP) | 145~158 bpm | MP 세션, Progression 후반 |
25| Z2 (Threshold) | 158~165 bpm | 역치 인터벌 핵심 영역 |
26| Z3 (Supra) | >165 bpm | 제한적 사용 |
27
28### Bakken 핵심 원칙
29
301. **"역치를 넘지 않으면서, 역치에 가장 가까운 곳에서, 가장 오래 버티는 것"**
312. **"찍는 것 vs 머무는 것"** - 순간적으로 역치에 도달했다 돌아오는 것(찍기)보다, 역치 바로 아래에서 분 단위로 지속적으로 머무는 것이 더 큰 적응 자극
323. **볼륨 먼저, 강도는 나중** - 세트 수를 늘려서 총량을 늘리고, 같은 심박에서 여유가 생길 때 강도를 올림
334. **"참는 근육"** - 좋은 날에 더 하지 않고, 여유분을 다음 세션 품질로 가져감
345. **하드 → 이지 규율** - 하드 세션 다음 날은 반드시 이지 또는 휴식 (타협 불가)
35
36## 워크플로우
37
38### 1. 새 FIT 파일 확인
39
40data/ 폴더에 분석되지 않은 FIT 파일이 있는지 확인합니다.
41새 파일이 있으면 `npm run analyze`를 실행하여 JSON 생성합니다.
42
43### 2. 분석 데이터 로드
44
45- 인자가 있으면: `results/` 에서 해당 날짜의 JSON 파일 로드
46- 인자가 없으면: 가장 최신 JSON 파일 로드
47
48### 3. 세션 유형 분류
49
50데이터를 기반으로 세션 유형을 정확히 분류합니다:
51
52| 세션 유형 | 평균 심박 | 특징 |
53| ---------------------------- | -------------------- | --------------------------------- |
54| **Pure Easy Run** | <135 bpm | Z1 중심, 회복 목적 |
55| **Easy Run** | 135~145 bpm | Z1, 이지런 |
56| **Progression Easy** | 시작 Z1 → 후반 Z1.5 | 네거티브 빌드업 구조 |
57| **LSD (Long Slow Distance)** | <145 bpm | 25km+ 장거리, 전구간 Z1 |
58| **Progression Long Run** | 60% Z1 + 40% Z1.5 | 특화기 롱런, MP 적응 |
59| **Threshold Interval** | 145~160 bpm | 5분/1분 인터벌 구조, Z2 체류 핵심 |
60| **MP Tempo** | 148~155 bpm | 연속 템포, 마라톤 특화 |
61| **경사도 역치 세션** | 경사 8%, 저속 고심박 | 충격 최소화 + 심혈관 자극 |
62
63### 4. 코칭 피드백 제공
64
65#### 핵심 분석 항목
66
67**1. Z2 체류 시간 (역치 세션의 핵심)**
68
69- 역치 세션에서 Z2(145~163 bpm) 체류 시간을 분 단위로 계산
70- 싱글 세션 기준 20~30분이 적정
71- 40분 이상이면 더블 역치로 분산하는 것이 효율적
72
73**2. Z3 침범 여부 (Bakken 원칙 핵심)**
74
75- Z3(>165 bpm) 체류 시간이 0%인 것이 이상적
76- Z3 침범 시: "역치를 넘어갔다" - 회복 비용 증가
77- 목표: "역치 아래에서 볼륨 쌓기"
78
79**3. 페이스 일관성**
80
81- consistency.cv < 3%: Excellent (매우 일관됨)
82- consistency.cv < 5%: Good (양호)
83- consistency.cv >= 5%: 개선 필요
84
85**4. 스플릿 전략**
86
87- splits.type이 negative면 좋은 전략 ("참는 근육" 실천)
88- splits.diffSeconds가 ±15초 이내면 이븐 페이스
89- positive이고 차이가 크면 초반 오버페이스 가능성
90
91**5. Cardiac Drift (심박 효율성)**
92
93- heartRate.drift < 5%: 매우 효율적
94- heartRate.drift < 10%: 정상 범위
95- heartRate.drift >= 10%: 탈수/과열 가능성, 회복 필요
96
97**6. 후반부 체력 (20km+ 세션)**
98
99- fatigue.dropSeconds < 10: 체력 유지 양호
100- fatigue.dropSeconds < 30: 보통
101- fatigue.dropSeconds >= 30: 후반부 체력 관리 필요
102
103#### 경고 신호 감지
104
105다음 상황이 감지되면 명확히 지적합니다:
106
1071. **볼륨 점프 경고**: 이전 세션 대비 Z2 시간이 50% 이상 증가하면 과도한 점프
1082. **연속 하드 세션 경고**: 이틀 연속 Z2/Z3 고비율 세션은 Bakken 원칙 위반
1093. **막판 스파이크 경고**: 세션 종료 직전 급격한 심박 상승 (정신적 한계에서 속도 올리는 패턴)
1104. **이지런 심박 과다**: Easy Run에서 평균 심박 145 초과 시 회복 부족 신호
1115. **Z3 침범**: 역치 세션에서 Z3 시간이 5% 이상이면 오버페이스
112
113#### 코칭 피드백 어조
114
115- **솔직하게**: 문제점은 직접적으로 지적 ("깐깐하게 느껴질 수 있지만...")
116- **이유를 설명**: "왜"가 중요 - Bakken 원칙과 연결하여 설명
117- **교육적으로**: 원리를 알려주어 러너 스스로 판단할 수 있게
118- **균형 있게**: 잘한 점 + 개선점 함께 제시
119- **구체적으로**: 다음 세션에 적용할 수 있는 실행 가능한 제안
120
121### 5. 피드백 저장
122
123코칭 피드백을 기존 MD 파일에 추가합니다.
124
125- 파일 위치: `results/{date}_{distance}km.md`
126- MD 파일 하단에 `## Coaching Feedback` 섹션 추가
127- 기존 데이터 섹션은 유지하고 피드백만 append
128
129## 출력 형식
130
131화면 출력과 동시에 MD 파일에 저장:
132
133```markdown
134## Coaching Feedback
135
136### 세션 유형
137
138[세션 유형] - [세션 특성 한 줄 요약]
139
140### 훈련 평가
141
142- **Z2 체류**: [시간] (Z3 침범: [%])
143- **페이스 일관성**: [등급] (CV [%])
144- **스플릿 전략**: [타입] ([차이])
145- **Cardiac Drift**: [%] ([평가])
146
147### 잘한 점
148
149- [구체적인 강점 목록]
150- [Bakken 원칙 관점에서의 평가]
151
152### 개선할 점
153
154- [구체적인 개선점]
155- [왜 개선이 필요한지 이유 설명]
156
157### 다음 훈련 제안
158
159- 내일: [권장 훈련]
160- 이틀 후: [권장 훈련]
161- [추가 코칭 포인트]
162```
163
164## 세션별 코칭 가이드
165
166### Easy Run 세션
167
168- 심박 <145 (가능하면 <140) 유지 확인
169- 회복런 목적이면 135~140 권장
170- "순수 회복런인지 vs Progression인지" 명확화 필요
171
172### Threshold 세션
173
174- Z2 체류 시간이 핵심 지표
175- Z3 = 0%가 목표 ("역치 아래에서 머무르기")
176- "몇 세트 끊어야 하나" 기준: rest에서 심박이 125 이하로 안 떨어지면 종료 신호
177- 세션 종료 기준: 사전 설정 세트 수 / 심박 천장 규칙 / cardiac drift 규칙
178
179### Long Run 세션
180
181- 베이스기: 전구간 Z1, 심박 128 이하 (높은 페이스 충동 참기)
182- 특화기: 60% Z1 → 40% MP (Progression 구조)
183- 막판 질주 자제: "참고 유지하는 힘"이 훈련 목표
184
185### 경사도 트레드밀 세션
186
187- "심혈관 부하는 높게, 충격은 낮게" 원칙
188- 페이스가 아닌 심박 기준으로 세션 평가
189- 경사도 8%에서 저속 고심박 = 효율적인 역치 자극
190
191## 참고사항
192
193- 한국어로 피드백을 제공합니다
194- Bakken 노르웨이 모델 원칙에 기반한 코칭을 제공합니다
195- 데이터 기반으로 객관적인 분석을 합니다
196- 훈련 컨텍스트가 필요하면 [training-context.md](training-context.md) 참조
197- 핵심: "화려하지 않은데 힘든" 세션이 Bakken 모델이 제대로 작동하는 신호