DOCS/journey/troubleshooting/251201_ir_valuation_page_evaluations_not_displayed.md
happybell80 b959e90dd2 docs: IR Deck 평가 API 응답 구조 및 프론트엔드 처리 로직 업데이트
- 백엔드 아키텍처: 평가 시작 방식 설명 수정 (비동기 → 동기식 평가 후 결과 저장)
- 프론트엔드 설정: API 응답 구조 업데이트 (story_scores, summary, investment_opinion 추가)
- 페이지 평가 미표시: 런타임 에러 원인 추가 (page_evaluations undefined/null 처리)
2025-12-02 02:12:30 +09:00

2.1 KiB

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_evaluationsundefined/null/비배열인 상태에서 .map() 호출로 TypeError 발생

확인 필요

  • 백엔드 응답에 page_evaluations 배열 포함 여부 및 타입 (Array 여부)
  • ir-valuation.tsx:335-381formatEvaluationResult() 함수 로직
  • ir-valuation.tsx:220-247page_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: 빈 배열일 때 안내 메시지 또는 최소한의 기본 문구 표시

교훈

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