
머메이드 차트(Mermaid Chart)로 쉽고 빠르게 다이어그램 그리기
서론: 머메이드 차트란 무엇일까요?
우리가 개발 문서를 작성하거나 복잡한 시스템 구조, 데이터 흐름, 알고리즘 등을 설명할 때 다이어그램은 정말 강력한 도구입니다. 하지만 보통의 다이어그램 툴(Visio, Lucidchart, draw.io 등)은 사용법을 익히는 데 시간이 걸리고, 협업 중 변경이 생기면 문서와 동기화를 계속 해줘야 하며, 재사용성과 버전 관리도 쉽지 않다는 단점이 있죠.
이런 문제를 한 번에 해결하는 새로운 방식이 등장했습니다. 바로 **텍스트 기반 다이어그램 도구, 머메이드(Mermaid)**입니다!
머메이드 차트(Mermaid Chart)는 간단한 문법만 익히면, Markdown 문서 안에 코드처럼 작성해서 실시간으로 다이어그램을 확인할 수 있어서 기술 문서, WIKI, Notion, GitHub, Obsidian 등 다양한 협업 도구와도 자연스럽게 연동할 수 있습니다.
이 글에서는 **머메이드(Mermaid)**의 주요 개념, 지원하는 차트 종류, 문법, 사용법, 그리고 실제 활용 예시까지 자세히 살펴보도록 하겠습니다.
본문
## 머메이드란? 한 줄로 정의하기
머메이드(Mermaid)는 간단한 텍스트 문법으로 순서도, 클래스 다이어그램, ERD, 간트 차트 등 다양한 다이어그램을 코드 한 줄로 그릴 수 있게 해주는 오픈소스 도구입니다.
기본적으로 JavaScript로 구현되어 있으나, 웹 기반이든 데스크탑이든 다양한 환경에서 사용 가능합니다.
- 공식 홈페이지: https://mermaid-js.github.io/
- 오픈 소스(GitHub, MIT License)
## 왜 머메이드인가? (장점)
머메이드 차트의 매력은 수많은 개발자와 기술 문서 작성자들에게 이미 각인되고 있습니다.
대표적인 장점은 다음과 같습니다.
- 텍스트 문법 기반
→ 다이어그램을 XML, json 등 복잡한 포맷이 아니라, 사람 친화적인 자연어 형태로 표기 - 마크다운과 완벽한 조합
→ 코드 블록에 바로 작성 가능 (```mermaid사용) - 자동화, 버전 관리, 협업의 용이성
→ git, wiki 등과 궁합이 매우 좋음 - 변경/수정이 매우 용이
→ 그래픽 툴로 일일이 오브젝트 수정 불필요, 텍스트만 수정하면 즉시 반영 - 각종 툴들과의 연계성
→ GitHub, Notion, Obsidian, Typora 등에서 거의 표준처럼 지원(플러그인/내장 기능)
## 머메이드로 그릴 수 있는 대표 다이어그램 유형
머메이드는 다양한 유형의 차트를 지원합니다. 아래는 대표적인 목록입니다.
| 차트 타입 | 설명 |
|---|---|
| Flowchart | 흐름도(순서도, 프로세스 다이어그램) |
| Sequence Diagram | 시퀀스 다이어그램 (객체 간 상호작용 시각화) |
| Gantt Chart | 간트 차트 (프로젝트 일정 관리) |
| Class Diagram | 클래스 다이어그램 (객체지향 모델링) |
| State Diagram | 상태 전이도 |
| ER Diagram | 데이터베이스 ERD(Entity Relationship Diagram) |
| Pie Chart | 파이 차트 |
| Mindmap | 마인드맵 |
| Requirement Diagram | 요구사항 다이어그램 |
| Gitgraph | Git 브랜치/커밋 이력 시각화 |
| Timeline | 타임라인 |
이 밖에도 다양한 커스텀 차트들을 지원하고 있습니다.
아래에서는 이 중 흐름도, 시퀀스 다이어그램, ERD, 간트 차트의 간단한 예시와 기본 문법을 보여드리겠습니다.
## 머메이드의 기본 문법
머메이드 문법은 매우 간단합니다.
모든 머메이드 차트는 **““`mermaid”**로 시작하는 코드 블록 안에서 선언됩니다.
먼저 공통적인 문법 구조를 알아봅니다.
<!--MERMAID_BLOCK_0-->
예를 들어, 순서도(flowchart)를 그리고 싶다면,
flowchart TD
Start --> Process1
Process1 --> Decision{조건?}
Decision -- Yes --> Success[성공]
Decision -- No --> Fail[실패]
💡 차트가 보이지 않는 경우: 여기를 클릭하여 차트를 확인하세요.
위 예시처럼 작성하면, Flowchart 차트가 바로 생성됩니다.
여기서,
TD는 상->하 방향(Top Down),LR은 좌->우(Left Right)- 그 외에도 다양한 레이아웃 지정이 가능합니다.
## 대표 차트 별 기초 문법과 예시
### 1. 순서도(Flowchart)
가장 많이 쓰는 차트 중 하나입니다.
프로세스 흐름, 조건 분기, 단계별 처리 명세 등에 자주 사용됩니다.
예시 1: 기본 순서도
flowchart TD
A[시작] --> B{조건1?}
B -- 예 --> C[작업1]
B -- 아니오 --> D[작업2]
C --> E[종료]
D --> E
💡 차트가 보이지 않는 경우: 여기를 클릭하여 차트를 확인하세요.
문법 해설
[텍스트]: 네모 박스{텍스트}: 다이아몬드(조건)-->: 방향선(화살표)-- 텍스트 -->: 화살표 위에 라벨링A,B,C등은 노드 식별자(임의 부여)
### 2. 시퀀스 다이어그램(Sequence Diagram)
여러 객체(Actor)와 시스템 사이의 메시지 흐름을 시각화할 때 유용합니다.
API 호출, 서버-클라이언트 통신 등에서 주로 활용합니다.
예시
sequenceDiagram
participant User
participant Server
User->>Server: 로그인 요청
Server-->>User: 로그인 응답(성공)
User->>Server: 데이터 요청
Server-->>User: 데이터 반환
💡 차트가 보이지 않는 경우: 여기를 클릭하여 차트를 확인하세요.
### 3. ER 다이어그램(Entity-Relationship Diagram)
머메이드에서는 2023년 이후 ERD도 공식 지원합니다.
관계형 데이터베이스 설계, 테이블 구조 표기 등에 유리합니다.
예시
erDiagram
USER ||--o{ ORDER : places
ORDER ||--|{ LINE_ITEM : contains
USER {
INT id PK
VARCHAR name
VARCHAR email
}
ORDER {
INT id PK
INT user_id FK
DATE order_date
}
LINE_ITEM {
INT id PK
INT order_id FK
VARCHAR product
INT quantity
}
💡 차트가 보이지 않는 경우: 여기를 클릭하여 차트를 확인하세요.
문법 해설
||--o{,|{,{등은 관계 다중성(Many, One 등) 표기- 테이블 선언은
{ }로 필드 선언
### 4. 간트 차트(Gantt Chart)
아래 예제는 간단한 일정표를 나타냅니다.
gantt
title 프로젝트 일정표
dateFormat YYYY-MM-DD
section 준비
계획수립 :done, a1, 2024-06-01,2024-06-05
자료조사 :active, a2, 2024-06-06, 3d
section 개발
개발진행 : a3, after a2, 10d
테스트 : a4, after a3, 5d
section 마감
문서정리 : a5, after a4, 2d
발표 : a6, after a5, 1d
💡 차트가 보이지 않는 경우: 여기를 클릭하여 차트를 확인하세요.
## 머메이드 차트 실제 사용 환경 및 연동 팁
### 1. 웹 에디터
- 공식 웹 에디터(Playground):
https://mermaid.live
→ 코드를 바로 입력해 미리보기 가능, SVG 등으로 다운로드 가능
### 2. 마크다운 에디터
- Typora, Obsidian, Notion
- 별도의 플러그인 혹은 내장 기능으로 바로 사용
- GitHub
README.md,Wiki등에서 바로 렌더링
- Jupyter Notebook
- 별도 확장으로 마크다운 셀에서 지원
### 3. 기타 활용법
- CI/CD 파이프라인에서 시스템 구조 문서 자동 생성
- API 명세서 흐름도 자동화
- 마인드맵, 일정표, 디자인 설계서 등 다양하게 활용
## 한계점 및 주의사항
머메이드는 매우 편리하지만, 몇몇 단점도 존재합니다.
- 복잡한 다이어그램에는 한계
- 수백 개 노드, 엄청난 분기 구조 등에는 시각적 한계 있음
- 커스터마이징(폰트, 색상 등) 제한
- 기본적으로 간단한 디자인에 최적화
- 일부 세부 스타일 지정은 추가 옵션 필요 (CSS 스타일 지정 가능)
- 최신 문법 및 기능은 도구 별 지원차이
- ex) Notion, Obsidian, GitHub은 머메이드 최신 버전과 다소 차이 존재
- 기능이 안 보일 때는 공식 에디터로 비교해보면 좋음
결론: 머메이드 차트로 협업과 문서 자동화까지 한 번에!
**머메이드(Mermaid)**는 ‘코드처럼 작성하는 다이어그램’이라는 혁신적인 접근으로 많은 기술 문서 작성자와 개발자들에게 새로운 대안을 제시해주고 있습니다.
주요 장점으로,
- 누구나 쉽게 읽고 고칠 수 있는 단순한 문법,
- 마크다운/코드 문서 내에 바로 통합,
- Git 등 소스 관리와의 완벽한 협업,
- 각종 툴과의 높은 호환성
등이 돋보입니다.
2024년 현재, 여러 생산성 툴, 협업 플랫폼에서도 폭넓게 지원되고 있어 개인 문서부터 팀 프로젝트, 대규모 기업 설계까지 다양한 분야에서 활용되고 있습니다.
앞으로 보다 복잡한 커스터마이징, 다양한 차트 유형 추가 등 지속적인 발전이 기대되며,
**“복잡한 그림은 텍스트로, 협