docs(10_Wiki): 위키 전체 재구성 — Topic_* 폴더를 4개 카테고리로 통합 + 대규모 중복 제거
Topic_Agent/Topic_Blog/Topics/Topics_Biz/Topics_Meeting/Topics_Rag의 마크다운 지식 문서를 Topic_General/Topic_Programming/Topic_Graphic/Topic_Business 4개 카테고리로 재분류. - 중복 제거: frontmatter의 status:duplicate/merged + duplicate_of/redirect_to 필드로 자기 자신을 중복으로 선언한 리다이렉트 stub 1032개 제거, 완전 동일 내용 파일 472개 제거, 동일 파일명·다른 내용 충돌 시 더 큰(완전한) 버전만 유지(162개 제거) — 총 1639개 중복 제거. - 분류: 폴더 단위로 명확한 항목(AI_and_ML/Coding/Architecture 등 → Programming, Comfyui/Visual_Effects → Graphic, Topics_Biz/Topics_Meeting/사업 등 → Business, Poetic_Blog_Writing/창의성/Game_Design 등 → General)은 폴더 우선순위로, 나머지 혼재 폴더(Topic_Agent/Topic_Blog/Topics 루트/Thinking & Reasoning/Other/UI_UX_Assets)는 title/tags 키워드 스코어링으로 파일 단위 분류(불명확한 경우 General로 폴백). 원본 폴더명은 "From_*" 서브폴더로 보존해 추적 가능성 유지. - 최종 배치: Programming 2784 / General 1608 / Graphic 285 / Business 249 = 4926개 문서. - 에이전트 운영 상태(.astra/.agent/.obsidian/sessions/memory/_company/docs/lessons/_shared/src)는 지식 콘텐츠가 아니므로 재분류 대상에서 제외하고 원위치 유지. - Topics/Topic_email(상위 보호 폴더 Topic_email과 파일명 100% 중복) 삭제 — 보호 폴더 자체는 미변경. - 완전히 비게 된 Topic_Agent/Topic_Blog/Topics_Biz/Topics_Rag 폴더 제거.
This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
---
|
||||
id: wiki-2026-0508-olympic-training-protocols
|
||||
title: Olympic Training Protocols
|
||||
category: 10_Wiki/Topics
|
||||
status: verified
|
||||
canonical_id: self
|
||||
aliases: [Elite Athlete Training, Periodization, Olympic Periodization]
|
||||
duplicate_of: none
|
||||
source_trust_level: A
|
||||
confidence_score: 0.85
|
||||
verification_status: applied
|
||||
tags: [sports-science, training, periodization, polarized, recovery, wearables]
|
||||
raw_sources: []
|
||||
last_reinforced: 2026-05-10
|
||||
github_commit: pending
|
||||
tech_stack: { language: Python, framework: pandas }
|
||||
---
|
||||
|
||||
## 한 줄
|
||||
엘리트 선수의 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% 감소, 강도 유지.
|
||||
|
||||
## 💻 패턴
|
||||
|
||||
```python
|
||||
# 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 위험
|
||||
```
|
||||
|
||||
```python
|
||||
# 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"
|
||||
```
|
||||
|
||||
```python
|
||||
# 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}
|
||||
```
|
||||
|
||||
```python
|
||||
# 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
|
||||
```
|
||||
|
||||
```python
|
||||
# 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]
|
||||
```
|
||||
|
||||
```python
|
||||
# 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)
|
||||
```
|
||||
|
||||
```python
|
||||
# 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 적용
|
||||
Reference in New Issue
Block a user