dbt Labs, 채팅 에이전트용 대시보드 언어 dbt Charts 오픈소스 공개
- dbt Labs가 대시보드를 단일 YAML 파일로 선언하는 dbt Charts를 Apache 2.0으로 오픈소스 공개함. SQL은 어떤 데이터를 볼지, YAML은 어떻게 볼지를 선언하는 구조임
- 차트 타입 16종과 1,100개 이상의 설정 옵션을 지원하고, 내부 렌더러로 vega-lite를 쓰되 그 위에 SQL 쿼리와 대시보드 레이어를 얹음
- dct render로 SVG, HTML, PNG, PDF, 터미널 출력을 로컬이나 CI에서 만들고 dct serve로 폴더를 사이트로 제공함
- dbt 프로젝트와 함께 쓰면 charts/ 디렉터리가 models/ 옆 같은 Git 저장소에 놓여 모델과 차트 변경이 한 브랜치에서 배포됨. 조만간 dbt CLI에 포함될 예정이고 지금은 프리뷰로 별도 도구로 제공 중임
- 배경으로 dbt Labs 창업자 Tristan Handy의 'BI의 두 번째 언번들링' 글을 인용하며, 차트를 UI에서 코드로 옮기는 것이 다음 단계라고 주장함
Hacker News opinions
안녕하세요, Chartio 창업자 Dave입니다. Claude 같은 에이전트로 대시보드 만들면 자유분방한 산출물이 쏟아져서 감사도 확장도 어려워지더라고요. 대시보드용 마크다운 같은 YAML 방언이고 dbt와 같이 Apache 2.0으로 오늘 공개했습니다.
축하합니다. 업계 표준을 누가 먼저 낼까 궁금했는데 dbt가 나섰네요. 널리 퍼졌으면 좋겠음.
바이브 코딩으로 나온 JS 슬롭 차트들 사이에서 희망이 보임. 읽을 수 있고 유지보수되고, 같은 데이터면 대시보드가 결정적으로 똑같이 재현되는 게 제일 맘에 듦.
에이전트한테 '이걸 dbt Charts로 차트 만들어봐' 시켰더니 uv tool install dbt-charts && dct skills intro 한 방으로 채용 인박스 대시보드를 뽑아주더라. 원샷 결과물이 의외로 쓸 만했음.
지메일 데이터를 ETL해서 여러 뷰와 리포트로 보는 걸 BI 문제로 취급하고 있는데, 채팅에서 이걸 더 잘 시각화하는 게 다음 과제임. dbt Charts 테이블 컴포넌트가 도움이 될 듯.
모두가 생성형 UI용 '모든 걸 지배하는 하나의 스펙'을 만들려 하지만 bitter lesson은 여전할 거라 봄. 모델이 원시 라이브러리로 처음부터 쓰는 걸 점점 잘하게 되면 이런 추상화는 무의미해질 수도.
도메인은 대시보드로 좁혔고 일부러 너무 일반화하지 않았음. 원시 HTML/SVG가 이길 수도 있지만, 차트 숫자가 어디서 왔는지 사람이 따라가 검증하기는 훨씬 쉬움. AI가 검증하는 미래에도 DSL이 일관성 유지와 토큰 절약에 유리할 것 같음.
좋긴 한데 블로그가 주장하는 만큼 혁신적이진 않음. BI는 이미 분리됐고 사람들은 AI로 엑셀과 Power BI 리포트를 뽑고 있음. YAML이든 XML이든 상관없고 AI는 시키는 대로 만들어줌. dbt의 논리적 발전일 뿐.
AI가 뭘 만들든 진짜 문제는 그 다음임. 재사용하려면 잘 정의된 구조가 필요하고, 그냥 YAML을 다시 에이전트한테 주면 처음과 전혀 다른 차트가 나옴.
Dave가 패러다임 전환을 주장하는 건 아닌 것 같음. 핵심 주장은 BI 툴 이전의 오래된 시각화 패턴에 기반해서 결과가 일관되게 예쁘게 나온다는 것과, 단순하고 유지보수 가능하다는 것임. 이미 다 할 수 있지만 조금 더 낫고 유지보수하기 쉬운 정도.
비슷한 걸 만들고 있었는데, 외부 서비스가 렌더링할 수 있는 재사용 가능한 시각화 산출물이 목표였음. 통합 스펙이 있으면 여러 에이전트 하네스가 같은 차트 언어를 쓰게 될 텐데, vega-lite와는 뭐가 다른가?
내부적으로 vega-lite를 씀. vega-lite는 정적 데이터로 차트를 조립하는 도구 상자고 dbt Charts는 그 위에 반복 가능한 SQL 쿼리와 대시보드 레이어를 얹음. 통합 차트 언어는 꿈이지만 그렇게 단순하면서 다재다능한 조합은 아직 없는 듯.
evidence.dev랑 비교하면 어떤가?
왜 데이터를 시각화하나. 차트는 수학 시간의 풀이 과정 같은 강제 공감각임. 로켓은 착륙하거나 안 하거나 둘 중 하나고, 맥락이 초점이어야 함.