프롬프트·AI 활용

Streaming

스트리밍

AI 활용 분야에서 쓰이는 용어로, LLM이 응답을 다 완성한 다음 한꺼번에 보내지 않고 토큰 단위로 생성되는 즉시 사용자 화면에 실시간으로 흘려보내는 출력 방식입니다.

쉬운 풀이

Streaming은 사용자가 보낸 질문에 대해 LLM(Large Language Model, 거대 언어 모델)이 답을 다 만들어 놓고 통째로 던지는 대신, 토큰이 하나씩 만들어질 때마다 곧장 화면에 흘려보내는 출력 방식이에요. 카톡 보낼 때 상대가 다 쓰고 한 번에 보내는 게 아니라 '입력 중'이 뜨면서 한 줄씩 차오르는 감각과 비슷합니다. 전체 응답 시간 자체는 똑같지만 첫 글자가 보이는 시점이 앞당겨져 같은 모델·같은 답인데도 훨씬 빠르게 느껴져요. 챗봇·코딩 보조·음성 비서 같은 거의 모든 AI 제품의 기본 옵션입니다.

한 줄 비유
보고서를 다 쓰고 한 번에 결재 올리는 대신, 문단별로 실시간 공유하는 방식입니다.
활용 예시
Case 1

OpenAI Chat Completions — 챗봇 UX의 기본 옵션

OpenAI Chat Completions와 Responses API는 stream=true 플래그 하나로 토큰 단위 SSE 스트림을 반환합니다.[1] 응답 본문은 한 번에 오는 message 대신 delta 필드에 담겨, 화면에 즉시 출력 가능합니다.[1] 업계 가이드라인은 챗봇이 "반응한다"고 느끼려면 TTFT가 500ms 이하여야 한다고 봅니다.[4] 사용자 설문이나 GPT 기반 상담 챗봇을 만들 때 기본값으로 켜 두는 옵션입니다.

Case 2

네이버 클로바 — 한국어 실시간 음성 인식 스트리밍

NAVER Cloud Platform CLOVA Speech Recognition은 16kHz·16bit PCM 음성을 gRPC 스트리밍 프로토콜로 받아 텍스트로 변환합니다.[5] 회의록·콜센터 STT처럼 발화 중에도 자막이 차오르도록 설계되어 있고, 한국어 인식률에 특화돼 있습니다.[5] 강의 자막, 콜센터 상담사 보조 화면, 회의록 실시간 공유 같은 화면에 그대로 붙일 수 있는 방식입니다.

Case 3

Anthropic Messages API — 에이전트 추론 과정 노출

Anthropic Messages API는 스트리밍 시 message_start로 빈 메시지 골격을 먼저 보내고, content_block_start / content_block_delta / content_block_stop 이벤트를 블록 단위로 흘려보낸 뒤 message_delta·message_stop으로 마무리합니다.[2] 에이전트가 도구를 호출하거나 사고 과정을 단계별로 노출할 때, 사용자 화면에 "지금 어디까지 했는지"가 그대로 보이게 됩니다.[2] 코딩 에이전트·리서치 에이전트의 진행 상황 표시 UI에 사용하기 좋은 구조입니다.

Case 4

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차 응대, 외국어 회화 학습 같은 음성 인터페이스의 기본 골격으로 검토해 볼 수 있습니다.

참고사항
  1. 직접 만든 챗봇 호출부에 stream=true(OpenAI) 또는 "stream": true(Anthropic)를 추가하고 TTFT(Time To First Token)를 ms 단위로 측정합니다
  2. 프런트엔드에서 EventSource 또는 fetch ReadableStream으로 토큰을 받아 화면에 누적해 그리고, 부드럽게 보이도록 마이크로 애니메이션을 얹습니다
  3. 사용자 중단(Stop) 버튼을 만들고 스트림을 끊었을 때 어디까지 과금되는지 토큰 사용량 로그를 확인합니다
  4. SSE 도중 네트워크 끊김·타임아웃을 일부러 발생시켜 에러 핸들링과 재연결 분기를 점검하고, 부분 응답을 어떻게 화면에서 처리할지 정합니다
  5. JSON·툴 호출 인자 같은 구조화 출력은 스트림이 끝난 뒤 한 번에 파싱하도록 통상 응답과 분리하고, 정규 표현식이 아닌 정식 파서를 통과시킵니다

