순서도
순서도는 워크플로우나 프로세스를 표현하는 다이어그램입니다. Mermaid는 텍스트 설명을 통해 순서도를 생성할 수 있습니다.
문법
노드 유형
id[텍스트]
- 사각형 노드id(텍스트)
- 둥근 사각형 노드id([텍스트])
- 경기장 모양 노드id[[텍스트]]
- 서브루틴 모양 노드id>텍스트]
- 비대칭 노드id{텍스트}
- 마름모 노드id
- 육각형 노드id[/텍스트/]
- 평행사변형 노드id[\텍스트\]
- 역평행사변형 노드
연결선
-->
- 화살표 연결---
- 실선 연결-.->
- 점선 화살표==>
- 굵은 화살표--텍스트-->
- 텍스트가 있는 화살표--텍스트---
- 텍스트가 있는 실선==텍스트==>
- 텍스트가 있는 굵은 화살표
기본 예제
코드:
mermaid
flowchart TD
A[시작] --> B{계속?}
B -->|예| C[확인]
C --> D[재검토]
D --> B
B ---->|아니오| E[종료]
고급 예제
다양한 노드 유형과 연결 방식을 보여주는 복잡한 순서도:
코드:
mermaid
flowchart LR
A[/입력/] --> B(처리)
B --> C{판단}
C -->|선택1| D[결과 1]
C -->|선택2| E[결과 2]
D --> F([출력])
E --> F
F --> G{{표시}}
G -.-> H>종료]
방향 설정
순서도의 방향을 지정할 수 있습니다:
TB
- 위에서 아래로TD
- 위에서 아래로(TB와 동일)BT
- 아래에서 위로RL
- 오른쪽에서 왼쪽으로LR
- 왼쪽에서 오른쪽으로
서브그래프
서브그래프를 사용하여 복잡한 순서도를 구성할 수 있습니다:
코드:
mermaid
flowchart TB
subgraph 서브그래프1
a1-->a2
end
subgraph 서브그래프2
b1-->b2
end
subgraph 서브그래프3
c1-->c2
end
c1-->a2
스타일 설정
노드와 연결선에 스타일을 적용할 수 있습니다:
코드:
mermaid
flowchart LR
id1(시작)-->id2(종료)
style id1 fill:#f9f,stroke:#333,stroke-width:4px
style id2 fill:#bbf,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
특수 구문
이스케이프 문자
특수 문자가 포함된 텍스트는 큰따옴표를 사용합니다:
코드:
mermaid
flowchart LR
A["이것은 「특수」한 노드입니다"]
여러 줄 텍스트
<br>
을 사용하여 줄바꿈을 추가할 수 있습니다:
코드:
mermaid
flowchart TD
A["여러 줄<br>텍스트"]
유용한 팁
- 순서도를 단순하게 유지
- 유사한 요소에 일관된 노드 유형 사용
- 연결선에 의미 있는 레이블 추가
- 흐름을 가장 잘 보여주는 방향 선택
- 서브그래프로 복잡한 로직 구성
- 스타일을 적절히 사용하여 중요 노드 강조
- 교차 연결 최소화
- 명확한 노드 이름 사용
일반적인 문제 해결
레이아웃 문제
- 다이어그램 방향 조정
- 노드 간 연결 줄이기
- 서브그래프로 관련 노드 그룹화
스타일 문제
- 구문 확인
- 색상 코드 정확성 확인
- 스타일 속성 이름 확인
렌더링 문제
- 구문 정확성 확인
- 노드 ID 중복 확인
- 연결된 노드 존재 여부 확인