Draw.io 다이어그램 스킬은(는) 무엇을 하나요?
draw.io 기본 XML 형식으로 전문적이고 편집 가능한 다이어그램 파일을 생성합니다.
출력 형식
Draw.io 파일은 다음과 같은 구조의 XML입니다:
<mxfile host="app.diagrams.net" modified="DATE" agent="Claude" version="21.0.0" type="device">
<diagram name="DIAGRAM_NAME" id="UNIQUE_ID">
<mxGraphModel dx="1200" dy="800" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<!-- 모든 다이어그램 요소는 여기에 위치합니다 -->
</root>
</mxGraphModel>
</diagram>
</mxfile>
핵심 요소 유형
기본 도형
<!-- 사각형 -->
<mxCell id="unique-id" value="레이블 텍스트" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="120" height="60" as="geometry" />
</mxCell>
<!-- 둥근 사각형 -->
<mxCell id="unique-id" value="레이블" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="120" height="60" as="geometry" />
</mxCell>
<!-- 실린더 (데이터베이스) -->
<mxCell id="unique-id" value="데이터베이스" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=15;fillColor=#f8cecc;strokeColor=#b85450;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="80" height="80" as="geometry" />
</mxCell>
<!-- 타원 -->
<mxCell id="unique-id" value="노드" style="ellipse;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="80" height="80" as="geometry" />
</mxCell>
컨테이너 및 그룹
<!-- 스윔레인 (헤더가 있는 컨테이너) -->
<mxCell id="unique-id" value="섹션 제목" style="swimlane;fontStyle=1;align=center;verticalAlign=top;childLayout=stackLayout;horizontal=1;startSize=30;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1">
<mxGeometry x="40" y="40" width="200" height="150" as="geometry" />
</mxCell>
<!-- 헤더 바 (브랜드 주요 색상 사용) -->
<mxCell id="unique-id" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#0066CC;strokeColor=#0066CC;" vertex="1" parent="1">
<mxGeometry x="40" y="40" width="400" height="40" as="geometry" />
</mxCell>
커넥터 및 화살표
<!-- 기본 화살표 -->
<mxCell id="unique-id" value="" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#666666;" edge="1" parent="1" source="source-id" target="target-id">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<!-- 양방향 화살표 -->
<mxCell id="unique-id" value="" style="endArrow=classic;startArrow=classic;html=1;rounded=0;strokeWidth=2;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="200" as="sourcePoint" />
<mxPoint x="400" y="200" as="targetPoint" />
</mxGeometry>
</mxCell>
<!-- 플렉스 화살표 (블록 화살표) -->
<mxCell id="unique-id" value="" style="shape=flexArrow;endArrow=classic;html=1;fillColor=#FFB800;strokeColor=#cc9400;width=20;endSize=8;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="200" as="sourcePoint" />
<mxPoint x="400" y="200" as="targetPoint" />
</mxGeometry>
</mxCell>
<!-- 점선 -->
<mxCell id="unique-id" value="" style="endArrow=classic;html=1;dashed=1;dashPattern=8 8;strokeColor=#999999;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="200" as="sourcePoint" />
<mxPoint x="400" y="200" as="targetPoint" />
</mxGeometry>
</mxCell>
텍스트 요소
<!-- 일반 텍스트 -->
<mxCell id="unique-id" value="레이블 텍스트" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=12;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="100" height="30" as="geometry" />
</mxCell>
<!-- 굵은 제목 -->
<mxCell id="unique-id" value="제목" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=18;fontStyle=1;fontColor=#333333;" vertex="1" parent="1">
<mxGeometry x="100" y="20" width="300" height="40" as="geometry" />
</mxCell>
<!-- 여러 줄 텍스트 (줄바꿈은 
 사용) -->
