Diagram MakerOverview
🗂️

Overview

What the Diagram Maker is and how it works

다이어그램 메이커란 무엇입니까?

Diagram Maker는 소프트웨어 시스템을 그림이 아닌 데이터로 설명하기 위한 구조화되고 검증되었으며 표준 형식의 언어인 Datro DSL을 기반으로 구축된 텍스트 우선 아키텍처 다이어그램 작성 도구입니다.

캔버스에서 상자를 드래그하는 대신 .dtro 파일을 작성합니다. 툴체인은 이를 구문 분석하고, 아키텍처 규칙을 검증하고, WCAG 명암비를 적용하고, SVG, PNG 또는 대화형 JSON으로 렌더링합니다. 이 모든 작업이 단일 진실 소스에서 이루어집니다.

오픈 다이어그램 메이커

몇 분 만에 첫 번째 다이어그램을 작성, 검증 및 렌더링할 수 있습니다.

왜 Datro가 Mermaid나 draw.io보다 좋을까요?

  • 유형화된 노드 — 23개의 의미 유형(service, database, gateway, queue, …)은 일관되고 모양이 올바른 다이어그램을 자동으로 생성합니다.
  • 입력된 에지 — 21가지 의미 유형(http, query, publish, grpc, …)을 색상으로 구분하고 수동 재정의 없이 연결 스타일을 지정합니다.
  • 아키텍처적 제약database !-> external과 같은 규칙을 작성하면 유효성 검사기가 검토 시간이 아닌 구문 분석 시간에 이를 시행합니다.
  • 표준 포맷터datro fmt는 모든 파일을 결정적 형식으로 다시 작성합니다. diff는 노이즈를 다시 포맷하지 않고 실제 변경 사항을 보여줍니다.
  • 가져오기 및 작성import, 네임스페이스 별칭 지정 및 화이트리스트 노출을 사용하여 여러 파일에 걸쳐 대규모 다이어그램을 분할합니다.
  • WCAG 2.1 접근성 — 테마 팔레트에 대해 명암비가 자동으로 확인됩니다. W602는 AA 이하로 떨어지면 발사됩니다.
  • 기계 판독 가능 JSON IR — 모든 다이어그램은 도구 체인, CI 시스템 또는 사용자 정의 렌더러에서 사용할 수 있는 무손실 JSON IR을 내보냅니다.

툴체인 작동 방식

모든 .dtro 파일은 다이어그램이 되기 전에 4단계를 거칩니다.

1 · 분석2 · 검증3 · 수출4 · 렌더링
  • 파싱 — 재귀 하강법 어휘 분석기와 파서는 소스 텍스트를 DatroIR 객체로 변환합니다. 결코 던지지 않습니다. 모든 문제는 정확한 행/열 위치와 함께 Diagnostic[]로 반환됩니다.
  • 검증 — 4단계: 구조적 무결성 → 의미 제약 조건 확인 → 정보 힌트 → WCAG 2.1 대비 및 레이블 길이 접근성.
  • 내보내기 — 검증된 IR은 DOT(Graphviz), Cytoscape.js JSON 또는 무손실 JSON IR로 변환됩니다.
  • 렌더링 — DOT 출력이 Graphviz로 전달되어 SVG 또는 PNG 픽셀 단위의 완벽한 출력을 생성합니다.

완전한 예

.dtro 파일은 그룹, 유형화된 노드, 의미론적 가장자리, 제약 규칙, 레이아웃 힌트 및 WCAG 확인 색상 테마를 모두 하나의 파일에 포함하는 결제 서비스를 정의합니다.

payment-service.dtro
#!DATRO 1.0

meta {
  title:   "Payment Service"
  version: "2.0.0"
  owner:   "payments-team"
  sla:     "99.95%"
}

group data {
  label:   "Data Layer"
  members: [payments_db, fraud_cache]
}

node api_gw      { type: gateway  label: "API Gateway" }
node payment_svc { type: service  label: "Payment Service"  attrs { tech: "nestjs" } }
node payments_db { type: database label: "Payments DB"      attrs { tech: "postgres" } }
node fraud_cache { type: cache    label: "Fraud Cache"      attrs { tech: "redis" } }
node stripe      { type: external label: "Stripe" }

edge api_gw      -> payment_svc  { kind: http  label: "POST /charge" }
edge payment_svc -> payments_db  { kind: query }
edge payment_svc -> fraud_cache  { kind: read }
edge payment_svc -> stripe       { kind: http  label: "charge API" }

constraint {
  id:       "no-db-external"
  rule:     "database !-> external"
  message:  "Databases must not call external APIs"
  severity: error
}

layout { direction: LR  algo: dagre }

theme {
  palette { gateway: "#FFD0D0"  service: "#D0E8FF"  database: "#FFE8C0"  cache: "#C0FFE8" }
  accessibility { min_contrast: AA }
}
💡

지금 사용해 보세요

위의 예를 Diagram Maker 편집기에 붙여넣고 유효성 검사를 클릭합니다. 입력된 진단과 줄 번호가 표시되고 한 번의 클릭으로 SVG로 렌더링됩니다.

기능 요약

23개 노드 유형엣지 종류 21종WCAG 2.1 AA/AAAJSON 스키마 초안-07SVG · PNG · DOT · 사이토스케이프가져오기/작성

계속해서 Quick Start로 이동하여 첫 번째 다이어그램을 작성하거나, 전체 구문을 보려면 Language Reference로 바로 이동하세요.

Schema v1 · Updated September 2026