# task-1569.1 완료 보고서: 네이버 블로그 글 생성 504 타임아웃 수정

## SCQA

**S**: 대시보드 server.py의 `/api/naver-blog/generate` 엔드포인트가 Claude CLI를 `subprocess.run`으로 호출하여 블로그 글을 생성하고 있다.

**C**: Sonnet 모델로 2000~2500자 블로그 글 생성 시 120초 타임아웃을 초과하여 `subprocess.TimeoutExpired` → 504 응답이 발생한다. 또한 `cwd` 미지정으로 서버 작업 디렉토리의 CLAUDE.md가 로드되어 불필요한 페르소나/규칙이 적용될 수 있다.

**Q**: 타임아웃을 충분히 늘리고 불필요한 컨텍스트 로딩을 방지하여 블로그 글 생성 504 에러를 해결할 수 있는가?

**A**: `timeout=120` → `timeout=300`(5분)으로 변경하고 `cwd="/tmp"` 추가하여 해결 완료. 수정 후 실제 API 호출 테스트에서 status=generated, content_length=2961자로 정상 생성 확인. 서버 재시작 후 즉시 정상 동작.

## 수정 파일

- `/home/jay/workspace/dashboard/server.py` (4314~4315줄)

## 변경 내용

| 항목 | 변경 전 | 변경 후 |
|------|---------|---------|
| timeout | 120 (2분) | 300 (5분) |
| cwd | 미지정 (서버 CWD) | "/tmp" |

## 테스트 결과

API 호출 테스트:
```
curl -s -X POST http://localhost:8000/api/naver-blog/generate \
  -H "Content-Type: application/json" \
  -d '{"keywords":["보험대리점","인카금융","GA대리점"]}'
```

결과:
- status: `generated` (504/502 아님)
- content_length: 2961자 (기준 1000자 초과)
- 생성된 글: 보험대리점 관련 순수 블로그 콘텐츠 (아누 페르소나 미적용 확인)
- 서버 상태: `active (running)` 정상

## 발견 이슈 및 해결

### 자체 해결 (1건)
1. **cwd 미지정으로 CLAUDE.md 로딩 가능성** — `cwd="/tmp"` 추가하여 프로젝트 컨텍스트 로딩 방지

### 범위 외 미해결 (2건)
1. **pyright import 에러 (server.py:57-65)** — 기존 이슈, `dashboard.data_loader`/`dashboard.helpers` import 해소 불가. 본 작업 범위 외 (서버 패키지 구조 관련)
2. **미사용 변수 경고 (server.py:3104, 3152, 3299, 3302)** — 기존 경고, 본 작업과 무관한 위치

## 셀프 QC

- [x] 1. 영향 파일: server.py 1개 파일, 2줄 변경
- [x] 2. 엣지 케이스: 300초 초과 시 기존 TimeoutExpired 핸들링 동일 동작
- [x] 3. 작업 지시 일치: timeout=300, cwd="/tmp" 정확히 반영
- [x] 4. 에러 처리/보안: 기존 에러 핸들링 유지, /tmp는 안전한 임시 디렉토리
- [x] 5. 테스트: 실제 API 호출로 정상 생성 확인 (2961자)
- [x] 6. 이슈 해결: 자체 해결 1건, 범위 외 2건 명시
- [x] 7. 코드 아키텍처: 단순 파라미터 변경, SOLID/DRY 무관
- [x] 8. 인터페이스 변경: API 시그니처 변경 없음

## 모델 사용 기록

- 팀원: 토르(백엔드) / 작업 내용: subprocess.run 파라미터 수정 / 사용 모델: sonnet / 정당성: -