<mxCell id="unique-id" value="1번 줄
2번 줄
3번 줄" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=top;whiteSpace=wrap;rounded=0;fontSize=10;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="150" height="60" as="geometry" />
</mxCell>
일반적인 스타일 속성
색상 (16진수 코드 사용)
| 속성 | 용도 | 예시 |
|---|---|---|
fillColor | 배경색 | fillColor=#dae8fc |
strokeColor | 테두리색 | strokeColor=#6c8ebf |
fontColor | 텍스트색 | fontColor=#333333 |
표준 색상 팔레트
파랑: fillColor=#dae8fc;strokeColor=#6c8ebf
초록: fillColor=#d5e8d4;strokeColor=#82b366
노랑: fillColor=#fff2cc;strokeColor=#d6b656
주황: fillColor=#ffe6cc;strokeColor=#d79b00
빨강: fillColor=#f8cecc;strokeColor=#b85450
보라: fillColor=#e1d5e7;strokeColor=#9673a6
회색: fillColor=#f5f5f5;strokeColor=#666666
타이포그래피
| 속성 | 값 | 예시 |
|---|---|---|
fontSize | 숫자 | fontSize=12 |
fontStyle | 0=보통, 1=굵게, 2=기울임, 3=굵게+기울임 | fontStyle=1 |
align | left, center, right | align=center |
verticalAlign | top, middle, bottom | verticalAlign=middle |
테두리 및 효과
| 속성 | 값 | 예시 |
|---|---|---|
rounded | 0 또는 1 | rounded=1 |
strokeWidth | 숫자 | strokeWidth=2 |
dashed | 0 또는 1 | dashed=1 |
dashPattern | 패턴 | dashPattern=8 8 |
shadow | 0 또는 1 | shadow=1 |
회사 브랜딩 (사용자 정의 가능)
이 스킬은 회사별 브랜딩을 지원합니다. references/branding.md를 편집하여 조직의 색상과 스타일을 설정하세요.
기본 브랜드 자리 표시자 (직접 만든 것으로 교체하세요):
기본: fillColor=#0066CC;strokeColor=#0052a3;fontColor=#FFFFFF
보조: fillColor=#FFB800;strokeColor=#cc9400;fontColor=#333333
어두움: fillColor=#1a1a2e;strokeColor=#1a1a2e;fontColor=#FFFFFF
밝은 배경: fillColor=#f0f4f8;strokeColor=#0066CC
전체 사용자 정의 지침은 references/branding.md를 참조하세요.
다이어그램 패턴
아키텍처 다이어그램 레이아웃
- 제목 표시줄을 맨 위에 (전체 너비, 브랜드 색상)
- 주요 섹션을 스윔레인 또는 둥근 컨테이너로
- 구성 요소를 섹션 내부의 둥근 사각형으로
- 데이터베이스를 실린더로
- 외부 시스템을 좌우 가장자리에
- 화살표로 데이터/제어 흐름 표시
- 범례를 모서리에 배치하여 색상/기호 설명
- 바닥글에 메타데이터 포함
계층형 아키텍처 (위에서 아래로)
┌─────────────────────────────────────┐
│ 사용자 / 클라이언트 │ ← 최상위 계층
├─────────────────────────────────────┤
│ API / 인터페이스 │
├─────────────────────────────────────┤
│ 비즈니스 로직 │
├─────────────────────────────────────┤
│ 데이터 / 저장소 │ ← 최하위 계층
└─────────────────────────────────────┘
왼쪽에서 오른쪽으로 흐름
┌──────┐ ┌──────────┐ ┌──────────┐
│소스│ ──► │ 처리 │ ──► │ 대상 │
└──────┘ └──────────┘ └──────────┘
모범 사례
- 고유 ID: 모든 mxCell은 고유한
id속성이 필요합니다 - 부모 계층 구조: 최상위 요소의 경우
parent="1"로 설정합니다 - 위치 지정:
mxGeometry와 x, y, width, height를 사용합니다 - 레이어링: 나중에 정의된 요소가 위에 표시됩니다
- 정렬: 일관된 x/y 간격을 사용합니다 (10-20px 그리드)
- 색상: 팔레트의 조화로운 채우기/테두리 쌍을 사용합니다
- 레이블: 텍스트를 간결하게 유지하고, 설명은 별도의 텍스트 요소를 사용합니다
- 여백: 컨테이너 내부에 여백을 둡니다 (20-40px 패딩)
워크플로우
- 다이어그램 유형과 레이아웃 패턴을 결정합니다
mxGraphModel에서 페이지 크기를 설정합니다 (pageWidth, pageHeight)- 컨테이너 구조를 만듭니다 (스윔레인, 그룹)
- 고유 ID로 구성 요소를 추가합니다
- 소스/대상 ID를 참조하는 커넥터를 추가합니다
- 레이블과 주석을 추가합니다
- 색상 코딩을 사용하는 경우 범례를 추가합니다
.drawio파일로 저장합니다/mnt/user-data/outputs/에 복사하고 사용자에게 제시합니다
클라우드 제공업체 아이콘 (AWS, Azure, GCP)
Draw.io에는 주요 클라우드 제공업체의 기본 제공 도형 라이브러리가 포함되어 있습니다. 전문적인 아키텍처 다이어그램을 위해 공식 아이콘을 사용하세요.
AWS 아이콘 (빠른 참조)
AWS는 shape=mxgraph.aws4.resourceIcon 및 resIcon=mxgraph.aws4.SERVICE를 사용합니다:
<mxCell id="lambda-1" value="Lambda" style="sketch=0;outlineConnect=0;fontColor=#232F3E;fillColor=#ED7100;strokeColor=#ffffff;dashed=0;verticalLabelPosition=bottom;verticalAlign=top;align=center;html=1;fontSize=12;fontStyle=0;aspect=fixed;shape=mxgraph.aws4.resourceIcon;resIcon=mxgraph.aws4.lambda;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="78" height="78" as="geometry" />
</mxCell>
일반적인 AWS resIcon 값:
- 컴퓨팅:
ec2,lambda,ecs,eks,fargate - 스토리지:
s3,elastic_block_store,elastic_file_system - 데이터베이스:
rds,dynamodb,aurora,elasticache,redshift - 네트워킹:
vpc,cloudfront,route_53,api_gateway,elastic_load_balancing - 보안:
iam,cognito,secrets_manager,kms,waf
AWS 카테고리 색상:
- 컴퓨팅:
#ED7100 - 스토리지:
#7AA116 - 데이터베이스:
#C925D1 - 네트워킹:
#8C4FFF - 보안:
#DD344C
Azure 아이콘 (빠른 참조)
Azure은 image=img/lib/azure2/CATEGORY/SERVICE.svg를 사용합니다:
<mxCell id="vm-1" value="VM" style="aspect=fixed;html=1;points=[];align=center;image;fontSize=12;image=img/lib/azure2/compute/Virtual_Machine.svg;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
<mxGeometry x="100" y="100" width="68" height="68" as="geometry" />
</mxCell>
일반적인 Azure 이미지 경로:
compute/Virtual_Machine.svg,compute/Function_Apps.svgcontainers/Kubernetes_Services.svgstorage/Storage_Accounts.svg,storage/Blob_Storage.svgdatabases/SQL_Database.svg,databases/Azure_Cosmos_DB.svgnetworking/Virtual_Networks.svg,networking/Load_Balancers.svgsecurity/Key_Vaults.svg,identity/Azure_Active_Directory.svg
AWS 그룹 컨테이너
<!-- VPC -->
<mxCell id="vpc" value="VPC" style="sketch=0;outlineConnect=0;gradientColor=none;html=1;whiteSpace=wrap;fontSize=12;fontStyle=0;shape=mxgraph.aws4.group;grIcon=mxgraph.aws4.group_vpc;strokeColor=#8C4FFF;fillColor=none;verticalAlign=top;align=left;spacingLeft=30;dashed=0;" vertex="1" parent="1">
<mxGeometry x="40" y="40" width="400" height="300" as="geometry" />
</mxCell>
<!-- 퍼블릭 서브넷 -->
grIcon=mxgraph.aws4.group_public_subnet;strokeColor=#7AA116;fillColor=#E9F3E6
<!-- 프라이빗 서브넷 -->
grIcon=mxgraph.aws4.group_private_subnet;strokeColor=#00A4A6;fillColor=#E6F6F7
참조
고급 패턴 및 전체 아이콘 목록은 다음을 참조하세요:
references/architecture-patterns.md- 일반적인 아키텍처 다이어그램 레이아웃references/style-guide.md- 확장된 스타일 옵션 및 아이콘 배치references/cloud-icons.md- 전체 AWS, Azure, GCP 아이콘 참조references/branding.md- 회사 브랜딩 사용자 정의 가이드