Streaming
스트리밍
AI 활용 분야에서 쓰이는 용어로, LLM이 응답을 다 완성한 다음 한꺼번에 보내지 않고 토큰 단위로 생성되는 즉시 사용자 화면에 실시간으로 흘려보내는 출력 방식입니다.
Streaming은 사용자가 보낸 질문에 대해 LLM(Large Language Model, 거대 언어 모델)이 답을 다 만들어 놓고 통째로 던지는 대신, 토큰이 하나씩 만들어질 때마다 곧장 화면에 흘려보내는 출력 방식이에요. 카톡 보낼 때 상대가 다 쓰고 한 번에 보내는 게 아니라 '입력 중'이 뜨면서 한 줄씩 차오르는 감각과 비슷합니다. 전체 응답 시간 자체는 똑같지만 첫 글자가 보이는 시점이 앞당겨져 같은 모델·같은 답인데도 훨씬 빠르게 느껴져요. 챗봇·코딩 보조·음성 비서 같은 거의 모든 AI 제품의 기본 옵션입니다.
보고서를 다 쓰고 한 번에 결재 올리는 대신, 문단별로 실시간 공유하는 방식입니다.
OpenAI Chat Completions — 챗봇 UX의 기본 옵션
OpenAI Chat Completions와 Responses API는 stream=true 플래그 하나로 토큰 단위 SSE 스트림을 반환합니다.[1] 응답 본문은 한 번에 오는 message 대신 delta 필드에 담겨, 화면에 즉시 출력 가능합니다.[1] 업계 가이드라인은 챗봇이 "반응한다"고 느끼려면 TTFT가 500ms 이하여야 한다고 봅니다.[4] 사용자 설문이나 GPT 기반 상담 챗봇을 만들 때 기본값으로 켜 두는 옵션입니다.
네이버 클로바 — 한국어 실시간 음성 인식 스트리밍
NAVER Cloud Platform CLOVA Speech Recognition은 16kHz·16bit PCM 음성을 gRPC 스트리밍 프로토콜로 받아 텍스트로 변환합니다.[5] 회의록·콜센터 STT처럼 발화 중에도 자막이 차오르도록 설계되어 있고, 한국어 인식률에 특화돼 있습니다.[5] 강의 자막, 콜센터 상담사 보조 화면, 회의록 실시간 공유 같은 화면에 그대로 붙일 수 있는 방식입니다.
Anthropic Messages API — 에이전트 추론 과정 노출
Anthropic Messages API는 스트리밍 시 message_start로 빈 메시지 골격을 먼저 보내고, content_block_start / content_block_delta / content_block_stop 이벤트를 블록 단위로 흘려보낸 뒤 message_delta·message_stop으로 마무리합니다.[2] 에이전트가 도구를 호출하거나 사고 과정을 단계별로 노출할 때, 사용자 화면에 "지금 어디까지 했는지"가 그대로 보이게 됩니다.[2] 코딩 에이전트·리서치 에이전트의 진행 상황 표시 UI에 사용하기 좋은 구조입니다.
OpenAI Realtime API — 음성 에이전트 sub-300ms 응답
OpenAI Realtime API는 WebRTC 또는 WebSocket으로 오디오·텍스트·이벤트를 양방향 스트리밍합니다.[6] 공식 가이드는 음성 에이전트의 voice-to-voice P50을 800ms, P95를 1.4초 이내로 잡으라고 안내하며, gpt-realtime은 사용자 끼어들기(barge-in)와 자연스러운 턴 교대를 전제로 설계되어 있습니다.[6][8] 매장 예약 응대, 콜센터 1차 응대, 외국어 회화 학습 같은 음성 인터페이스의 기본 골격으로 검토해 볼 수 있습니다.
- 직접 만든 챗봇 호출부에
stream=true(OpenAI) 또는"stream": true(Anthropic)를 추가하고 TTFT(Time To First Token)를 ms 단위로 측정합니다 - 프런트엔드에서
EventSource또는fetchReadableStream으로 토큰을 받아 화면에 누적해 그리고, 부드럽게 보이도록 마이크로 애니메이션을 얹습니다 - 사용자 중단(Stop) 버튼을 만들고 스트림을 끊었을 때 어디까지 과금되는지 토큰 사용량 로그를 확인합니다
- SSE 도중 네트워크 끊김·타임아웃을 일부러 발생시켜 에러 핸들링과 재연결 분기를 점검하고, 부분 응답을 어떻게 화면에서 처리할지 정합니다
- JSON·툴 호출 인자 같은 구조화 출력은 스트림이 끝난 뒤 한 번에 파싱하도록 통상 응답과 분리하고, 정규 표현식이 아닌 정식 파서를 통과시킵니다
스트리밍은 체감 응답 시간만 줄여 줄 뿐, 전체 생성 시간이나 토큰 비용 자체는 그대로입니다.[4] 부분 응답을 한 토큰씩 받기 때문에 JSON·툴 호출 인자처럼 구조화된 출력은 끝까지 모은 뒤 파싱해야 하고, 중간에 연결이 끊기면 어디까지 받았는지 클라이언트가 스스로 상태를 관리해야 합니다.[1][2] 또한 SSE는 HTTP/1.1 위에서는 브라우저당 동시 연결 수가 제한되고, 프록시·CDN의 버퍼링 때문에 청크가 묶여 한꺼번에 도착하는 문제가 발생하며, 결과 콘텐츠가 부분만 노출되는 단계에서 안전성·할루시네이션 필터를 어떻게 적용할지도 별도 설계 사안입니다.[3] 운영 환경에서는 keep-alive 핑 이벤트와 재시도 정책, 그리고 토큰 누적 비용 모니터링까지 함께 갖춰야 안정적으로 운영할 수 있습니다.[2]
진화 방향은 두 갈래입니다.
- 텍스트를 넘어 음성·이미지까지 양방향으로 흘리는 멀티모달 실시간 스트리밍입니다. OpenAI Realtime API는 WebRTC를 채택해 음성 응답 지연을 깎고 사용자 끼어들기(barge-in)를 표방하고 있으며, 공식 음성 에이전트 가이드는 WebRTC를 클라이언트용, WebSocket을 백엔드용, SIP를 전화용 전송으로 권장합니다.[6][8]
- 네이버 클로바의 Speech X처럼 별도의 STT·TTS 모듈 없이 LLM 한 모델로 음성 입출력을 처리하는 음성 대화 LLM 흐름이 등장하고 있으며, HyperCLOVA X 기반의 한국어 음성 스트리밍 사례가 기술 블로그에 공개되어 있습니다.[7]
- 유사 개념Prompt Version같은 프롬프트·AI 활용 갈래에서 자주 함께 등장하는 개념입니다.
- 유사 개념Prompt Library같은 프롬프트·AI 활용 갈래에서 자주 함께 등장하는 개념입니다.
- 유사 개념Persona Prompting같은 프롬프트·AI 활용 갈래에서 자주 함께 등장하는 개념입니다.
- Streaming API responses — 공식 문서 · OpenAI Platform · 2024
- Streaming Messages — 공식 문서 · Anthropic Claude Docs · 2024
- Server-sent events — HTML Living Standard §9.2 — 표준 명세 · WHATWG / W3C Recommendation · 2015
- Reducing Time-to-First-Token in LLMs Through Streaming — 기술 분석 · BotBeat · 2024
- 실시간 스트리밍 인식 (CLOVA Speech gRPC) — 공식 문서 · NAVER Cloud Platform
- Realtime API with WebRTC — 공식 문서 · OpenAI Platform · 2024
- HyperCLOVA X 기반 음성 합성 기술 (AudioLLM) — 기술 블로그 · NAVER CLOVA · 2024
- Voice agents guide — 공식 문서 · OpenAI Platform · 2024
이 페이지에 대한 의견을 남겨주세요
여러분의 의견은 다음 갱신에 반영됩니다.