# ThreadAuto Phase 2: Pillow 카드뉴스 렌더러 5템플릿 구현

## 개요
카드뉴스 이미지를 자동 생성하는 Pillow 기반 렌더러를 구현한다.
Phase 1(OAuth+API 클라이언트)은 완료됨.

## 프로젝트 경로
- **프로젝트**: `/home/jay/projects/ThreadAuto/`
- **기술 리서치**: `/home/jay/workspace/memory/research/threadauto-tech-research.md` (Section 2, 6 참고)
- **Phase 1 보고서**: `/home/jay/workspace/memory/reports/task-219.1.md`

## Phase 2 목표
Pillow로 카드뉴스 이미지를 자동 생성하는 5가지 템플릿을 구현한다.

## 이미지 스펙
- **크기**: 1080 x 1350px (4:5 비율, Threads 권장)
- **폰트**: Pretendard (없으면 NotoSansCJKkr 사용 — `~/.local/share/fonts/NotoSansCJKkr-Regular.otf` 설치됨)
- **브랜드 컬러**:
  - Primary: #003087 (인카다이렉트 코퍼레이트 블루)
  - Accent: #C9A84C (골드)
  - Background: #FFFFFF
  - Text Dark: #1A1A2E
  - Highlight: #FF6B35 (긴급/강조)

## 5가지 템플릿 타입

### Type A — 숫자훅
- 수치/연봉 강조 → 클릭률 극대화
- 큰 숫자 + 짧은 메시지 + CTA
- 예: "연봉 1억 2천만원" "TOP사업단 설계사 평균 수입"

### Type B — 뉴스카드
- 업계 뉴스 헤드라인 + 인사이트 코멘트
- 뉴스 출처 표시 + 간결한 분석
- 전문성 구축 목적

### Type C — 비교카드
- 현재 vs TOP사업단 2컬럼 비교
- 이직 욕구 자극
- 항목별 체크/X 아이콘

### Type D — 성공스토리
- 설계사 사례/인용구
- 큰따옴표 + 이름 + 경력
- 공감 + 신뢰 유도

### Type E — 체크리스트
- 이직 체크리스트/팁 목록
- 체크박스 아이콘 + 항목별 텍스트
- 저장/공유 유도

## 구현 범위

### 1. 렌더러 엔진 (`renderer/`)
- `renderer/engine.py` — 베이스 렌더러 (Pillow Image 생성, 폰트 로드, 텍스트 배치)
- `renderer/templates.py` — 5가지 템플릿 클래스 (TypeA~E)
- `renderer/colors.py` — 브랜드 컬러 상수
- `renderer/fonts.py` — 폰트 로드/캐시 (Pretendard 우선, NotoSansCJK 폴백)

### 2. 텍스트 자동 레이아웃
- 긴 텍스트 자동 줄바꿈 (textwrap)
- 폰트 크기 자동 조절 (최대→최소 피팅)
- 한글 줄바꿈 처리

### 3. CLI 확장 (`cli.py`)
- `python cli.py render --type A --data '{"number": "1억2천", "subtitle": "TOP사업단 평균수입"}' --output test.png`
- 5가지 타입 모두 CLI로 테스트 가능

### 4. 샘플 이미지 생성
- 각 템플릿별 샘플 1장씩 생성하여 `samples/` 디렉터리에 저장
- 총 5장의 샘플 이미지

### 5. 테스트
- 각 템플릿 렌더링 테스트 (이미지 크기, 파일 생성 확인)
- 폰트 로드 테스트
- 텍스트 줄바꿈/피팅 테스트

## 디렉터리 구조 (Phase 1에 추가)
```
/home/jay/projects/ThreadAuto/
├── renderer/
│   ├── __init__.py
│   ├── engine.py       # 베이스 렌더러
│   ├── templates.py    # 5가지 템플릿
│   ├── colors.py       # 브랜드 컬러
│   └── fonts.py        # 폰트 관리
├── samples/            # 샘플 이미지 출력
├── tests/
│   ├── test_renderer.py  # 렌더러 테스트
│   └── (기존 테스트 유지)
└── (기존 파일 유지)
```

## 주의사항
- 기존 Phase 1 코드(api/, auth/, cli.py 등) 수정 최소화
- cli.py에 render 명령만 추가
- requirements.txt에 Pillow 추가
- LLM 불필요 (이미지 렌더링만)

## 완료 조건
1. 5가지 템플릿 모두 렌더링 동작
2. 각 템플릿별 샘플 이미지 1장 생성 (samples/)
3. CLI `render` 명령 동작
4. 한글 텍스트 정상 표시
5. 이미지 크기 1080x1350px
6. 테스트 전체 PASS (기존 29개 + 신규)