# IR Deck 평가 페이지별 내용 표시 안됨

**날짜**: 2025-12-01  
**작성자**: Auto  
**관련 파일**:
- `frontend-ir-valuation/src/pages/ir-valuation.tsx`
- `rb8001/app/services/ir_deck_analyzer.py`

---

## 문제 상황

평가 결과에서 종합 점수와 등급은 표시되지만, 페이지별 평가 내용(강점/약점)이 표시되지 않음.

**증상**:
- "1. 페이지별 잘된 점 / 아쉬운 점" 섹션 제목만 표시
- "아래는 핵심 페이지 중심으로 평가했습니다." 설명만 표시
- 실제 페이지별 평가 내용(페이지 번호, 강점, 약점, 점수) 없음

## 원인 분석

### 가능한 원인
1. **백엔드 데이터 문제**: `page_evaluations` 배열이 비어 있거나 누락
2. **프론트엔드 렌더링 문제**: `formatEvaluationResult()` 함수가 빈 배열 처리 미흡
3. **데이터 구조 불일치**: 백엔드 응답과 프론트엔드 기대 형식 불일치
4. **프론트엔드 런타임 에러**: `result.page_evaluations`가 `undefined`/null/비배열인 상태에서 `.map()` 호출로 `TypeError` 발생

### 확인 필요
- 백엔드 응답에 `page_evaluations` 배열 포함 여부 및 타입 (`Array` 여부)
- `ir-valuation.tsx:335-381`의 `formatEvaluationResult()` 함수 로직
- `ir-valuation.tsx:220-247`의 `page_evaluations` 매핑 코드에서 방어적 처리 여부  
  - 참고: `DOCS/journey/troubleshooting/251202_ir_valuation_gateway_timeout_and_frontend_fallback.md`

## 해결 방안

### 1. 백엔드 응답 확인
- `/rb8001/api/ir-deck/evaluation/{evaluation_id}` 응답 구조 확인
- `page_evaluations` 배열이 실제로 포함되어 있는지 검증

### 2. 프론트엔드 처리 개선
- `ir-valuation.tsx:220-247`: `Array.isArray(result.page_evaluations)`로 타입 검증 후 map 수행, 누락/잘못된 타입인 경우 경고 로그만 남기고 빈 배열로 처리
- `ir-valuation.tsx:335-381`: 빈 배열일 때 안내 메시지 또는 최소한의 기본 문구 표시

## 교훈

- 평가 결과 표시 전 백엔드 응답 구조 검증 필수
- 빈 배열/누락 데이터에 대한 폴백 처리 필요
- 사용자에게 명확한 안내 메시지 제공
