피드로 돌아가기
Dev.toBackend
원문 읽기
SSE 기반 Streaming 도입으로 First Token 응답 속도 200ms 달성
Stop Making Your AI Chatbot Slower: Streaming Responses with Spring AI and Server-Sent Events
AI 요약
Context
LLM의 Full Response 대기 방식으로 인한 5~10초의 높은 지연 시간 발생. 사용자 이탈률 증가와 낮은 체감 성능이라는 아키텍처적 한계 직면.
Technical Solution
- Spring AI의 Streaming support를 통한 토큰 단위 데이터 생성
- Server-Sent Events(SSE) 프로토콜 채택으로 단방향 실시간 데이터 전송 구현
- Flux 리턴 타입을 통한 Non-blocking 스트림 처리
- MediaType.TEXT_EVENT_STREAM_VALUE 설정을 통한 브라우저 즉시 렌더링 유도
- EventSource API를 활용한 클라이언트 사이드 점진적 UI 업데이트 구조 설계
실천 포인트
1. LLM 응답 API 설계 시 Full Response 대신 Streaming Endpoint 우선 검토
2. Spring WebFlux의 Flux 및 SSE 설정을 통한 Non-blocking 파이프라인 구축
3. 클라이언트 사이드에서 EventSource를 이용한 점진적 텍스트 렌더링 로직 구현