Diagram MakerQuick Start

Quick Start

Build your first diagram in six steps

빠른 시작

6단계로 첫 번째로 검증된 아키텍처 다이어그램을 구축하세요. 각 단계마다 하나의 새로운 Datro 개념이 도입됩니다. 최종적으로는 스타일이 지정되고 제약 조건이 확인된 완전하고 SVG로 내보낼 수 있는 다이어그램이 완성됩니다.

오픈 다이어그램 메이커

라이브 편집기에서 따라가세요. 각 조각을 붙여넣고 유효성 검사를 클릭하세요.

1단계 - 첫 번째 노드와 에지 작성

모든 .dtro 파일은 매직 헤더로 시작됩니다. 그 다음에는 노드(엔티티)와 에지(관계)를 선언합니다. 이것을 편집기에 붙여넣으세요.

arch.dtro
#!DATRO 1.0

node frontend { type: web      label: "React App" }
node backend  { type: service  label: "NestJS API" }
node db       { type: database label: "PostgreSQL" }

edge frontend -> backend { kind: http }
edge backend  -> db      { kind: query }
ℹ️

매직 헤더가 필요합니다

1행의 #!DATRO 1.0 행은 필수입니다. 파서는 누락된 경우 E100를 반환합니다.

2단계 - 더 풍부한 메타데이터를 위해 `attrs` 추가

attrs 블록은 임의의 키-값 메타데이터를 보유합니다. 값은 문자열, 숫자, 부울 또는 배열일 수 있습니다. 일반적인 속성은 tech, owner, deprecatedsla입니다.

DATRO
node backend {
  type:  service
  label: "NestJS API"
  attrs {
    tech:  "nestjs"
    owner: "platform-team"
  }
}

속성은 JSON IR을 통과하고 렌더링된 SVG에 도구 설명으로 표시됩니다. 이는 통화 중 및 SLA 메타데이터에 유용합니다.

3단계 - 엣지 메타데이터 추가

에지에는 종류(의미론적 관계 유형), 선택적 라벨, 가중치(상대 트래픽) 및 비동기 플래그가 있습니다. 비동기 가장자리는 점선으로 렌더링됩니다.

DATRO
edge backend -> stripe {
  kind:  http
  label: "charge API"
  async: false
}
FieldTypeRequiredDescription
kindEdgeKind
"http""grpc""query""publish""subscribe""read""write""deploys""monitors""depends""…21 total"
Yes의미론적 관계 유형
labelstringNo가장자리 선에 표시되는 짧은 텍스트
weightnumberNo상대적 트래픽 가중치 - 가장자리가 무거워지면 더 두꺼워집니다.
asyncbooleanNotrue인 경우 가장자리는 점선으로 렌더링됩니다(Fire-and-forget 패턴).

4단계 - 노드를 클러스터로 그룹화

group 블록을 사용하여 관련 노드를 클러스터링합니다. 그룹은 SVG에서 레이블이 지정된 하위 그래프 상자로 렌더링됩니다. 노드는 하나의 그룹에만 속할 수 있습니다.

DATRO
group data_tier {
  label:   "Data Layer"
  members: [db, redis_cache]
}

node redis_cache { type: cache label: "Redis" }

edge backend -> redis_cache { kind: read  label: "session" }
💡

그룹과 node.group

group: data_tier를 사용하여 노드에 직접 그룹을 할당할 수도 있습니다. 두 스타일 모두 유효합니다. group 블록의 members 목록이 우선합니다.

5단계 - 아키텍처 제약 조건 추가

제약 조건은 기계가 확인하는 아키텍처 규칙입니다. 유효성 검사기는 이를 IR과 비교하여 평가하고 규칙을 위반하면 E501 오류를 반환합니다.

DATRO
constraint {
  id:       "no-db-external"
  rule:     "database !-> external"
  message:  "Databases must not connect to external services"
  severity: error
}

database !-> external 규칙은 database 유형의 노드가 external 유형의 노드로 향하는 간선을 가질 수 없음을 의미합니다. 이는 우발적인 직접 DB → 타사 API 호출을 차단합니다.

6단계 - 레이아웃 힌트 및 테마 추가

layout 블록을 사용하여 다이어그램을 정렬하는 방법을 제어하고 theme 블록을 사용하여 색상 팔레트를 정의합니다. 색상이 WCAG AA 대비보다 낮으면 접근성 검사는 W602를 실행합니다.

DATRO
layout { direction: LR  algo: dagre  node_sep: 60  rank_sep: 120 }

theme {
  palette {
    service:    "#D0E8FF"
    database:   "#FFE8C0"
    web:        "#E8D0FF"
    cache:      "#C0FFE8"
    background: "#FFFFFF"
  }
  accessibility { min_contrast: AA }
}
💡

WCAG 대비는 자동입니다.

DOT 내보내기는 WCAG 2.1 상대 휘도 공식을 사용하여 각 노드 채우기에 대해 검정색 또는 흰색 글꼴 색상을 자동으로 선택합니다. 구성이 필요하지 않습니다.

다음 단계

  • 모든 블록 유형의 전체 구문을 보려면 Language Reference를 읽어보세요.
  • CLI Reference를 사용하여 명령줄에서 유효성을 검사하고 형식을 지정하고 내보냅니다.
  • Remark 또는 markdown-it 플러그인을 사용하여 문서를 embed diagrams in Markdown 작성하는 방법을 알아보세요.
오픈 다이어그램 메이커

다이어그램을 렌더링할 준비가 되었습니다. 편집기 도구 모음에서 렌더링 → SVG를 클릭하세요.

Schema v1 · Updated September 2026