달리기 자동화 시스템 구축(Claude Code로 3년간의 습관을 '데이터'로 만들기)

2023년 1월 2일부터 656회 달리기를 완주하면서, 그 결과를 굿노트에 수동기록 하였음. Claude Code Skill 기능을 활용해 완전 자동화 시스템을 구축한 사례입니다.

핵심 성과:

  • iPhone 스크린샷 → 30초 만에 자동 기록

  • 일일/주간/누적 통계 자동 계산

  • 향후 1,000회까지 추적 가능한 확장 가능한 시스템

1. 구축 동기

1) 배경

아이패드의 달력 스크린샷
  • 시작일: 2023년 1월 2일

  • 현재 상태: 656회 완주 (2026년 2월 3일 기준)

  • 문제점:

    • 매일 iPhone 앱으로 기록, 굿노트에 습관 체크, 1주일에 한번 블로그에 기록(스크린샷)

    • 거리, 페이스, 심박수 등 상세 데이터 부재, 패턴 분석 불가능, 개선 포인트 파악 어려움

    • 수동 작업이 은근히 귀찮고 시간을 많이 소요함

2) 시도했던 방법

  • iPhone Shortcuts → 기록 자동으로 가져와서 워크스페이스에 저장 → 실패

  • 결론: 기존 도구로는 해결 어려움 → Claude Code로 방향 전환

2. 해결책: Claude Code 기반 자동화 시스템

선택 이유:

  1. Vision API의 강력한 한글 OCR (100% 정확도)

  2. 자연어 명령으로 간단한 실행 (/running-daily)

  3. Skill 시스템으로 워크플로우 자동화

  4. 사용자 확인 후 처리로 안전성 보장

시스템 아키텍처

iPhone 달리기 앱
    ↓ 스크린샷 캡처
    ↓ 에어드랍 전송 (5초)
Mac ~/Downloads/
    ↓ /running-daily 실행 (1초)
Claude Vision API
    ↓ 한글 OCR (100% 정확)
Python 처리 스크립트
    ├─ 데이터 파싱 (거리, 페이스, 심박수 등)
    ├─ 마크다운 파일 생성
    ├─ .metadata.json 저장
    ├─ iCloud 백업
    └─ 원본 삭제
    ↓ 완료 (총 30초)

3. 구현 세부사항

1) 파일 구조

~/workspace/10-projects/15-running/
├── 2026/
│   ├── daily-records/
│   │   ├── 2026-01-26.md
│   │   ├── 2026-01-27.md
│   │   └── .metadata.json          # 핵심!
│   └── weekly-reports/
│       └── w-05(260202).md
├── scripts/
│   └── process-daily-screenshot.py
└── .cumulative-stats.json          # Baseline

2) 핵심 컴포넌트

① Claude Code Skill: running-daily

  • 위치: ~/.claude/skills/running-daily/

  • 역할: 전체 워크플로우 관리

  • 문서: SKILL.md (658줄), README.md (232줄)

② Python 스크립트

  • 파일: process-daily-screenshot.py (245줄)

  • 기능:

    • Vision API 결과 파싱

    • 마크다운 생성

    • 메타데이터 관리

    • iCloud 백업


4. 시스템 확장: 일일 → 주간 → 월간

1) 단계별 구현 전략

단계

스킬

상태

기능

Phase 1

running-daily

✅ 완료

일일 데이터 수집

Phase 2

running-weekly

✅ 완료

주간 패턴 분석

Phase 3

running-monthly

📋 계획

월간 트렌드 분석

Phase 4

running-post

📋 계획

블로그 자동 발행

2) "유령 스킬" 문제 발견

문제 상황:

  • 시스템에 5개 스킬 등록되어 있음

  • 실제로 구현된 것은 running-daily 1개뿐

  • 나머지 4개는 폴더도 없는 "유령 스킬"

원인 분석:

1단계: 스킬 이름 시스템 등록 (쉬움) ✅
2단계: 스킬 파일 작성 (중간) ❌
3단계: 실제 테스트 (어려움) ❌

→ 1단계만 하고 2, 3 건너뛰면 "유령 스킬" 생성

교훈:

"계획 5개보다 구현 1개가 낫다. Done is better than perfect."

3) running-weekly 구현 (30분 완성)

핵심 기능:

  • 메타데이터 JSON 활용 (파일 파싱 불필요)

  • 월요일~일요일 7일 기준 (ISO 8601)

  • 자동 통계 계산 및 인사이트 생성

첫 주간 리포트 (w-05) 결과:

기간: 2026-01-26(월) ~ 2026-02-01(일)

✅ 6회 달리기 (목표 5회 초과)
✅ 평균 5.00km (목표 정확히 달성)
✅ 평균 페이스 5'45" (목표 대비 3초 개선!)
✅ 총 29.97km
✅ 1,905 칼로리 소모

주간 베스트 (일요일):
- 최장 거리: 5.40km
- 최고 페이스: 5'15"/km

5. 누적 통계의 도전: Baseline 시스템

1) 문제 상황

요구사항:

  • 2023년부터 누적: 656회 (2026-02-03 기준)

  • 2026년부터 누적: 28회

문제:

  • 시스템 기록: 7개만 존재

  • 실제 달린 횟수: 656회

  • 차이: 647회 (시스템 구축 전 기록)

