# 블로그 이미지 프롬프트 텍스트 렌더링 근본 원인 분석 + 수정

## Lv.3 작업 — 원인 분석 먼저, 수정은 원인 파악 후

## 문제 현상
사용자가 이미지 프롬프트를 수정한 후 "이미지 재생성" 시, **프롬프트 설명문 자체가 이미지 안에 텍스트로 렌더링**됨.

예시:
- 프롬프트: "밝은 회색 배경, 최상단 '인카다이렉트 티오피사업단' 진파란 헤더 박스(흰색 굵은 텍스트 20px)..."
- 결과: 이 설명문이 그대로 이미지에 텍스트로 나타남

## 이전 수정 이력 (반복 실패)
1. task-1616.1: 유형 분류 강화 (구조형→HTML→PNG 라우팅)
2. task-1622.1: image_router.py 유형별 라우팅 수정
3. task-1624.1: Gemini anti-text 지시문 추가 ("IMPORTANT: Do not render any text...")
→ **3번 수정했는데 같은 문제 재발** — 근본 원인이 해결 안 된 것

## 근본 원인 분석 요구사항 (반드시 수행)

### 1단계: 데이터 흐름 전수 추적
- 대시보드 NaverBlogView.js에서 사용자가 프롬프트 수정 → API 호출까지의 데이터 흐름 추적
- `POST /api/naver-blog/generate-images` 요청 시 전달되는 데이터 구조 확인
- server.py에서 image_router.py로 전달되는 과정 확인
- image_router.py에서 유형(type) 분류 로직 확인
- 수정된 프롬프트가 어떤 유형으로 분류되는지 실제 테스트

### 2단계: 유형 분류 버그 탐색
- infographic/process_flow 유형 프롬프트가 Gemini로 잘못 라우팅되는지 확인
- HTML→PNG(Satori) 경로에서 실패 시 Gemini fallback이 발동하는지 확인
- fallback 발동 시 원래 프롬프트(레이아웃 설명문)가 그대로 Gemini에 전달되는지 확인

### 3단계: Satori 실패 원인
- 스크린샷에서 "infographic 및 satori 모두 실패" 에러 확인
- HTML 생성은 성공하는데 PNG 변환 실패? 아니면 HTML 생성 자체 실패?
- Satori 에러 로그 확인

### 4단계: 근본 원인 결정
위 분석 결과를 종합하여 근본 원인을 **정확히** 규명:
- A: 유형 분류 오류 (infographic이 photo로 분류)
- B: Satori 실패 → Gemini fallback → 프롬프트가 텍스트로 렌더링
- C: 프롬프트 수정 시 유형 정보 손실
- D: 기타

### 5단계: 근본 원인에 맞는 정확한 수정
- 근본 원인이 확인된 후에만 수정 코드 작성
- 이전처럼 anti-text 지시문 같은 임시 방편이 아닌, **구조적 수정**
- 수정 후 반드시 실제 재현 테스트

## 참조 파일
- 프론트엔드: `/home/jay/workspace/dashboard/components/NaverBlogView.js`
- 서버: `/home/jay/workspace/dashboard/server.py` (line 5199: generate-images, line 971: _generate_blog_images)
- 이미지 라우터: `/home/jay/workspace/tools/ai-image-gen/image_router.py`
- Gemini 생성: `/home/jay/workspace/tools/ai-image-gen/gemini_pro_generate.py`
- 문제 스크린샷: `/home/jay/.cokacdir/workspace/autoset/photo_AQAD3QxrG_il2FZ-.jpg`
- 이전 수정 보고서: `/home/jay/workspace/memory/reports/task-1624.1.md`

## 테스트 (수정 후 필수)
1. infographic 유형 프롬프트 수정 → 재생성 → 텍스트 렌더링 없는 이미지 확인
2. process_flow 유형 프롬프트 수정 → 재생성 → 정상 이미지 확인
3. Satori 경로 정상 동작 확인
4. photo 유형은 기존대로 Gemini 정상 동작 확인
5. 유형별 라우팅 정확성 테스트 (최소 5개 프롬프트)

## 보고서
`/home/jay/workspace/memory/reports/task-{TASK_ID}.md`
- 반드시 "근본 원인" 섹션에 정확한 원인을 명시할 것
- "데이터 흐름 추적" 결과를 단계별로 기록할 것
