🧜♀️ Mermaid 다이어그램 종류 완벽 가이드: 시각적 표현의 모든 것
서론: 코드 한 줄로 그림이 되는 마법
개발자, 기획자, 마케팅 담당자라면 누구나 복잡한 개념을 명료하게 전달해야 할 순간이 있습니다. 전통적인 도구로 다이어그램을 그리려면 끔찍하게 많은 시간이 소요되죠. 이때 **머메이드(Mermaid)**가 등장합니다! 이 오픈소스 도구는 코드만으로 다이나믹한 다이어그램을 생성하는 혁명을 일으켰습니다. 단순한 흐름도부터 복잡한 시스템 아키텍처까지, 텍스트 기반 설명이 시각적 아트로 변신하는 과정을 경험해보세요. 각 차트 유형별 특성과 실제 적용 사례를 파헤치며 여러분의 문서를 한 단계 업그레이드합시다.
📊 1. 흐름도 (Flowchart): 프로세스 시각화의 핵심
로직의 길을 만들어주는 길잡이
if-else부터 복잡한 의사결정 트리까지 단계별 과정을 직관적으로 표현합니다.
대표적 활용 분야:
- 알고리즘 설계
- 업무 프로세스 매핑
- 시스템 워크플로우 시각화
⚠️ Mermaid 차트 (서버 렌더링 불가)
📊 차트 코드 보기
flowchart TD
A[시작] --> B{조건 확인}
B -->|참| C[작업 실행]
B -->|거짓| D[에러 처리]
C --> E[결과 출력]
D --> E
E --> F[종료]
WordPress 사용자: Mermaid Chart 플러그인을 설치하면 자동으로 렌더링됩니다.
또는 Mermaid Live Editor에서 이미지로 다운로드하세요.
flowchart TD
A[시작] --> B{조건 확인}
B -->|참| C[작업 실행]
B -->|거짓| D[에러 처리]
C --> E[결과 출력]
D --> E
E --> F[종료]
→ 실전 팁:
subgraph로 하위 프로세스 그룹화 가능
→ 주의점: 화살표 방향(TD=Top-Down,LR=Left-Right) 초기 설정이 레이아웃 결정
📡 2. 시퀀스 다이어그램 (Sequence Diagram): 시간 축의 상호작용
메시지 흐름의 타임라인
객체 간 통신 순서를 시간적 관점에서 포착합니다. API 호출, 트랜잭션 처리 분석에 필수적입니다.
핵심 표현 요소:
- 참여자(Actor) : 시스템 구성요소
- 생명선 : 객체 활성화 구간
- 메시지 화살표 : 상호작용 유형
⚠️ Mermaid 차트 (서버 렌더링 불가)
📊 차트 코드 보기
sequenceDiagram
참가자 A as 클라이언트
참가자 B as 서버
A->>B: 로그인 요청
B-->>A: 인증 토큰 발급
A->>B: 데이터 조회 요청
B-->>A: JSON 데이터 반환
WordPress 사용자: Mermaid Chart 플러그인을 설치하면 자동으로 렌더링됩니다.
또는 Mermaid Live Editor에서 이미지로 다운로드하세요.
sequenceDiagram
참가자 A as 클라이언트
참가자 B as 서버
A->>B: 로그인 요청
B-->>A: 인증 토큰 발급
A->>B: 데이터 조회 요청
B-->>A: JSON 데이터 반환
→ 최적화 전략:
activate/deactivate로 생명선 제어
→ 사례: 마이크로서비스 아키텍처의 서비스 통신 검증
🧩 3. 클래스 다이어그램 (Class Diagram): OOP의 청사진
객체 관계의 구조적 맵
클래스 속성, 메서드, 상속 관계를 UML 표기법으로 구현합니다.
주요 관계 유형:
- 상속(Inheritance):
..|> - 합성(Composition):
*-- - 의존성(Dependency):
..>
⚠️ Mermaid 차트 (서버 렌더링 불가)
📊 차트 코드 보기
classDiagram
class Vehicle {
+String make
+startEngine() void
}
class Car {
+int doorCount
}
Vehicle <|-- Car : 상속
class Wheel {
+float pressure
}
Car *-- Wheel : 4개의 휠 보유
WordPress 사용자: Mermaid Chart 플러그인을 설치하면 자동으로 렌더링됩니다.
또는 Mermaid Live Editor에서 이미지로 다운로드하세요.
classDiagram
class Vehicle {
+String make
+startEngine() void
}
class Car {
+int doorCount
}
Vehicle <|-- Car : 상속
class Wheel {
+float pressure
}
Car *-- Wheel : 4개의 휠 보유
→ 실무 적용: 소프트웨어 리팩토링 전 구조 파악
→ 사용자 정의:<<interface>>스테레오타입으로 인터페이스 표시
🔄 4. 상태 다이어그램 (State Diagram): 객체의 생명주기
변화의 순간을 포착하는 렌즈
유한 상태 머신(FSM)을 구현하여 객체의 상태 전이 과정을 매핑합니다.
주요 구성 요소:
- 초기 상태 :
[*] - 최종 상태 : [*]
- 전이 조건 : 라벨 표기
⚠️ Mermaid 차트 (서버 렌더링 불가)
📊 차트 코드 보기
stateDiagram-v2
[*] --> 대기중
대기중 --> 실행중 : 시작 버튼 클릭
실행중 --> 일시정지 : 중지 이벤트
일시정지 --> 실행중 : 재개 이벤트
실행중 --> 완료됨 : 작업 종료
완료됨 --> [*]
WordPress 사용자: Mermaid Chart 플러그인을 설치하면 자동으로 렌더링됩니다.
또는 Mermaid Live Editor에서 이미지로 다운로드하세요.
stateDiagram-v2
[*] --> 대기중
대기중 --> 실행중 : 시작 버튼 클릭
실행중 --> 일시정지 : 중지 이벤트
일시정지 --> 실행중 : 재개 이벤트
실행중 --> 완료됨 : 작업 종료
완료됨 --> [*]
→ 실전 활용: 결제 시스템의 트랜잭션 상태 관리
→ 고급 기능:fork/join으로 병렬 상태 표현
🔗 5. ER 다이어그램 (Entity Relationship Diagram): 데이터 관계의 DNA
데이터베이스 설계의 초석
엔터티-속성-관계(Entity-Attribute-Relationship) 모델링으로 DB 스키마를 시각화합니다.
관계성 표기법:
- 1:1 :
||--|| - 1:N :
||--o{ - M:N :
}o--o{
⚠️ Mermaid 차트 (서버 렌더링 불가)
📊 차트 코드 보기
erDiagram
CUSTOMER ||--o{ ORDER : "주문"
ORDER ||--|{ ORDER_ITEM : "포함"
PRODUCT ||--o{ ORDER_ITEM : "연결"
CUSTOMER {
int id PK
string name
}
ORDER {
int order_id PK
date order_date
}
WordPress 사용자: Mermaid Chart 플러그인을 설치하면 자동으로 렌더링됩니다.
또는 Mermaid Live Editor에서 이미지로 다운로드하세요.
erDiagram
CUSTOMER ||--o{ ORDER : "주문"
ORDER ||--|{ ORDER_ITEM : "포함"
PRODUCT ||--o{ ORDER_ITEM : "연결"
CUSTOMER {
int id PK
string name
}
ORDER {
int order_id PK
date order_date
}
→ 물리적 설계:
PK(Primary Key),FK(Foreign Key) 어노테이션 추가
→ 도구 연동: SQL DDL 자동 생성 플러그인과 호환 가능
⏳ 6. 간트 차트 (Gantt Chart): 프로젝트의 시간 관리자
진척도를 초단위로 트래킹
테스크 기간, 의존성, 마일스톤을 타임라인으로 표현합니다.
주요 설정 옵션:
- 섹션 :
section키워드 - 기간 :
active/done상태 표시 - 데이트 포맷 :
YYYY-MM-DD
⚠️ Mermaid 차트 (서버 렌더링 불가)
📊 차트 코드 보기
gantt
title 프로젝트 일정
dateFormat YYYY-MM-DD
section 설계
요구사항 분석 :active, des1, 2023-10-01, 7d
기술 스택 선정 : des2, after des1, 5d
section 개발
백엔드 API : dev1, after des2, 10d
프론트엔드 : dev2, after des1, 14d
WordPress 사용자: Mermaid Chart 플러그인을 설치하면 자동으로 렌더링됩니다.
또는 Mermaid Live Editor에서 이미지로 다운로드하세요.
gantt
title 프로젝트 일정
dateFormat YYYY-MM-DD
section 설계
요구사항 분석 :active, des1, 2023-10-01, 7d
기술 스택 선정 : des2, after des1, 5d
section 개발
백엔드 API : dev1, after des2, 10d
프론트엔드 : dev2, after des1, 14d
→ 리소스 최적화:
crit히트맵으로 크리티컬 패스 강조
→ 실시간 업데이트: 진행률 퍼센트(%) 자동 계산
📈 7. 파이 차트 (Pie Chart): 데이터 비율의 인사이트
전체 대비 부분의 관계
범주별 구성 비율을 원형 분할로 직관화합니다.
커스터마이징 포인트:
- 제목 :
title파라미터 - 라벨 포맷 :
showData옵션 - 컬러 팔레트 : CSS 클래스 연동
⚠️ Mermaid 차트 (서버 렌더링 불가)
📊 차트 코드 보기
pie title 데이터 분포
"JavaScript" : 42.7
"Python" : 28.1
"Java" : 15.3
"기타" : 13.9
WordPress 사용자: Mermaid Chart 플러그인을 설치하면 자동으로 렌더링됩니다.
또는 Mermaid Live Editor에서 이미지로 다운로드하세요.
pie title 데이터 분포
"JavaScript" : 42.7
"Python" : 28.1
"Java" : 15.3
"기타" : 13.9
→ 시각화 팁:
color태그로 브랜드 컬러 적용
→ 한계 극복: 10개 이하의 범주 사용 권장
🧾 8. 요구사항 다이어그램 (Requirement Diagram): 복잡성의 구조화
의존성 체인 분석 도구
계층적 요구사항 관계를 추적하고 검증합니다.
심볼 체계:
- 요구사항 : ID + 설명
- 만족(Satisfy) :
-^- - 상세화(Refine) :
.->
⚠️ Mermaid 차트 (서버 렌더링 불가)
📊 차트 코드 보기
requirementDiagram
requirement req1 {
id: R01
text: 3초 내 페이지 로딩
}
requirement req2 {
id: R02
text: CDN 적용
}
req1 -^- req2
element 컴포넌트 {
type: Frontend
}
req2 .-> 컴포넌트
WordPress 사용자: Mermaid Chart 플러그인을 설치하면 자동으로 렌더링됩니다.
또는 Mermaid Live Editor에서 이미지로 다운로드하세요.
requirementDiagram
requirement req1 {
id: R01
text: 3초 내 페이지 로딩
}
requirement req2 {
id: R02
text: CDN 적용
}
req1 -^- req2
element 컴포넌트 {
type: Frontend
}
req2 .-> 컴포넌트
→ 컴플라이언스:
verify관계로 테스트 케이스 연결
→ 트레이서빌리티: 변경 시 영향도 분석 가능
🔗 9. 사용자 여정도 (User Journey Map): 경험의 시각화
사용자 행동 패턴 스토리보드
고객 경험(CX)을 단계별 페인포인트와 함께 나타냅니다.
⚠️ Mermaid 차트 (서버 렌더링 불가)
📊 차트 코드 보기
journey
title 쇼핑 과정
section 홈 접속
액션: 로그인 : 5: 고객
액션: 상품 검색 : 3: 고객
section 구매 결정
액션: 장바구니 추가 : 4: 고객
액션: 결제 완료 : 8: 시스템
WordPress 사용자: Mermaid Chart 플러그인을 설치하면 자동으로 렌더링됩니다.
또는 Mermaid Live Editor에서 이미지로 다운로드하세요.
journey
title 쇼핑 과정
section 홈 접속
액션: 로그인 : 5: 고객
액션: 상품 검색 : 3: 고객
section 구매 결정
액션: 장바구니 추가 : 4: 고객
액션: 결제 완료 : 8: 시스템
→ 정량적 분석: 숫자로 작업 시간/난이도 표시
→ 역할 명시: 콜론(:) 뒤에 행위자 지정
✅ 결론: 올바른 차트 선택이 비즈니스 언어다
지금까지 살펴본 머메이드의 차트 유형들은 문제 해결의 다양한 렌즈입니다. 프로세스 개선에는 ⚙️흐름도, API 검증에는 ⌛시퀀스 다이어그램, 데이터 설계에는 🔗ERD가 최적화된 선택입니다. 실제로 Spotify는 머메이드로 마이크로서비스 아키텍처 문서를 구현해 팀 간 협업 속도를 40% 향상시켰습니다.
🚀 지금 시작하는 첫걸음:
- 공식 라이브 에디터(mermaid.live)에서 샘플 코드 실험
- VS Code 확장 설치 후 Markdown 파일에
mermaid블록 추가 - 팀 위키에 동적 다이어그램으로 커뮤니케이션 품질 혁신
10분이면 완성되는 프로토타입이 여정의 시작입니다. 오늘 한 줄의 코드가 내일의 명료한 이해로 연결될 것입니다. 코드가 시각화되는 마법에 여러분의 프로젝트도 참여하세요!