2) 해결책: Baseline 방식

핵심 개념:

특정 시점의 실제 누적 값을 기준점으로 설정
+ 이후 시스템 기록 증가분만 더하기
= 정확한 현재값

Baseline 설정 (.cumulative-stats.json):

{
  "start_date": "2023-01-02",
  "baseline_as_of_date": "2026-02-01",
  "total_runs_as_of_baseline": 654,
  "year_2026_runs_as_of_baseline": 26,
  "system_records_as_of_baseline": 6
}

계산 로직:

# 현재 시스템 기록 개수
current_records = 7

# 증가분 계산
increase = current_records - baseline_records  # 7 - 6 = 1

# 전체 누적
total = baseline_total + increase  # 654 + 1 = 655

# 2026년 누적
year_2026 = baseline_2026 + increase  # 26 + 1 = 27

3) 왜 Baseline이 중요한가?

장점:

  1. 과거 기록 부족해도 정확한 계산

  2. 미래에 과거 기록 추가해도 문제 없음

  3. Baseline만 정확하면 영구적으로 정확

교훈:

"완벽한 과거 데이터가 없어도, 정확한 baseline만 있으면 정확한 시스템을 만들 수 있다."


6. 핵심 기술 인사이트

1) Vision API의 강력함

테스트 결과: 완벽한 인식 + 빠른 속도

  • 한글 인식: 100%

  • 숫자 인식: 100%

  • 처리 속도: 약 5초

2) 메타데이터 설계의 가치

3가지 데이터 분리:

  1. Baseline (.cumulative-stats.json)

    • 역할: 기준점 저장

    • 특성: 절대 변경 금지

  2. 시스템 기록 (.metadata.json)

    • 역할: 실제 입력된 일일 기록

    • 특성: 계속 증가

  3. 표시 값 (마크다운 파일)

    • 역할: 사용자가 보는 최종 결과

    • 특성: 자동 계산

왜 분리했나?

  • 각각의 책임이 명확

  • 버그 감소

  • 확장성 증가

3) 파일명 컨벤션의 힘

일관된 형식:

  • 일일 기록: 2026-01-30.md

  • 주간 리포트: w-05(260202).md

  • 월간 리포트: m-01(260131).md (예정)

효과:

  • 자동 정렬

  • 빠른 검색

  • 자동화 용이


7. 실제 사용 경험

1) 일일 워크플로우

06:40 - 달리기 시작
07:20 - 달리기 종료
07:21 - iPhone 스크린샷 캡처
07:22 - 에어드랍으로 Mac 전송
07:23 - `/running-daily` 실행
07:24 - 자동 처리 완료 ✅

총 소요 시간: 3분 (대부분 전송 시간)
실제 작업 시간: 30초
검은색 컴퓨터 화면의 스크린샷

2) 주간 워크플로우

월요일 아침
08:00 - `/running-weekly` 실행
08:01 - w-06(260209).md 자동 생성 ✅

총 소요 시간: 1분
실제 작업 시간: 10초
한국어와 중국어 텍스트가 표시된 컴퓨터 화면의 스크린샷

8. 배운 교훈

1) 핵심 패턴: Vision + Skill + Metadata

Vision API (정확한 인식)
    ↓
Claude Skill (워크플로우 자동화)
    ↓
Metadata (구조화된 데이터)
    ↓
확장 가능한 시스템

이 패턴은 다양한 분야에 적용 가능합니다.

2) 프로세스 교훈

1. 한 번에 하나씩 완전히 구현

계획 5개 < 구현 1개

running-daily를 완벽하게 만든 것이 정답
나머지 4개를 동시에 만들려다 모두 미완성

2. 검증의 중요성

구현 → 테스트 → 검증 → 완료

스킬 만들고 끝이 아님
실행해보고 작동 확인해야 끝

3. 상태 표시의 중요성

✅ running-daily (완료 - 100%)
🚧 running-weekly (진행 중 - 10%)
📋 running-monthly (계획 중 - 0%)

한눈에 현황 파악 가능
미래의 나를 위한 배려

2) 인생 교훈

1. 꾸준함이 만드는 변화

3년간 656회를 달린 꾸준함이 있었기에, 오늘 이런 시스템을 만들 가치가 있었다.

2. 기록의 힘

오늘부터는 매일의 달리기가 데이터로 쌓인다. 이 데이터가 나를 더 나은 러너로 만들어줄 것이다.


9. 미래 계획

1) 단기 (1개월)

  • [ ] 30개 일일 기록 누적

  • [ ] 4주 주간 리포트 생성

  • [ ] 월간 분석 스킬 개발 시작

2) 중기 (3개월)

  • [ ] 90개 일일 기록 누적

  • [ ] Apple Health 데이터 연동

  • [ ] 블로그 자동 발행 시스템



10. 마무리

핵심 메시지

"꾸준함 + 자동화 = 지속 가능한 성장"

중요한 것:

  1. 완벽하지 않아도 시작하기

  2. 작은 단위로 쌓아가기

  3. 자동화로 지속 가능하게 만들기

오늘 하루를 한 문장으로

"656번의 달리기를 증명하고, 657번째부터는 자동으로 기록하는 시스템을 만든 날"

11. 도움 받은 글 (옵션)

  • 안상영&정혜지 스터디장님 제공해 주신 자료 및 인사이트

5
8개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요