DAC – AI 에이전트와 사람 모두를 위한 오픈소스 Dashboard-as-Code 툴
Show HN: DAC – open-source dashboard as code tool for agents and humans
TL;DR Highlight
YAML과 TSX로 대시보드를 코드처럼 정의하고, AI 에이전트가 자동으로 생성·수정할 수 있도록 설계된 오픈소스 대시보드 빌더. 에이전트가 만든 대시보드를 사람이 리뷰 가능한 형태로 표준화한다는 게 핵심.
Who Should Read
데이터 엔지니어나 백엔드 개발자 중 AI 에이전트로 대시보드 생성을 자동화하고 싶거나, Git 기반 리뷰 워크플로우에 대시보드를 통합하고 싶은 사람.
Core Mechanics
- DAC는 대시보드를 YAML 또는 TSX(TypeScript JSX) 파일로 정의하는 오픈소스 툴로, 코드처럼 버전 관리·리뷰·자동화가 가능하다.
- AI 에이전트(Codex 기반)가 내장되어 있어서 채팅으로 대화하면 대시보드가 실시간으로 수정된다. 에이전트가 생성한 결과물이 YAML/TSX 파일로 남기 때문에 사람이 PR처럼 리뷰할 수 있다.
- 시맨틱 레이어(Semantic Layer)가 내장되어 있다. `semantic/` 디렉토리에 메트릭과 디멘전을 한 번만 정의해두면 어느 위젯에서든 참조할 수 있고, DAC가 SQL을 자동 생성한다.
- Postgres, MySQL, Snowflake, BigQuery, Redshift, Databricks 등 주요 데이터베이스를 모두 지원한다. 내부적으로 Bruin CLI를 통해 쿼리를 실행하므로, Bruin이 설치되어 있어야 한다.
- TSX 방식으로 Dashboard 컴포넌트를 JSX처럼 작성할 수 있고, 동적 차트·탭·반복문(loops)·조건문(conditionals)을 지원한다. 단순 YAML보다 복잡한 레이아웃 표현이 가능하다.
- 설치는 curl 스크립트 한 줄로 가능하다. stable 버전과 edge(main 브랜치 최신) 버전을 선택해서 설치할 수 있다.
- AGPL-3.0 라이선스 오픈소스로 공개되어 있으며, `.agents/skills`, `AGENTS.md`, `CLAUDE.md` 등 AI 에이전트 연동을 위한 파일 구조가 이미 잡혀 있다.
Evidence
- '에이전트를 위한 대시보드'라는 프레이밍이 기존 dashboard-as-code 툴들과 차별화되는 지점이라는 의견이 있었다. 에이전트가 대시보드를 생성하는 건 이미 있는 기능이지만, 그 결과물을 표준화되고 리뷰 가능하게 만드는 게 실제로 어려운 부분이라는 평가. 다만 시맨틱 레이어에서 메트릭 정의를 에이전트가 수정할 때 하위 위젯에 영향을 미치는 부분을 어떻게 검증하는지에 대한 질문도 있었다.
- YAML의 확장성에 대한 회의적인 시각도 있었다. '1000줄 넘는 YAML을 수정하는 건 너무 힘들다', 'YAML은 복잡도가 커지면 좋은 선택이 아니다'는 의견이 나왔다. 반면 Lowdefy 팀에서는 500,000줄 이상의 YAML 앱을 운영 중이며, 올바른 툴스택과 컨벤션만 있으면 오히려 읽고 쓰고 리뷰하기 쉽다는 반론을 제시했다.
- 시맨틱 레이어와 검증 기능이 가장 핵심 차별점이라는 의견도 있었다. '그 외 나머지 기능들은 다른 툴들도 다 있는 기능들(table stakes)인데, README에서 시맨틱 레이어를 더 앞세워야 한다'는 피드백이 있었다.
- 유사한 오픈소스 툴들과의 비교가 없다는 지적이 있었다. Evidence(evidence-dev/evidence), Lightdash, Vega-Lite 등이 언급되었으며, 이들과의 차이점을 문서에 명시해달라는 요청이 있었다.
- Vega-Lite(선언형 데이터 시각화 DSL)를 쓰면 어떻냐는 의견도 있었다. Claude 같은 AI와 함께 쓸 때 Vega-Lite가 이미 잘 동작한다는 경험담이 공유되었다.
How to Apply
- AI 에이전트(Claude, GPT 등)로 대시보드를 자동 생성하고 싶은데 결과물을 팀이 리뷰할 수 없어서 곤란했다면, DAC를 도입해서 에이전트가 YAML/TSX 파일을 생성하게 하면 Git PR처럼 diff를 리뷰하고 머지할 수 있다.
- Snowflake, BigQuery 등 데이터 웨어하우스를 쓰는 팀에서 메트릭 정의가 위젯마다 중복 SQL로 흩어져 있다면, DAC의 시맨틱 레이어(`semantic/` 디렉토리)에 메트릭과 디멘전을 한 번만 정의해두고 여러 위젯에서 재사용하면 SQL 중복을 줄일 수 있다.
- Bruin을 데이터 파이프라인 툴로 이미 쓰고 있다면 DAC를 추가 설치하는 것만으로 기존 Bruin 커넥션을 그대로 재사용해서 대시보드를 빠르게 구성할 수 있다.
- 대시보드 구성이 복잡해서 YAML만으로 표현이 어렵다면 TSX 방식으로 전환하면 된다. 루프, 조건문, 동적 탭 등을 React 컴포넌트 스타일로 작성할 수 있어서 복잡한 레이아웃도 코드로 관리 가능하다.
Code Example
# YAML 방식 예시
name: Sales Overview
connection: warehouse
rows:
- widgets:
- name: Revenue
type: metric
sql: SELECT SUM(amount) AS value FROM sales
column: value
prefix: "$"
col: 4
---
// TSX 방식 예시
export default (
<Dashboard name="Simple Dashboard" connection="my_db">
<Row>
<Metric
name="Total Revenue"
col={4}
sql="SELECT SUM(amount) AS value FROM sales"
column="value"
prefix="$"
format="number"
/>
</Row>
</Dashboard>
)
---
# 설치 (stable)
curl -fsSL https://raw.githubusercontent.com/bruin-data/dac/main/install.sh | bash
# 설치 (edge, main 브랜치 최신)
curl -fsSL https://raw.githubusercontent.com/bruin-data/dac/main/install.sh | bash -s -- --channel edgeTerminology
관련 논문
adamsreview: Claude Code용 멀티 에이전트 PR 코드 리뷰 파이프라인
Claude Code에서 최대 7개의 병렬 서브 에이전트가 각각 다른 관점으로 PR을 리뷰하고, 자동 수정까지 해주는 오픈소스 플러그인이다. 기존 /review나 CodeRabbit보다 실제 버그를 더 많이 잡는다고 주장하지만 커뮤니티에서는 복잡도와 실효성에 대한 회의론도 나왔다.
Claude를 User Space IP Stack으로 써서 Ping에 응답시키면 얼마나 빠를까?
Claude Code에게 IP 패킷을 직접 파싱하고 ICMP echo reply를 구성하도록 시켜서 실제로 ping에 응답하게 만든 실험으로, 'Markdown이 곧 코드이고 LLM이 프로세서'라는 아이디어를 네트워크 스택 수준까지 밀어붙인 재미있는 사례다.
AI Agent를 위한 Git: re_gent
AI 코딩 에이전트(Claude Code 등)가 수행한 모든 툴 호출을 자동으로 추적하고, 어떤 프롬프트가 어느 코드 줄을 작성했는지 blame까지 가능한 버전 관리 도구다.
Agent-Native CLI를 위한 설계 원칙 10가지
AI 에이전트가 CLI 도구를 더 잘 사용할 수 있도록 설계하는 원칙들을 정리한 글로, 에이전트가 CLI를 도구로 활용하는 빈도가 높아지면서 이 설계 방식이 실용적으로 중요해지고 있다.
Agent-harness-kit: MCP 기반 멀티 에이전트 워크플로우 오케스트레이션 프레임워크
여러 AI 에이전트가 서로 역할을 나눠 협업할 수 있도록 조율하는 scaffolding 도구로, Vite처럼 설정 없이 빠르게 멀티 에이전트 파이프라인을 구성할 수 있다.
Tilde.run – AI Agent를 위한 트랜잭션 기반 버전 관리 파일시스템 샌드박스
AI 에이전트가 실제 프로덕션 데이터를 건드려도 롤백할 수 있는 격리된 샌드박스 환경을 제공하는 도구로, GitHub/S3/Google Drive를 하나의 버전 관리 파일시스템으로 묶어준다.