개발자가 UI를 설계하지 않는 시대: Agentic Dynamic UI의 등장
지금까지의 사용자 경험(UX) 설계는 기획자와 개발자가 미리 정해놓은 시나리오 안에서만 움직였어요. 사용자가 마주할 수 있는 모든 경우의 수를 예측해서 화면을 만들고, 코드 곳곳에 조건문을 심어두는 방식이었죠. 하지만 이제는 서버 스트림 기술과 AI 에이전트의 결합으로, 유저의 맥락에 맞춰 실시간으로 UI가 생성되는 새로운 패러다임이 열리고 있어요.

-
서버 스트림 (Server Stream) 서버는 SSE(Server-Sent Events)를 통해 JSONL 형태의 스트림 데이터를 클라이언트로 실시간 전송해요. 이 데이터는 화면의 설계도 역할을 하죠.
-
클라이언트 버퍼링 (Client Buffering) 클라이언트는 들어오는 메시지를 파싱해서 UI의 뼈대인
surfaceUpdate를 저장하고, 동시에 UI에 들어갈 실제 데이터인dataModelUpdate를 구축해요. -
렌더링 신호 (Render Signal) 콘텐츠가 덜 온 상태에서 화면이 깜빡이며 나타나면 안 되겠죠? 서버가
beginRendering신호를 보낼 때까지 클라이언트는 기다렸다가 완벽한 시점에 화면을 그려요. -
클라이언트 측 렌더링 (Client-Side Rendering) 이제 클라이언트는 루트부터 트리를 순회하며 데이터 바인딩을 해결해요. 위젯 레지스트리에서 필요한 네이티브 위젯을 찾아 인스턴스화하는 마법 같은 단계예요.
-
사용자 상호작용 (User Interaction) 사용자가 버튼을 클릭하거나 값을 입력하면, 클라이언트는 유저의 의도가 담긴
userAction페이로드를 즉시 생성해요. -
이벤트 처리 (Event Handling) 생성된 액션 정보는 별도의 A2A(Agent-to-Agent) 메시지를 통해 서버로 전달되어 에이전트가 다음 행동을 판단하게 만들어요.
-
동적 업데이트 (Dynamic Updates) 이벤트를 처리한 서버는 다시 기존 SSE 스트림을 통해 새로운 UI 정의나 데이터 모델을 보내요. 이 과정을 통해 화면은 실시간으로 끊김 없이 갱신된답니다.
에이전트가 화면을 빚어내는 정교한 과정 이 기술의 핵심은 서버가 완성된 화면을 보내는 것이 아니라, UI를 구성할 수 있는 설계도를 실시간 스트림으로 전송한다는 점에 있어요. 서버는 SSE(Server-Sent Events)를 통해 데이터를 보내고, 클라이언트는 이 메시지를 파싱해서 컴포넌트 정의와 데이터 모델을 차곡차곡 쌓아두죠. 이때 가장 인상적인 부분은 렌더링 신호를 제어하는 방식이에요. 데이터가 다 오지 않았을 때 화면이 깜빡거리는 현상을 막기 위해, 서버가 모든 준비가 끝났다는 신호를 보낼 때만 클라이언트가 렌더링을 시작하거든요. 클라이언트는 미리 약속된 위젯 레지스트리에서 필요한 네이티브 컴포넌트를 찾아 순식간에 화면을 조립해내요. 유저가 버튼을 누르는 등의 액션을 취하면, 이 정보는 다시 서버의 에이전트에게 전달되어 다음 화면을 실시간으로 업데이트하게 돼요.
하드코딩된 분기문에서 에이전트의 자율적 판단으로 우리가 특히 주목해야 할 변화는 더 이상 유저 플로우에 따른 화면을 일일이 만들 필요가 없어진다는 거예요. 예를 들어 예전에는 여성 유저와 남성 유저에게 각각 다른 질문 폼을 보여주기 위해 개발자가 직접 코드로 분기 처리를 해야 했어요. 하지만 이제는 에이전트가 유저의 특성을 파악해서 그 현장에서 즉석으로 최적화된 폼과 데이터 모델을 구성해요. 개발자가 "여성에게는 이런 질문이 적합해"라고 미리 모든 화면을 그려두는 게 아니라, 에이전트가 판단하여 UI를 동적으로 재구성하고 실시간으로 전달하는 방식이죠.
우리가 맞이할 새로운 역할과 책임 이런 시대가 오면 개발자와 PM의 역할도 크게 달라질 수밖에 없어요. 단순히 버튼의 위치를 정하고 화면을 구현하는 단계를 넘어, 에이전트가 UI를 생성할 때 지켜야 할 가이드라인과 정책을 설계하는 게 핵심 업무가 될 거예요. 에이전트가 혹시라도 잘못된 UI를 만들지 않도록 제어 장치를 마련하고, 보안이나 디자인 시스템의 일관성을 유지할 수 있도록 정교한 '제약 조건'을 설정하는 능력이 중요해지겠죠. 결국 미래의 UI 개발은 고정된 결과물을 만드는 작업이 아니라, 에이전트가 유저와 상호작용하며 최상의 경험을 만들어낼 수 있는 지능형 환경을 구축하는 과정이 될 것으로 보여요.