---
task_id: "1283.1"
team: "2팀"
level: 2
priority: "P2"
depends_on: []
created_at: "2026-03-30"
deadline: null
status: "done"
tags: ["캠페인뷰", "dashboard"]
---

# 캠페인뷰 전략 문서 동적 파일 스캔 + 미반영 파일 v3.0 업데이트

## 작업 1: 캠페인뷰 API 동적 스캔으로 전환

### 현재 문제
`/api/campaign-docs`에 파일 10개가 하드코딩되어 있어서 `matrix-3x3-strategy.md` 같은 새 파일이 캠페인 탭에 안 보임.

### 수정 대상
- `/home/jay/workspace/dashboard/server.py` — `/api/campaign-docs` 엔드포인트

### 수정 방향
- `recruiting-marketing/` 디렉토리의 `.md` 파일을 자동 스캔
- `exec/` 하위 디렉토리는 **제외** (실행 상세 문서는 별도)
- `.json`, `.html`, `.docx` 등 비-md 파일 제외
- 한글 표시명은 파일 첫 줄 `# 제목`에서 자동 추출
  - 첫 줄이 `# `로 시작하면 → `# ` 이후를 표시명으로 사용
  - 아니면 → 파일명 그대로 사용
- 파일을 수정일 기준 최신순 정렬

### Before (하드코딩):
```python
doc_list = [
    {"name": "전략 기본서", "filename": "strategy.md"},
    ...  # 10개 고정
]
```

### After (동적 스캔):
```python
import os
base = "/home/jay/workspace/memory/plans/recruiting-marketing"
doc_list = []
for fname in sorted(os.listdir(base)):
    if fname.endswith(".md"):
        fpath = os.path.join(base, fname)
        if os.path.isfile(fpath):
            # 첫 줄에서 제목 추출
            with open(fpath, "r", encoding="utf-8") as f:
                first_line = f.readline().strip()
            name = first_line.lstrip("# ").strip() if first_line.startswith("#") else fname
            doc_list.append({"name": name, "filename": fname})
```

## 작업 2: 미반영 파일 v3.0 업데이트

### blog-content.md — v2.0 → v3.0 업데이트
- 3x3 매트릭스 프레임워크 섹션 추가 (대분류별 블로그 토픽 매핑)
- 키워드 추가: 보험영업, 개인사업, 무자본창업
- 7월 1200% 룰 시의성 메시지 반영
- 버전 표기 v3.0으로 변경

### naver-keyword-ads.md — 버전 표기 추가
- v3.0 버전 표기 추가
- 3x3 매트릭스 관련 내용이 이미 반영되어 있는지 확인, 없으면 추가

## 주의사항
- 기존 내용 삭제 금지
- "당신" 사용 금지 → "여러분"
- "팀장" 사용 금지 → "지점장"
- fact_db에 없는 수치 생성 금지