AI도구 활용

AI 챗봇은 표나 이미지를 대화창에 어떻게 그릴까

표 하나도 그냥 한 번에 뜨는 게 아니라, 토큰이 쌓이고 화면이 다시 그려지면서 묘하게 살아 움직이는 느낌이 난다. 왜 그렇게 보이는지 궁금해서 찾아봤다.

2026-05-20#ChatGPT#Claude#스트리밍#Markdown#이미지 생성

표가 한 칸씩 그려지는 것처럼 보이던 순간

ChatGPT나 Claude로 표를 만들어 보면 이상하게 손맛 같은 게 있다.

결과가 한 번에 딱 뜨는 게 아니라, 줄이 생기고 칸이 맞춰지고, 내용이 조금씩 채워지면서 표가 만들어지는 느낌이 난다.

처음에는 그냥 화면 효과겠거니 했는데, 쓰다 보면 궁금해진다. 이게 진짜 표라는 별도 객체를 보내는 건지, 아니면 텍스트인데 화면이 알아서 표처럼 보이게 하는 건지.

찾아보면 일단 기본 답은 생각보다 단순하다. 대화창에서 보이는 표는 “표 전용 파일”이 아니라 **스트리밍으로 전달되는 텍스트**에 더 가깝다.

표가 서서히 그려지는 이유

핵심은 답변이 한 번에 통째로 도착하지 않는다는 점이다.

ChatGPT나 Claude 같은 서비스는 답변을 조금씩 보내고, 화면은 그걸 이어 붙이면서 바로 보여 준다. Claude streaming docs (영어 주의), OpenAI Responses API (영어 주의)

그래서 표도 보통 이런 식으로 만들어진다.

  1. 모델이 표 내용을 텍스트로 조금씩 생성한다
  2. 클라이언트가 그 텍스트를 실시간으로 이어 붙인다
  3. 이어 붙인 결과가 마크다운 표나 정렬된 텍스트처럼 보이면, 화면에서 다시 표처럼 렌더링한다

이 과정 때문에 표가 “서서히 그려지는 느낌”이 난다. 셀 하나하나가 따로 날아오는 것처럼 보이지만, 실제로는 표를 만들 수 있는 텍스트가 점점 완성되고 있다고 보면 된다.

그럼 표는 보통 어떤 규격으로 오는 걸까

대부분의 경우 표는 **마크다운 표** 또는 그와 비슷한 정렬 텍스트에 가깝다.

예를 들면 실제로는 이런 텍스트 조각이 먼저 오고, 화면이 그걸 보기 좋은 형태로 다시 그려 주는 느낌에 가깝다.

| 형식 | 특징 |
| --- | --- |
| JSON | 가볍고 구조적 |
| CSV | 단순하지만 오해가 많음 |

이런 문자열을 클라이언트가 읽어서 표처럼 다시 그려 주면, 화면에서는 원래부터 표 전용 UI가 있었던 것처럼 느껴진다.

그래서 복사해 보면 의외로 원본이 그냥 텍스트인 경우가 많다. 특히 일반 대화창 표는 이쪽일 때가 많다.

표 말고도 비슷하게 보이는 것들

표만 그런 건 아니다. 대화창에서 “텍스트 이상으로 보이는 것들”은 생각보다 여러 층이 있다.

리스트

- 첫 번째 항목
- 두 번째 항목
- 세 번째 항목

가장 단순한 예지만, 이것도 결국은 텍스트다. 화면에서 글머리표 목록처럼 다시 정리해서 보여 주기 때문에 그냥 리스트가 나온 것처럼 느껴진다.

코드 블록

가장 흔하다. 삼중 백틱으로 감싼 텍스트가 코드 블록처럼 렌더링된다.

```python
print("hello")
```

눈에는 별도 박스처럼 보이지만, 많은 경우 시작은 그냥 텍스트다. 클라이언트가 문법을 보고 코드 블록 UI로 그려 준다.

수식

수식도 비슷하다. 화면에서는 예쁘게 정리된 수학 식처럼 보이지만, 안쪽은 LaTeX 문법 비슷한 텍스트인 경우가 많다.

\(E = mc^2\)

이건 모델이 “수식용 데이터 구조”를 직접 보내기보다, 수식 문법이 들어 있는 텍스트를 보내고 클라이언트가 다시 렌더링하는 쪽에 가깝다고 보는 편이 자연스럽다. 이 부분은 제품 문서에서 세세하게 다 설명해 두지는 않아서, 화면 동작을 보고 추정하는 성격이 있다.

이미지는 왜 점점 선명해지는 것처럼 보일까

이미지 쪽은 표와는 조금 다르게 보인다.

정말 “처음엔 흐릿했다가 점점 또렷해진다”는 느낌이 난다. 그래서 마치 이미지가 눈앞에서 천천히 만들어지는 것처럼 보일 때가 있다.

여기서 두 가지를 나눠 보는 게 좋다.

1. 이미지 생성 모델 쪽

일반적으로 요즘 이미지 생성 모델은 노이즈가 많은 상태에서 점점 이미지를 다듬어 가는 계열로 많이 알려져 있다. 흔히 diffusion이라고 부르는 방식이 여기 들어간다. 조금 더 깊게 보고 싶다면 Hugging Face의 diffusion 모델 소개 (전문성 주의)를 같이 볼 수 있다.

다만 ChatGPT나 Claude 화면에서 보이는 “점점 선명해지는 모습”이 내부 생성 과정을 그대로 보여 주는지는 별개 문제다. 공식 제품 문서는 보통 최종 이미지를 어떻게 생성하고 편집하는지 설명하지, 대화창에서 어떤 애니메이션으로 보여 주는지까지 세세하게 말해 주진 않는다. OpenAI도 현재 문서에서는 이미지 생성/편집 API와 모델 특성을 설명하는 쪽이 중심이다. OpenAI image generation guide (영어 주의), OpenAI image generation API 소개 (영어 주의)

2. 화면 표시 쪽

이 “점점 또렷해지는 느낌”은 UI 표시 방식 영향도 꽤 크다.

  • 먼저 작은 미리보기를 보여 주고 나중에 큰 이미지를 불러올 수도 있고
  • 블러 처리된 프리뷰를 먼저 보여 준 뒤 원본으로 바꿀 수도 있고
  • 네트워크 전송이 끝나는 동안 점진적으로 디코딩해서 그럴 수도 있다

즉 화면에서 흐릿하다가 선명해지는 장면만 보고 “아, 이건 내부 생성 과정을 그대로 보여 주는구나”라고 단정하긴 어렵다. 실제로는 **생성 방식**과 **UI 표시 방식**이 겹쳐 보이는 경우가 많다.

막상 써 보면 제일 흥미로운 지점

결국 챗봇은 생각보다 많은 걸 “텍스트처럼 보내고, 화면이 다시 그려 주는 방식”으로 보여 준다.

표가 신기했던 이유도 사실 표 자체가 마법이라기보다, 스트리밍되는 텍스트가 점점 구조를 갖추고, 그걸 클라이언트가 다시 표처럼 보이게 만들기 때문인 경우가 많다.

그래서 대화창을 보다 보면 “모델이 뭘 그렸다”기보다, **텍스트로 온 답변이 어디서부터 화면에서 다시 그려지기 시작하는가**를 보는 재미가 생긴다.

관련 글

같은 맥락에서 이어서 읽기 좋은 글들입니다.

더 읽어보기

같은 주제를 다룬 다른 글이나 실제 활용사례를 이어서 확인해 보세요.