DevOps 엔지니어들은 평소 서버 성능, 배포 현황, 에러율을 모니터링하며 여러 대시보드를 확인합니다. Grafana나 Datadog과 같은 모니터링, 시각화 도구들이 있지만, 일반적으로 사전에 구성한 대시보드를 사용하다 보니 새로운 관점의 분석이 필요할 때마다 쿼리 문법을 작성하거나 패널을 수동으로 구성해야 합니다. 예상치 못한 장애 패턴을 분석하려면 즉석에서 쿼리를 작성해야 해 초기 대응이 늦어질 수 있습니다.
만약 자연어 질문만으로 AI가 필요한 차트를 즉시 생성해 준다면 어떨까요? Generative UI는 사용자의 자연어 질문을 이해하고, 그에 맞는 UI 컴포넌트를 동적으로 생성하는 기술입니다. 이 글에서는 Generative UI를 활용해 자연어 질문으로 GitLab 데이터를 조회하고, 사용자 의도에 따라 적절한 차트를 동적으로 생성하는 방법을 알아보겠습니다.
Generative UI 개요
먼저 Generative UI의 개념과 필요성, 핵심 요소와 동작 방식을 살펴보겠습니다.
개념
Generative UI는 자연어 입력을 해석해 사전에 정의된 UI 컴포넌트 체계 안에서 해당 의도에 맞는 UI를 동적으로 생성하는 기술입니다. 이는 고정된 형태로 사전에 만든 대시보드를 보여주는 게 아니라, 사용자의 요청 시점에 필요한 차트, 테이블, 인터랙티브 요소를 적절한 형태로 생성해 화면에 반영합니다. Generative UI는 임의의 UI를 무제한 생성하는 기술이 아니라, 시스템 지시와 후처리를 거쳐 제약되고 검증된, 안전한 UI를 생성하는 게 핵심입니다.
필요성
ChatGPT나 Gemini와 같은 LLM은 기본적으로 텍스트에 기반해 응답을 생성합니다. 그러나 복잡한 데이터를 분석할 때는 텍스트만으로 시계열 패턴, 지표 간 상관관계, 분포 변화 등을 직관적으로 파악하기 어렵습니다.
Generative UI는 자연어 입력을 기반으로 React 컴포넌트나 인터랙티브 UI 조각을 생성해 렌더링하도록 지원함으로써 이 한계를 보완합니다. 이로써 개발자가 모든 화면을 미리 구성할 필요 없이, 사용자의 요구에 따라 실시간으로 변화하는 UI를 조립, 생성할 수 있습니다.
핵심 요소
Google Research의 논문 “Generative UI: LLMs are Effective UI Generators”에서는 다음 세 가지 요소에 따라 Generative UI를 구현했다고 밝힙니다.

- 도구 접근(Tool access): 서버는 이미지 생성, 웹 검색과 같은 주요 도구로 접근을 제공합니다.
- 면밀히 설계된 시스템 지시(Carefully crafted system instructions): 시스템은 목표, 계획, 예시와 더불어 포맷팅, 도구 매뉴얼, 일반적인 오류를 피하는 팁을 포함한 기술 사양이 담긴 상세 지시에 따라 운영됩니다.
- 후처리(Post-processing): 모델의 출력은 잠재적인 문제를 해결하기 위해 일련의 후처리 과정을 거칩니다.
동작 방식
Generative UI 시스템의 동작 흐름은 다음과 같습니다.
- 사용자 요청: 사용자가 자연어로 질문하거나 작업을 지시합니다.
- 도구 결정, 실행: 시스템은 요청을 분석해 API 호출, 데이터 조회, 이미지 생성 등 필요한 도구를 판단하고 실행합니다.
- 시스템 지시 해석: LLM은 면밀히 설계된 시스템 지시를 참고해 어떤 UI 요소를 사용할지, 도구 결과를 어떻게 UI에 반영할지를 결정합니다.
- UI 코드 생성: LLM은 위 정보를 바탕으로 시스템이 정의한 UI 형식에 맞는 코드를 생성합니다. 구현 방식은 시스템마다 다를 수 있습니다.
- 후처리: 생성된 코드가 실행 가능한지, 보안상 안전한지, 시스템 제약을 준수하는지 검증 과정을 거칩니다.
- 렌더링: 검증된 코드가 샌드박스 환경에서 안전하게 실행돼 UI로 렌더링됩니다.
Generative UI는 위 과정을 거쳐 사용자의 자연어 의도를 이해하고, 그 의도에 적합한 UI를 안전하게 동적으로 생성해 즉시 화면에 반영할 수 있습니다.