[개발] Mermaid 사용하기
조사 배경
저는 기존에 간단한 플로우 차트를 그릴 때 draw.io를 사용해왔습니다. 하지만 최근에 Mermaid라는 도구를 알게 되었고, 이 도구를 사용하면 다이어그램을 훨씬 간편하게 작성할 수 있다는 정보를 접하게 되었습니다. 이에 대해 더 알아보고 실제로 사용해본 후, 그 경험을 바탕으로 블로그에 정리하기로 했습니다.
Mermaid란?
텍스트 기반의 다이어그램 및 차트 생성 도구로, 마크다운 문법을 사용하여 다이어그램을 간편하게 작성할 수 있게 해줍니다. 개발자는 간단한 텍스트 코드만으로 다양한 시각화 도구(예: 순서도, Gantt 차트, 클래스 다이어그램, 상태도 등)를 만들 수 있습니다.
Doc URL : https://mermaid.js.org/syntax/flowchart.html
Flowcharts Syntax | Mermaid
mermaid.js.org
주요특징
- Markdown과 통합: GitHub, GitLab, Notion 같은 협업 툴에서 마크다운과 함께 사용 가능.
- 다양한 다이어그램 지원: Flowchart, Sequence Diagram, Gantt Chart, Class Diagram, ERD 등.
- 심플한 구문: 다이어그램을 간단한 텍스트 코드로 정의.
- 웹 환경 지원: 웹페이지 내에 다이어그램을 쉽게 삽입 가능.
Mermaid의 장점
- 경량성: 텍스트로 작성되기 때문에 파일 용량이 작습니다.
- 버전 관리 용이: Git과 같은 버전 관리 시스템에서 충돌 해결이 쉽습니다.
- 수정 용이성: 도구에서 직접 그림을 수정할 필요 없이, 텍스트를 수정하는 것만으로 다이어그램을 변경할 수 있습니다.
사용법
주로 사용하는 3가지 차트를 설명하겠습니다.
```mermaid
graph TD
A[Start] --> B{Is it working?}
B -->|Yes| C[Continue]
B -->|No| D[Fix it]
D --> B
이 코드는 다음과 같은 플로우차트를 그립니다:
- A: "Start"에서 시작.
- B: "Is it working?"에서 조건 검사.
- 조건에 따라 "Yes"는 C로, "No"는 D로 이동.
- D에서 다시 B로 루프.
2. 시퀀스 다이어그램 (Sequence Diagram)
시퀀스 다이어그램은 sequenceDiagram 키워드를 사용합니다.
```mermaid
sequenceDiagram
participant Alice
participant Bob
Alice->>Bob: Hello Bob, how are you?
Bob-->>Alice: I'm good thanks!
이 코드는 Alice와 Bob 사이의 간단한 대화를 시각화합니다.
3. 간트 차트 (Gantt Chart) gantt 키워드를 사용하여 간트 차트를 그릴 수 있습니다.
```mermaid
gantt
title Project Timeline
section Section 1
Task 1 :a1, 2024-09-01, 5d
Task 2 :after a1, 3d
이 코드는 특정 날짜와 기간을 기준으로 하는 작업 흐름을 시각화한 간트 차트입니다.
마무리 정리
Mermaid는 코드 기반의 다이어그램 생성 도구로, 텍스트만으로 다양한 도식화를 할 수 있다는 점에서 매우 유용합니다.
특히 플로우차트, 시퀀스 다이어그램, 간트 차트와 같은 복잡한 그래픽 요소를 간편하게 관리할 수 있어, 협업 시에도 버전 관리가 쉽고 효율적입니다.
반면, draw.io는 직관적인 GUI를 제공하여 비개발자나 시각적인 조작이 필요한 경우에 더 적합합니다.
정리하자면, Mermaid는 텍스트 기반 다이어그램 생성이 필요한 개발자나 문서 작업에 최적화되어 있으며, draw.io는 드래그 앤 드롭 방식의 직관적인 다이어그램 작성을 원하는 사용자를 위한 도구입니다.
각 도구의 특성과 장점을 파악한 후, 작업 환경에 맞는 도구를 선택하는 것이 생산성 향상에 큰 도움이 될 것입니다.
두 도구 모두 상황에 따라 강력한 다이어그램 작성 도구로 활용할 수 있으니, 여러분의 워크플로우에 맞는 방법을 찾아 효율적으로 사용해보세요!