챗봇이 답을 만들긴 하는데 9~13초 걸리고, 카카오 스킬 응답 제한은 5초. 카카오가 5초에 끊어 "응답 없음"으로 보이고, 그 뒤 챗봇이 답을 내도 이미 늦음.
| 시도 | 결과 | 응답시간 | 카카오 5초 내? |
|---|---|---|---|
| try1 | 200 성공 | 9.08s | ❌ 초과 |
| try2 | 429 | 13.20s | ❌ 초과 |
| try3 | 429 | 13.17s | ❌ 초과 |
| try4 | 429 | 13.19s | ❌ 초과 |
| try5 | 429 | 13.19s | ❌ 초과 |
성공해도 9초, 실패하면 재시도 백오프(2+4+6s)로 13초. 전부 5초 초과.
Qdrant 검색 → Gemini 생성을 동기로 끝까지 기다린 뒤 응답(9초+) → 카카오는 이미 포기.callbackUrl로 실제 답 POST)을 제공하나, 핸들러는 동기 응답만 하고 userRequest.callbackUrl을 무시. (dto의 callback_url은 구글 로그인용 — 무관)err2 미체크 + nil 역참조 제거 (PR #12)gemini-3.5-flash → gemini-2.5-flash(GA·고가용) + 503 재시도 (PR #13)| # | 방법 | 효과 | 비고 |
|---|---|---|---|
| 1 | 카카오 콜백 패턴 구현 | 근본 해결 | 5초 내 "답변 준비중" 즉시 응답 + goroutine으로 Gemini 후 callbackUrl POST. 오픈빌더 "콜백 사용" ON 필요 |
| 2 | 카카오 경로는 재시도 제거 | 실패 13s→즉시 | 콜백 없이 동기 유지 시 임시안 |
| 3 | 쿼터 상향(유료) / 레이트 제한 | 429 감소 | GEMINI_API_KEY 결제 연결 |
| 4 | 프롬프트·RAG 축소 / 더 빠른 모델 | 지연 단축 | gemini-2.5-flash-lite 등. 그래도 5초 빠듯 → 1번이 정석 |
결론 — 5초 안에 Gemini를 끝내는 건 현실적으로 불안정. "준비중" 먼저 보내고 비동기로 답을 채우는 콜백(#1)이 정답.