AI는 왜 한 글자씩 답변할까?

이건선·2026년 2월 1일

해결

목록 보기
59/66

"왜 AI는 답변을 한 번에 주지 않고, 타이핑하듯 한 글자씩 보여줄까?"


단순한 궁금증

ChatGPT, Claude, Gemini 등 생성형 AI 서비스를 사용하다 보면 공통적으로 눈에 띄는 현상이 있다.

질문을 던지면 답변이 한꺼번에 "짠!" 하고 나타나는 게 아니라, 마치 누군가 실시간으로 타이핑하는 것처럼 글자가 하나씩 흘러나온다.

처음에는 단순히 "사용자 경험을 위한 애니메이션 효과인가?" 싶었다. 하지만 조금 더 생각해보니 의문이 들었다.

  • 정말 UI 효과일 뿐일까?
  • 아니면 AI가 실제로 그렇게 동작하는 걸까?
  • 기술적으로 어떻게 구현된 걸까?

AI는 "문장 생성기"가 아니라 "다음 글자 예측기"

먼저 생성형 AI의 근본적인 동작 원리를 이해할 필요가 있었다.

자기회귀(Autoregressive) 생성 방식

대형 언어 모델(LLM)은 자기회귀적(autoregressive) 방식으로 텍스트를 생성한다.

❌ 전체 문장을 한 번에 만들어서 출력
✅ 다음에 올 토큰 1개를 예측 → 붙이기 → 반복

예를 들어 "Kafka는 어떻게 동작하나요?"라는 질문에 답할 때:

Step현재까지의 텍스트예측된 다음 토큰
1Kafka는분산
2Kafka는 분산메시지
3Kafka는 분산 메시지브로커
4Kafka는 분산 메시지 브로커입니다
.........

이 과정이 종료 토큰이 나올 때까지 수백~수천 번 반복된다.

사용자 경험(UX)

  • 긴 답변의 경우 완성까지 10초 이상 걸릴 수 있다
  • 아무 반응 없이 10초를 기다리는 것 vs 즉시 글자가 나타나기 시작하는 것
  • 심리적 체감 대기 시간 감소

실제 데이터로 확인해보자

이론은 알겠는데, 실제로 그렇게 동작하는지 직접 눈으로 확인하고 싶었다.

실험 환경 구성

  1. ChatGPT에서 질문 입력
  2. Chrome 개발자 도구(DevTools)의 Network 탭 열기
  3. HAR 파일로 네트워크 트래픽 저장
  4. 저장된 데이터 분석

ChatGPT는 SSE(Server-Sent Events) 프로토콜을 사용하고 있었다.

HTTP 헤더

Request Headers (클라이언트 → 서버):

accept: text/event-stream
content-type: application/json

Response Headers (서버 → 클라이언트):

content-type: text/event-stream; charset=utf-8
cache-control: no-store

text/event-stream이 바로 SSE 프로토콜의 시그니처다.

SSE란?

SSE는 서버에서 클라이언트로 단방향 실시간 데이터 스트리밍을 가능하게 하는 웹 표준 기술이다.

특징설명
방향서버 → 클라이언트 (단방향)
연결HTTP 연결 유지 (keep-alive)
형식텍스트 기반, 간단한 구조
재연결자동 재연결 지원

WebSocket과 비교하면:

구분SSEWebSocket
방향단방향양방향
프로토콜HTTPWS/WSS
복잡도낮음높음
사용 사례알림, 스트리밍채팅, 게임

AI 응답 스트리밍은 서버→클라이언트 단방향이므로 SSE가 적합하다.


실제 스트리밍 데이터 구조

event: delta
data: {"v": "아주"}

event: delta
data: {"v": " 좋은 관"}

event: delta
data: {"v": "찰입니다"}

event: delta
data: {"v": ".  \n많은 사람들이"}

event: delta
data: {"v": " **"왜 한 번에 결과"}

"글자"가 아니라 "토큰"

실제 전송 단위를 보면 정확히 한 글자씩이 아니다:

순서전송된 토큰
1"아주"
2" 좋은 관"
3"찰입니다"
4". \n많은 사람들이"
5" **"왜 한 번에 결과"

토큰은 단어, 서브워드, 또는 여러 글자의 조합일 수 있다. 한국어의 경우 음절이나 형태소 경계에서 분리되는 경향이 있어 "글자 단위"처럼 보이는 것이다.

SSE 요청의 경우 EventStream이라는 특별한 탭이 나타난다

이 탭에서 실시간으로 전송되는 delta 이벤트들을 확인할 수 있다.


💡 배운 점 정리

1. AI의 동작 원리

생성형 AI는 전체 문장을 한 번에 만드는 게 아니라, 다음 토큰을 하나씩 예측하며 순차적으로 생성한다. 이것이 자기회귀(autoregressive) 생성 방식이다.

2. 스트리밍의 필요성

토큰이 생성될 때마다 즉시 사용자에게 전송하면:

  • 체감 대기 시간 감소
  • 조기 중단 가능

3. 기술적 구현

ChatGPT는 SSE(Server-Sent Events) 프로토콜을 사용한다:

  • 요청: accept: text/event-stream
  • 응답: content-type: text/event-stream
  • 데이터: event: delta + data: {"v": "토큰"}
profile
멋지게 기록하자

0개의 댓글