피드로 돌아가기
Dev.toBackend
원문 읽기
SSE 도입 후 15~30초 대기 시간을 SSE 스트리밍으로 해결하여 이탈률 50% 개선
How I Fixed My AI Chatbot's Laggy Responses with Server-Sent Events
AI 요약
Context
기존 Fetch API 기반의 JSON 응답 방식으로 인한 AI 토큰 생성 완료 시까지의 긴 대기 시간 발생. HTTP 연결 유지 시간이 15~30초에 달하며 사용자 경험 저하 및 높은 이탈률을 초래한 아키텍처적 한계.
Technical Solution
- 서버측 Content-Type을 text/event-stream으로 설정하여 단방향 실시간 데이터 전송 구조 설계
- AI API의 응답을 ReadableStream으로 수신하여 토큰 단위로 즉시 flush 하는 프록시 로직 구현
- WebSockets 대비 낮은 오버헤드로 연결 상태 관리 및 핸드셰이크 복잡성을 제거한 경량 아키텍처 채택
- Fetch API의 response.body.getReader()를 활용해 POST 요청에서도 스트리밍 데이터를 처리하는 프론트엔드 파이프라인 구축
- 데이터 전송 완료 시 [DONE] 특수 토큰을 정의하여 스트림 종료 시점을 명시적으로 제어
실천 포인트
1. AI 챗봇 구현 시 전체 응답 대기 시간(TTFB)보다 첫 토큰 도달 시간(TTFT) 최적화 여부 검토
2. HTTP 기반 스트리밍 구현 시 브라우저 호환성을 위한 Polyfill 적용 및 재연결 로직(Exponential Backoff) 설계 필요
3. 대규모 트래픽 환경에서 SSE의 커넥션 유지 비용과 서버 리소스 점유율 분석