DAC: 에이전트와 사람이 같이 쓰는 오픈소스 Dashboard-as-Code 도구
Show HN: DAC – open-source dashboard as code tool for agents and humans
TL;DR Highlight
YAML·TSX로 대시보드를 정의하고 시맨틱 레이어로 에이전트가 만든 대시보드를 리뷰 가능하게 만든다
Who Should Read
AI 에이전트로 BI 대시보드를 만들게 하고 싶지만 결과물을 PR로 리뷰하고 싶은 데이터·백엔드 개발자
Core Mechanics
- 대시보드를 코드로 정의한다
- YAML 또는 TSX 파일로 대시보드를 정의, 검증, 서빙하는 Dashboard-as-Code 도구다.
- TSX에서는 동적 차트, 탭, 반복문, 조건문을 쓸 수 있다.
- 시맨틱 레이어가 SQL을 만들어 준다
- 지표(metric)와 차원(dimension)을 semantic/ 폴더에 한 번만 정의한다.
- 위젯에서 이를 참조하면 DAC가 SQL을 생성한다.
- 에이전트가 만들도록 설계됐다
- 에이전트가 표준화되고 리뷰 가능한 방식으로 대시보드를 만들게 하는 것이 목표다.
- dac init이 Claude와 Codex용 대시보드 작성 스킬(create-dashboard)을 함께 설치한다.
- DB는 Bruin 연결을 재사용한다
- Postgres, MySQL, Snowflake, BigQuery, Redshift, Databricks 등을 Bruin 경유로 지원한다.
- 쿼리 실행은 현재 bruin query를 셸로 호출한다.
- CLI 흐름이 단순하다
- dac init, dac validate, dac serve 순서로 시작한다.
- validate에 --with-database를 붙이면 DB까지 검증한다.
- 라이선스와 텔레메트리를 확인해야 한다
- 라이선스는 AGPL-3.0-only다.
- 익명 사용 이벤트를 보내며 TELEMETRY_OPTOUT=1 또는 DO_NOT_TRACK=1로 끌 수 있다.
Community Reactions
- 비교 자료가 필요하다는 의견
- Evidence, Lightdash 같은 기존 제품과의 비교를 README에 넣어야 한다는 댓글이 있었다.
- Lightdash 같은 기존 BI-as-code 도구를 단순화한 것 같다는 의견도 있었다.
- YAML 규모에 대한 반론
- YAML 1000줄을 수정하는 건 망설여진다는 의견이 있었다.
- 복잡도가 커지는 일에 YAML은 좋은 선택이 아니라는 반론도 있었다.
- YAML 앱을 크게 운영해 봤다는 경험
- 몇 년 전부터 앱을 YAML로 정의해 왔고 가장 큰 앱이 50만 줄이 넘는다는 댓글이 있었다.
- 도구와 컨벤션이 갖춰지면 읽고 리뷰하기 쉽다고 했다.
- 시맨틱 레이어 검증과 운영 문서 질문
- 에이전트가 지표 정의를 바꿀 때 하위 위젯 깨짐을 어떻게 검증하는지 묻는 댓글이 있었다.
- 인증과 호스팅 문서가 필요하다는 의견도 있었다.
How to Apply
- dac으로 샘플 대시보드 띄워 보기
- 설치 후 dac init my-dashboards로 스타터를 만들고 dac serve --dir . --open으로 실행하라.
- 실제 DB 연결 후 dac validate --with-database를 돌려라.
- 지표 정의를 semantic/에 모으기
- 여러 대시보드에서 중복되는 매출·가입자 같은 SQL을 한 번만 정의하라.
- 위젯은 이 정의를 참조하게 바꿔라.
- 에이전트 대시보드를 PR로 리뷰하기
- 에이전트가 만든 YAML 파일을 Git 저장소에 커밋하고 PR로 올려라.
- CI에서 dac validate를 돌려 깨진 정의를 걸러라.
- 도입 전 운영 항목 확인하기
- 인증과 호스팅 방식을 먼저 정하라.
- 텔레메트리 정책에 맞춰 환경변수로 끄고 AGPL 조건을 확인하라.
Try It
# Claude Code에서 DAC 프로젝트 폴더에 붙여넣기
dac init 로 만든 프로젝트에서 대시보드를 하나 추가해 줘.
- 먼저 semantic/ 폴더의 기존 지표와 차원을 읽고, 가능하면 새 SQL 대신 이를 재사용해.
- 필요한 지표가 없으면 semantic/ 에 새로 정의해.
- 대시보드 목적: {{대시보드 목적}}
- 사용할 connection: {{connection 이름}}
- 작성 후 `dac validate --dir .` 를 실행하고 오류가 있으면 고쳐.
- 변경한 파일 목록과 이유를 PR 설명처럼 요약해.Terminology
관련 논문
GPT-5.6 Sol, 평화 모드 Factorio를 13.5시간에 클리어
GPT-5.6 Sol이 Codex 낮은 사고 수준으로 평화 모드 Factorio 로켓 발사까지 갔다
AI가 SRE를 대체하는 게 아니라 실력을 깎아먹는다
인시던트 95%를 AI에 맡기자 나머지 5%를 다룰 SRE의 실력이 녹슬 수 있다
Cursor Marketplace의 Claude Code 확장에 심어진 SSH 백도어
Cursor Marketplace의 변조된 Claude Code 확장이 SSH 백도어를 심었다
AI-native 엔지니어링 조직 만들기: FurtherAI 9개월 회고
배포 전 과정을 단계별로 자동화하자 엔지니어 1인당 일일 머지가 약 5배 늘었다
Minecraft·Mindustry에서 AI 에이전트 군집 50마리를 돌려 봤다
에이전트 50개를 Minecraft에 풀었더니 배급 장부와 관료제가 생겼다
Cursor Agent SDK 출시: 에이전트를 코드로 정의하고 한 줄로 배포
Cursor가 에이전트를 코드로 정의·배포하는 Agent SDK를 정식 공개했다
에이전트가 코드를 짜는 시대, 엔지니어가 여전히 알아야 할 것: 기초·폭넓은 지식·필요할 때 깊이 파기
에이전트가 짠 코드의 오너십은 기초, 폭넓은 지식, 즉시 깊이 파는 능력에 달렸다
AI가 일을 줄여준다더니, 이렇게 많이 일한 적이 없다
에이전트를 병렬로 돌렸더니 GitHub 활동이 엔지니어 시절 수준으로 돌아왔다