주간 AI 리포트가 빈말이 되지 않게 fallback 만들기
주간 리포트에 충분한 데이터가 없거나 AI 생성이 실패해도 사용자에게 의미 있는 요약을 보여주기 위한 방어 로직입니다.
Code notes
코드에서 확인한 구현 포인트
배포 기준 2026.03.22
관련 파일
apps/web/app/api/reports/weekly/route.tsapps/web/lib/report-stability.tsapps/web/lib/ai-report.tsapps/web/lib/personalization.ts구현 메모
주간 리포트는 최근 분석, 이전 리포트, 루틴, OX 응답을 함께 읽어 한 주의 맥락을 만든다.
데이터가 부족하거나 AI 생성이 실패해도 기본 요약과 다음 행동을 반환할 수 있도록 fallback을 둔다.
baseline과 trend는 과장하지 않도록 안정화 계층을 거쳐 사용자에게 불필요한 불안을 주지 않게 했다.
주간 리포트는 데이터가 늘 일정하지 않다
사용자가 매주 같은 횟수로 분석하지는 않는다. 어떤 주에는 사진이 충분하고, 어떤 주에는 OX 응답만 있거나 루틴 기록만 있을 수 있다.
이런 상황에서 AI에게 무조건 풍부한 회고를 요구하면 문장이 과장되거나 빈말이 되기 쉽다. 주간 리포트는 데이터가 부족할 때의 말투가 특히 중요했다.
이전 리포트와 현재 신호를 함께 본다
주간 리포트 API는 최근 분석, 이전 리포트, 루틴, OX 응답을 함께 읽어 현재 주의 맥락을 만든다. 변화가 충분하지 않으면 변화라고 단정하지 않고, 이번 주에 확인된 신호와 다음 주 행동을 중심으로 정리한다.
또 baseline과 trend를 다룰 때도 급격한 단정을 피한다. 숫자나 상태가 조금 흔들렸다고 해서 사용자에게 불안한 결론을 주면 안 된다.
AI 실패 시 기본 요약을 남긴다
AI 호출이 실패하거나 응답이 불완전해도 주간 리포트 화면은 열려야 한다. 그래서 서버는 기본 요약, 루틴 체크, 다음 행동을 구성할 수 있는 fallback을 둔다.
이 fallback은 임시 문구가 아니라 제품의 안전망이다. AI가 실패해도 사용자는 자신의 기록을 잃지 않고, 다음에 무엇을 하면 좋을지 최소한의 방향을 얻는다.
주간 리포트의 디버깅 순서
먼저 해당 주에 분석 세션이 있는지, 리포트 캐시가 있는지, 이전 리포트와 루틴 데이터가 있는지 본다. 그 다음 AI 생성 여부와 sanitize 결과를 확인한다.
이 순서를 지키면 ‘AI가 이상하다’로 뭉뚱그리지 않고, 데이터 부족인지, 캐시 문제인지, 생성 문제인지, 화면 표시 문제인지 나눠볼 수 있다.
Keep reading
다른 글 이어서 보기
AI Debugging
2026.05.03
8 min read
AI JSON 응답이 흔들릴 때 sanitize 계층 만들기
AI 리포트가 화면에서 기대하는 형태와 다르게 돌아올 때, 응답 계약과 정규화 계층으로 제품을 지킨 기록입니다.
AI Debugging
2026.05.03
8 min read
모바일 AI 분석이 멈춘 것처럼 보이던 문제
사진 촬영, 업로드, 분석 요청이 이어지는 모바일 AI 흐름에서 타임아웃과 재시도 기준을 나눈 기록입니다.
AI Debugging
2026.03.14
7 min read
AI 리포트 캐시가 오래된 모델 결과를 붙잡던 문제
중복 호출을 줄이기 위한 AI 캐시가 모델 변경과 충돌하지 않도록 provider, model, payload 저장 기준을 점검한 기록입니다.