피드로 돌아가기
Chat vs. Streaming: Don't Keep Your Users Waiting
Dev.toDev.to
AI/ML

LLM Latency 해결을 위한 Streaming 기반 실시간 피드백 아키텍처 전환

Chat vs. Streaming: Don't Keep Your Users Waiting

Lukas2026년 4월 28일3beginner

Context

LLM의 토큰 단위 생성 특성으로 인한 응답 지연 발생. 기존 RunAsync 방식의 Blocking 구조로 인해 전체 응답 완료 전까지 사용자 화면에 Loading 상태만 지속되는 UX 병목 지점 존재.

Technical Solution

  • RunStreamingAsync 도입을 통한 응답 데이터의 비동기 스트리밍 처리
  • await foreach 루프 기반의 실시간 토큰 수신 및 즉시 렌더링 구조 설계
  • 인터랙티브 UI 환경에서의 Perceived Latency 감소를 위한 실시간 피드백 메커니즘 구현
  • Structured Output(JSON) 필요 시 데이터 무결성 확보를 위해 RunAsync 유지하는 조건부 분기 전략 채택
  • 사용자와의 직접 상호작용 여부에 따른 Blocking vs Streaming 처리 방식의 아키텍처적 분리

- 사용자가 직접 대기하는 Chatbot UI에는 RunStreamingAsync를 우선 적용했는지 검토 - 배경 작업이나 Webhook, 이메일 발송 등 비대화형 프로세스에는 RunAsync를 통해 단순화된 로직 구성 - JSON 등 정형 데이터 파싱이 필요한 경우 Streaming을 배제하고 Full Response 수신 후 Deserialization 수행

원문 읽기