# Task-2125 Phase 2: E2E 검증 결과

**날짜**: 2026-04-23
**방법**: API 직접 호출 + Chrome DevTools UI 확인

---

## 제약사항
- Google OAuth 전용 인증으로 인해 Playwright/Chrome DevTools 자동화 로그인 불가
- Google이 자동화 브라우저를 "안전하지 않은 브라우저"로 거부
- 이메일/비밀번호 로그인은 계정 미확인 상태
- 따라서 API 직접 호출 + 코드 분석 기반으로 검증

---

## 핵심 발견: Edge Functions 미배포

### Supabase Edge Functions 상태 (5개 전체 404)

| Edge Function | URL | HTTP Status | 결론 |
|---|---|---|---|
| suggest-topics | zayhfjuwviporbzokudr.supabase.co/functions/v1/suggest-topics | **404** | 미배포 |
| generate-content | zayhfjuwviporbzokudr.supabase.co/functions/v1/generate-content | **404** | 미배포 |
| generate-image | zayhfjuwviporbzokudr.supabase.co/functions/v1/generate-image | **404** | 미배포 |
| newsletter-chat | zayhfjuwviporbzokudr.supabase.co/functions/v1/newsletter-chat | **404** | 미배포 |
| premium-chat | zayhfjuwviporbzokudr.supabase.co/functions/v1/premium-chat | **404** | 미배포 |

**영향**: 콘텐츠 생성(1-5), AI 토픽 제안(2), 이미지 생성(6-9), AI 채팅(13-14) — **총 11개 기능이 실제 동작 불가**

### InsuRo Backend API 상태

| 엔드포인트 | URL | HTTP Status | 결론 |
|---|---|---|---|
| /api/status | api.insuro.biz/api/status | **200 OK** | 서버 정상 |
| /api/insuro/naver/search | api.insuro.biz/api/insuro/naver/search | **401** | JWT 필요 (정상 동작 예상) |
| /api/insuro/google-trends | api.insuro.biz/api/insuro/google-trends | **401** | JWT 필요 (정상 동작 예상) |

**결론**: 백엔드 서버(api.insuro.biz)는 정상 동작 중. JWT 인증 후 호출 가능.

---

## UI 검증 (인증 전)

### 1. 로그인 페이지 (insuro.biz/login)
- **정상**: Google OAuth + 이메일 로그인 UI 제공
- **인증 벽**: /generate 직접 접근 시 /login으로 리다이렉트 (정상)
- 스크린샷: `01-login-page.png`, `02-generate-redirect-login.png`

### 2. PWA 설치 안내
- 앱 설치 프롬프트 "핫라인 앱 설치" 표시됨 (정상)

---

## 기능별 검증 결과 (코드 분석 기반)

### A. 콘텐츠 생성 (5개 기능)

| # | 기능 | 코드 구현 | API 배포 | 실제 동작 | 비고 |
|---|---|---|---|---|---|
| 1 | 채널별 생성 | ✅ | ❌ (404) | ❌ | generate-content Edge Function 미배포 |
| 2 | AI 토픽 제안 | ✅ | ❌ (404) | ❌ | suggest-topics Edge Function 미배포 |
| 3 | 설정 옵션 적용 | ✅ | ❌ (404) | ❌ | Edge Function 미배포로 확인 불가 |
| 4 | 프리셋 저장/로드 | ✅ | N/A (DB) | ⚠️ | Supabase RPC로 직접 동작, 인증 필요 |
| 5 | 토큰/쿼터 추적 | ✅ | N/A (DB) | ⚠️ | Supabase RPC로 직접 동작, 인증 필요 |

### B. 이미지 생성 (4개 기능)

| # | 기능 | 코드 구현 | API 배포 | 실제 동작 | 비고 |
|---|---|---|---|---|---|
| 6 | 이미지 생성 | ✅ | ❌ (404) | ❌ | generate-image Edge Function 미배포 |
| 7 | 이미지 옵션 적용 | ✅ | ❌ (404) | ❌ | Edge Function 미배포 |
| 8 | 무료 재시도 | ✅ | ❌ (404) | ❌ | 프론트 로직은 있으나 API 없음 |
| 9 | 피드백 재생성 | ✅ | ❌ (404) | ❌ | 프론트 로직은 있으나 API 없음 |

### C. 키워드 분석 (3개 기능)

| # | 기능 | 코드 구현 | API 배포 | 실제 동작 | 비고 |
|---|---|---|---|---|---|
| 10 | 네이버 키워드 | ✅ | ✅ (401) | ⚠️ | 서버 동작 중, JWT 필요. 인증 후 테스트 필요 |
| 11 | 구글 트렌드 | ✅ | ✅ (401) | ⚠️ | 서버 동작 중, JWT 필요 |
| 12 | 정보성 키워드 | ⚠️ | ✅ (401) | ⚠️ | 백엔드 존재, 프론트 미완성 |

### D. AI 채팅 (2개 기능)

| # | 기능 | 코드 구현 | API 배포 | 실제 동작 | 비고 |
|---|---|---|---|---|---|
| 13 | 뉴스레터 챗 | ✅ | ❌ (404) | ❌ | newsletter-chat Edge Function 미배포 |
| 14 | 보험료 비교 챗 | ✅ | ❌ (404) | ❌ | premium-chat Edge Function 미배포 |

### E. 플랜 게이트 (4개 항목)

| # | 기능 | 코드 구현 | 비고 |
|---|---|---|---|
| 15 | Free 제한 | ✅ | 코드 분석으로 확인. 채널 제한 DB 미정의 이슈 |
| 16 | Basic 제한 | ✅ | ai_image_per_request DB 미정의 |
| 17 | Pro 제한 | ⚠️ | PRO_SORT_ORDER=3 버그 (Pro=2인데 3으로 설정) |
| 18 | Max 제한 | ✅ | Claude Sonnet 모델 접근 코드 정상 |

---

## 종합 판정

### 동작 가능: 3/14 (⚠️)
- #10 네이버 키워드 검색 — 서버 동작 중
- #11 구글 트렌드 — 서버 동작 중
- #4, #5 프리셋/토큰 — Supabase DB 직접 접근

### 미동작: 11/14 (❌)
- **원인**: Supabase Edge Functions 5개 전부 미배포
- 콘텐츠 생성, AI 토픽, 이미지 생성, AI 채팅 전체 미동작

---

## 스크린샷
1. `01-login-page.png` — 로그인 페이지
2. `02-generate-redirect-login.png` — /generate 접근 시 로그인 리다이렉트
3. `03-localhost-8080.png` — 로컬 파일 서버 (InsuRo 아님)

---

## 수정 권장사항 (우선순위)
1. **[P0] Edge Functions 배포**: supabase functions deploy 실행 필요
2. **[P1] PRO_SORT_ORDER 버그 수정**: 3 → 2
3. **[P2] DB features에 allowed_channels 추가**
4. **[P2] DB features에 ai_image_per_request/max_images_per_month 추가**
5. **[P3] 면책조항 자동 삽입 로직 구현**

---

**검증자**: Phase 2 E2E Agent (Benzaiten 역할)
**검증 일시**: 2026-04-23 07:00 KST
