f8b21af4be
10_Wiki/Topics 대규모 정리: - 오류 캡처/미완성 stub 문서 227개 제거 - 교차폴더 중복 43클러스터 병합 (63파일 → redirect) - 링크명 정규화: 깨진 링크 수정·redirect 직결·개념 매핑 ~2,400건 - 카테고리 MOC 6개 신규 생성 - Graph 섹션 미해결 related-keyword 링크 10,058건 제거 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
4.6 KiB
4.6 KiB
id, title, category, status, canonical_id, aliases, duplicate_of, source_trust_level, confidence_score, verification_status, tags, raw_sources, last_reinforced, github_commit, tech_stack
| id | title | category | status | canonical_id | aliases | duplicate_of | source_trust_level | confidence_score | verification_status | tags | raw_sources | last_reinforced | github_commit | tech_stack | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| wiki-2026-0508-olympic-training-protocols | Olympic Training Protocols | 10_Wiki/Topics | verified | self |
|
none | A | 0.85 | applied |
|
2026-05-10 | pending |
|
한 줄
엘리트 선수의 4년 사이클을 매크로/메조/마이크로 주기로 분할하고, 폴라라이즈드 강도 분포 + 회복 모니터링 + 웨어러블 데이터로 적응을 최적화한다.
핵심
- Periodization:
- Macrocycle (4년/1년) — Olympic peak 목표.
- Mesocycle (3-6주) — 일반 준비/전문 준비/시합/이행.
- Microcycle (1주) — 일별 강도/볼륨 분배.
- Block periodization (Issurin) — 한 능력 집중 후 전이.
- 강도 분포:
- Polarized (80/20): 80% Z1 (저강도), 20% Z3 (고강도). 지구력 종목 표준.
- Pyramidal: Z1 > Z2 > Z3.
- Threshold: Z2 비중 큼 (단축 시즌).
- 회복: HRV, sRPE, sleep, CK/cortisol, RESTQ-Sport 설문.
- 웨어러블 (2026): WHOOP, Garmin HRM-Pro Plus, Polar Vantage V3, Catapult GPS, Oura Ring.
- Tapering: 시합 2-3주 전 볼륨 41-60% 감소, 강도 유지.
💻 패턴
# 1) ACWR (Acute:Chronic Workload Ratio) — 부상 위험 지표
import pandas as pd
def acwr(loads: pd.Series):
"""loads: 일별 sRPE*duration"""
acute = loads.rolling(7).mean()
chronic = loads.rolling(28).mean()
return acute / chronic # 0.8-1.3 sweet spot, >1.5 위험
# 2) HRV 기반 daily readiness
import numpy as np
def readiness(rmssd_today, rmssd_baseline_7d):
z = (np.log(rmssd_today) - np.log(rmssd_baseline_7d).mean()) \
/ (np.log(rmssd_baseline_7d).std() + 1e-6)
if z >= 0.5: return "go_hard"
if z >= -0.5: return "normal"
if z >= -1.0: return "easy"
return "rest"
# 3) Polarized 강도 분포 검증
def intensity_distribution(zone_minutes):
total = sum(zone_minutes.values())
return {k: round(100 * v / total, 1) for k, v in zone_minutes.items()}
# 목표: {Z1: 75-80, Z2: 5-10, Z3: 15-20}
# 4) Banister fitness-fatigue 모델
import numpy as np
def banister(loads, k1=1.0, k2=2.0, tau1=42, tau2=7):
fitness = np.zeros(len(loads)); fatigue = np.zeros(len(loads))
for i in range(1, len(loads)):
fitness[i] = fitness[i-1] * np.exp(-1/tau1) + loads[i]
fatigue[i] = fatigue[i-1] * np.exp(-1/tau2) + loads[i]
performance = k1 * fitness - k2 * fatigue
return performance, fitness, fatigue
# 5) Tapering 스케줄 생성 (지수 감소)
def taper_volume(base_min, n_days=14, reduction=0.5):
import numpy as np
decay = np.linspace(0, np.log(reduction), n_days)
return [round(base_min * np.exp(d)) for d in decay]
# 6) Catapult GPS 외부 부하 요약 (player load)
def player_load(ax, ay, az, hz=10):
import numpy as np
a = np.stack([ax, ay, az])
diff = np.diff(a, axis=1)
return np.sqrt((diff ** 2).sum(0)).sum() / (hz * 1.0)
# 7) sRPE 기반 weekly load 시각화
import matplotlib.pyplot as plt
def plot_load(df):
df["load"] = df["rpe"] * df["duration_min"]
df.groupby("week")["load"].sum().plot(kind="bar")
plt.axhline(y=df["load"].rolling(7).mean().mean(), color="red", ls="--")
결정 기준
| 종목 | 강도 분포 |
|---|---|
| 마라톤/사이클/노 (지구력) | Polarized 80/20 |
| 800-3000m (혼합) | Pyramidal |
| 단거리/역도 (파워) | Block (max strength → power → speed) |
| 팀스포츠 시즌 | Conjugate / undulating |
| 부하 신호 | 액션 |
|---|---|
| ACWR > 1.5 | 부하 감소, 회복일 추가 |
| HRV z < -1 (3일 연속) | rest day |
| sRPE 주합 > 평균+2σ | 다음 주 deload |
🔗 Graph
- 인접: HRV
🤖 LLM 활용
- 일별 readiness + 캘린더 기반 자동 워크아웃 조정.
- 코치 노트에서 부상 신호 추출.
- ACWR/HRV 트렌드 → 자연어 주간 리포트.
❌ 안티패턴
- 시합 직전 신규 자극 도입 (over-reach).
- HRV 단일 측정으로 결정 (7-28일 baseline 필요).
- Polarized 80/20을 모든 종목에 일괄 적용.
- ACWR만 보고 절대 부하 무시.
🧪 검증
- 시즌 PB 갱신율, 상대 PB.
- 부상 발생률 (per 1000 hours).
- VO2max, lactate 곡선 시계열.
🕓 Changelog
- 2026-05-08 Phase 1 자동 생성
- 2026-05-10 Manual cleanup — house style 적용