---
title: "📓 작업일지 — 러닝·근력 플랜 데모 검증분 main 반영(근력플랜 정식 + AI 추천 심화)"
category: "worklog"
parent: "Claude Code 작업일지"
updated: "2026-07-11"
priority: "High"
purpose: "근력플랜을 신규 정식 기능(strength_plans 테이블·러닝 엔진 재사용)으로 추가하고, 러닝 플랜 저장소를 app_settings JSON에서 run_plans 테이블로 전환했으며, AI 추천 로직을 심화(주별 격자 점진과부하·프롬프트 요약·프리뷰·되돌리기)한 대규모 작업을 데모 검증 후 메인에 반영한 기록."
read_when: ["근력플랜", "strength_plans", "run_plans 테이블 전환", "AI 추천 심화", "러닝플랜 프리뷰", "코드 정상 전체 정상 교훈"]
document_type: "개발일지"
source_status: "generated"
knowledge_group: "03_history"
work_timestamp: "20260711_201046"
source_of_truth: "https://dallog-tools.hansbridge.co.kr/knowledge/"
context: "달록 본레포(ccy-hansbridge/dallog), 커밋 769514e."
---

# 작업일지 — 러닝·근력 플랜 데모 검증분 main 반영

> 러닝 플랜에만 있던 "AI가 계획을 짜주는" 기능을 근력 운동에도 정식으로 만들었다. 동시에 러닝 플랜 데이터를 그동안 임시로 쓰던 저장 방식(app_settings 안에 JSON 뭉치로 저장)에서 정식 DB 테이블로 옮겼고, AI가 계획을 짜는 로직도 더 정교하게 다듬었다. 데모에서 3중 검수(Explore·Codex·MCP 실동작)와 사장님 육안 확인을 거친 뒤 메인에 반영했다.

## 1. 무엇을 했나

### 신규 — 근력플랜 정식
- `strength_plans` 테이블 신설, 3중 진입점(진입 경로 3곳), 러닝 플랜의 엔진 로직을 재사용해 근력플랜 페이지(`StrengthPlanPage.tsx`, `strengthPlan.ts`, `strength-plan.css`) 신규 작성.

### 전환 — 러닝 플랜 저장소
- 러닝 플랜 저장 방식을 `app_settings` JSON에서 `run_plans` 테이블(정식 DB 테이블)로 전환. Settings·History·publications 연동 갱신.

### AI 심화
- 주별 격자 점진과부하(주 단위로 난이도를 점진적으로 올리는 로직) 적용.
- 프롬프트 요약에 의도 + 실제 기록 빈도를 반영하는 앵커를 추가해, 매일 하는 것처럼 편향되게 추천하는 문제를 억제.
- 프리뷰(미리보기) 단계에서 실제 기록은 보호하고, 기간을 벗어나지 않게 클램프하며, 빨간 취소선으로 "비움"을 표시.
- 되돌리기 기능 추가.

### 안전성
- 파서에서 결손값(-1)을 "미언급"으로 처리하도록 보정.
- 근력 가드(비정상 입력 방지) 추가.
- 먹통(응답 없음) 상황에 대한 안내 추가. (3중검수+자가검수 반영)

### 문서
- `AGENTS.md`, `CLAUDE.md`에 "코드 정상 ≠ 전체 정상" 교훈을 신규 등재.

### 검증
- 데모에서 3중검수(Explore·Codex·MCP)와 실동작 확인(실기록 보호·적용·되돌리기·G0), 사장님 육안 확인(삭제 프리뷰)까지 거침.
- 데모 전용 요소(index.html 파비콘·타이틀, studio*)는 이번 반영에서 제외.

## 2. 주요 변경 파일

| 파일 | 내용 |
|---|---|
| `migrations/2026-07-10_plan_storage_tables.sql` | 신규 마이그레이션(+148줄) |
| `src/pages/StrengthPlanPage.tsx` | 근력플랜 페이지 신규(+750줄) |
| `src/lib/strengthPlan.ts` | 근력플랜 로직 신규(+375줄) |
| `src/lib/planContext.ts` | 플랜 컨텍스트 신규(+130줄) |
| `src/pages/RunningPlanPage.tsx` | run_plans 테이블 연동 등 대규모 수정 |
| `src/components/runningPlan/RunningPlanTable.tsx` | 표 로직 확장(+248줄) |
| `src/components/runningPlan/strength-plan.css` | 근력플랜 스타일 신규(+56줄) |
| `src/lib/runningPlan.ts` | 저장소 전환 반영 |
| `AGENTS.md`, `CLAUDE.md` | "코드 정상 ≠ 전체 정상" 교훈 등재 |

## 3. 관련 커밋

- `769514e` feat(plan): 러닝·근력 플랜 데모 검증분 main 반영 — 근력플랜 정식 + AI 추천 심화 + 데이터 안전성 (2026-07-11)

## 4. 남은 이슈

- 커밋 메시지 기준으로 별도 남은 이슈 언급 없음. (본 커밋 직후 CF 배포 안정화·전면 재감사 등 후속 작업이 이어짐 — 별도 작업일지 참조.)

## 5. 신호 후보 (확정 아님)

- 이 커밋에 `AGENTS.md`·`CLAUDE.md`에 "코드 정상 ≠ 전체 정상"(코드가 문법·타입·빌드·리뷰상 정상이어도 실배포·실동작까지 확인해야 완료로 본다는 교훈)이 함께 등재됨. 정책/구조 변경인지 교훈 메모 성격인지 이 커밋만으로는 애매해 별도 결정 문서로는 만들지 않고 후보로만 남김.
