Streaming
2026년 7월 16일
- Streaming = LLM(Large Language Model)이 생성하는 토큰을 다 끝날 때까지 기다리지 않고 도착하는 즉시 사용자에게 흘려보내는 응답 방식.
- 체감 응답 속도(TTFT, Time-To-First-Token)가 크게 줄어 UX가 결정적으로 좋아진다. 에이전트 UI의 사실상 표준.
일반 호출 vs 스트리밍
Python
무엇이 스트리밍되는가
- 텍스트 토큰 — 가장 흔함.
- Tool call 인자 — Tool Calling 호출 시 인자 JSON도 토큰 단위로.
- State 변화 (LangGraph) — 그래프 노드 단계마다 stream.
- Trajectory (ReAct 패턴) — Thought/Action/Observation 단위.
LangChain — astream
Python
LangGraph — 4가지 모드
Python
FastAPI로 사용자에게 전달
Python
- 프론트는
EventSource또는 fetch +getReader()로 수신.
흔한 함정
- 중간에 에러 — 이미 일부 토큰을 보낸 뒤 실패하면 정정 메시지를 어떻게 보낼지 미리 정해둘 것.
- 버퍼링 — nginx·CDN이 응답을 모아 한꺼번에 보내면 스트리밍 의미 없음.
X-Accel-Buffering: no헤더. - 토큰 카운트 — 스트리밍 중 token usage가 없거나 마지막 chunk에만 있음. 공급자별 차이 확인.
- 취소 — 사용자가 페이지를 떠나면 generator를 멈춰야 토큰 비용이 안 새 나간다.
관련
- 제너레이터(Generator) · async-await — 스트리밍의 파이썬 기초.
- LLM(Large Language Model) — 모델별 스트리밍 형식.
- Observability — 스트림 이벤트 트레이싱.