스트리밍은 체감 응답 시간만 줄여 줄 뿐, 전체 생성 시간이나 토큰 비용 자체는 그대로입니다.[4] 부분 응답을 한 토큰씩 받기 때문에 JSON·툴 호출 인자처럼 구조화된 출력은 끝까지 모은 뒤 파싱해야 하고, 중간에 연결이 끊기면 어디까지 받았는지 클라이언트가 스스로 상태를 관리해야 합니다.[1][2] 또한 SSE는 HTTP/1.1 위에서는 브라우저당 동시 연결 수가 제한되고, 프록시·CDN의 버퍼링 때문에 청크가 묶여 한꺼번에 도착하는 문제가 발생하며, 결과 콘텐츠가 부분만 노출되는 단계에서 안전성·할루시네이션 필터를 어떻게 적용할지도 별도 설계 사안입니다.[3] 운영 환경에서는 keep-alive 핑 이벤트와 재시도 정책, 그리고 토큰 누적 비용 모니터링까지 함께 갖춰야 안정적으로 운영할 수 있습니다.[2]

진화 방향은 두 갈래입니다.

  1. 텍스트를 넘어 음성·이미지까지 양방향으로 흘리는 멀티모달 실시간 스트리밍입니다. OpenAI Realtime API는 WebRTC를 채택해 음성 응답 지연을 깎고 사용자 끼어들기(barge-in)를 표방하고 있으며, 공식 음성 에이전트 가이드는 WebRTC를 클라이언트용, WebSocket을 백엔드용, SIP를 전화용 전송으로 권장합니다.[6][8]
  2. 네이버 클로바의 Speech X처럼 별도의 STT·TTS 모듈 없이 LLM 한 모델로 음성 입출력을 처리하는 음성 대화 LLM 흐름이 등장하고 있으며, HyperCLOVA X 기반의 한국어 음성 스트리밍 사례가 기술 블로그에 공개되어 있습니다.[7]
이 용어와의 관계
  • 유사 개념
    Prompt Version같은 프롬프트·AI 활용 갈래에서 자주 함께 등장하는 개념입니다.
  • 유사 개념
    Prompt Library같은 프롬프트·AI 활용 갈래에서 자주 함께 등장하는 개념입니다.
  • 유사 개념
    Persona Prompting같은 프롬프트·AI 활용 갈래에서 자주 함께 등장하는 개념입니다.
관련 태그
참고 자료
  1. Streaming API responses — 공식 문서 · OpenAI Platform · 2024
  2. Streaming Messages — 공식 문서 · Anthropic Claude Docs · 2024
  3. Server-sent events — HTML Living Standard §9.2 — 표준 명세 · WHATWG / W3C Recommendation · 2015
  4. Reducing Time-to-First-Token in LLMs Through Streaming — 기술 분석 · BotBeat · 2024
  5. 실시간 스트리밍 인식 (CLOVA Speech gRPC) — 공식 문서 · NAVER Cloud Platform
  6. Realtime API with WebRTC — 공식 문서 · OpenAI Platform · 2024
  7. HyperCLOVA X 기반 음성 합성 기술 (AudioLLM) — 기술 블로그 · NAVER CLOVA · 2024
  8. Voice agents guide — 공식 문서 · OpenAI Platform · 2024
대표 출처OpenAI 공식 가이드 — Streaming API responses; Anthropic Messages API Streaming; WHATWG HTML §9.2 Server-Sent Events