왜 AI 응답을 그대로 추천에 쓰면 안 됐을까?

ReactFirebaseAI

문제 상황

감정 분석 음악 추천에서는 사용자가 입력한 문장을 Claude가 감정으로 분석하고, 그 결과로 음악을 추천합니다. 그런데 AI 응답을 그대로 화면과 추천에 쓰면, 응답 형식이 조금만 달라져도 추천 결과와 화면 상태가 함께 흔들렸습니다.

해결 방법

Claude 응답을 백엔드(Spring Boot 프록시)에서 서비스 데이터로 정규화하고, 감정 결과·추천 기준·히스토리 저장을 분리했습니다.

사용자 입력
  -> Claude 감정 분석 응답
  -> 허용 감정 집합으로 정규화 (기쁨/슬픔/분노/불안/평온/설렘/피로/집중)
  -> 추천 기준 생성 (감정 → 추천곡 구조)
  -> Firestore 감정 히스토리 저장

응답 파싱에 실패하면 `AI_RESPONSE_PARSE_FAILED`로 구분해 화면을 무너뜨리지 않고 기본 흐름으로 떨어지게 했습니다. 외부 API 키도 프론트에서 제거하고 백엔드 환경변수로만 관리했습니다.

배운 점

  • AI API는 붙이는 것보다 응답을 안정적인 서비스 데이터로 바꾸는 과정이 중요합니다.
  • 감정 결과와 추천 기준을 분리하면 왜 이 곡을 추천했는지 설명할 수 있습니다.
  • 사용자 기록(히스토리)을 함께 설계해야 개인화로 이어집니다.
  • 박주영 | 백엔드 개발자 포트폴리오