etc./...

VSCode에서 Mermaid Chart로 다이어그램 그리기: 개발자를 위한 완벽 가이드

DandyNow 2025. 6. 2. 17:02
728x90
반응형

VSCode에서 Mermaid Chart로 다이어그램 그리기: 개발자를 위한 완벽 가이드

개발 과정에서 시스템 구조나 프로세스를 시각화해야 할 때가 있다. 복잡한 그래픽 도구 대신 코드로 다이어그램을 그릴 수 있다면 얼마나 좋을까? Mermaid Chart는 바로 그런 니즈를 충족시켜주는 강력한 도구이다.

Mermaid Chart란?

Mermaid는 텍스트 기반의 다이어그램 생성 도구이다. 마크다운과 유사한 문법을 사용해 다양한 종류의 차트와 다이어그램을 생성할 수 있다. 플로우차트, 시퀀스 다이어그램, 간트 차트, 클래스 다이어그램 등을 코드로 작성할 수 있어 개발자들에게 특히 인기가 높다.

VSCode Mermaid Extension 설치

1. Extension 설치

VSCode에서 Extensions 탭(Ctrl+Shift+X)을 열고 "Mermaid Chart"를 검색한다. 가장 인기 있는 확장 프로그램은 Mermaid Chart이다.

2. 설치 확인

설치가 완료되면 .mmd 또는 .mermaid 파일을 생성하거나, 마크다운 파일에서 mermaid 코드 블록을 사용할 수 있다.

다이어그램 내보내기 (Export)

Mermaid Chart Extension의 가장 유용한 기능 중 하나는 생성된 다이어그램을 다양한 형식으로 내보낼 수 있다는 점이다.

지원하는 내보내기 형식

  • SVG: 벡터 그래픽 형식으로 확대해도 화질이 깨지지 않는다
  • PNG: 래스터 이미지 형식으로 일반적인 이미지 용도에 적합하다

내보내기 방법

  1. 다이어그램을 작성한 후 미리보기 창을 연다
  2. 미리보기 창에서 우클릭하거나 상단의 내보내기 버튼을 클릭한다
  3. 원하는 형식(SVG 또는 PNG)을 선택한다
  4. 저장할 위치를 지정하고 파일을 저장한다

이 기능을 통해 프레젠테이션, 문서, 웹사이트 등에서 고품질의 다이어그램을 활용할 수 있다.

기본 사용법

파일 생성 및 미리보기

  1. 새 파일을 생성하고 .mmd 확장자로 저장한다
  2. Ctrl+Shift+P를 눌러 Command Palette를 연다
  3. "Mermaid: Preview Mermaid Diagram"을 선택하여 미리보기 창을 연다

실전 예제로 배우는 Mermaid

1. 플로우차트 (Flowchart)

사용자 로그인 프로세스를 플로우차트로 표현해보겠다.

flowchart TD
    A[사용자 접속] --> B{로그인 여부 확인}
    B -->|Yes| C[메인 페이지 이동]
    B -->|No| D[로그인 페이지 이동]
    D --> E[로그인 정보 입력]
    E --> F{인증 확인}
    F -->|Success| C
    F -->|Fail| G[에러 메시지 표시]
    G --> D

핵심 문법:

  • flowchart TD: 위에서 아래로 흐르는 플로우차트이다
  • []: 사각형 박스이다
  • {}: 다이아몬드 모양 (조건문)이다
  • -->: 화살표 연결이다
  • -->|텍스트|: 라벨이 있는 화살표이다

2. 시퀀스 다이어그램 (Sequence Diagram)

API 호출 과정을 시퀀스 다이어그램으로 표현해보겠다.

sequenceDiagram
    participant U as 사용자
    participant F as 프론트엔드
    participant A as API 서버
    participant D as 데이터베이스

    U->>F: 데이터 요청
    F->>A: API 호출
    A->>D: 데이터 조회
    D-->>A: 데이터 반환
    A-->>F: JSON 응답
    F-->>U: 화면 업데이트

    Note over F,A: 인증 토큰 필요

핵심 문법:

  • participant: 참여자 정의이다
  • ->>: 동기 메시지이다
  • -->>: 응답 메시지이다
  • Note over: 노트 추가이다

3. 클래스 다이어그램 (Class Diagram)

간단한 전자상거래 시스템의 클래스 구조를 표현해보겠다.

classDiagram
    class User {
        +int id
        +string name
        +string email
        +login()
        +logout()
    }
    class Product {
        +int id
        +string name
        +float price
        +int stock
        +updateStock()
    }
    class Order {
        +int id
        +Date orderDate
        +float totalAmount
        +calculateTotal()
        +processPayment()
    }
    User --|> Order : places // User가 Order를 '생성'하는 관계를 표현한다면
    Order --o Product : contains // Order가 Product를 '포함'하는 관계를 표현한다면

핵심 문법:

  • class: 클래스 정의이다
  • +: public 메소드/속성이다
  • -: private 메소드/속성이다
  • ||--o{: 일대다 관계이다

4. 간트 차트 (Gantt Chart)

프로젝트 일정을 간트 차트로 표현해보겠다.

gantt
    title 웹 애플리케이션 개발 일정
    dateFormat  YYYY-MM-DD
    section 기획
    요구사항 분석    :done, req, 2024-01-01, 2024-01-07
    UI/UX 설계      :done, design, 2024-01-08, 2024-01-15

    section 개발
    프론트엔드 개발  :active, frontend, 2024-01-16, 2024-02-15
    백엔드 개발      :backend, 2024-01-20, 2024-02-20

    section 테스트
    단위 테스트      :test1, after frontend, 5d
    통합 테스트      :test2, after backend, 3d

    section 배포
    배포 준비        :deploy, after test2, 2d
    서비스 런칭      :launch, after deploy, 1d

마크다운과 함께 사용하기

README.md 파일이나 문서에서 Mermaid를 사용하려면 다음과 같이 코드 블록을 작성한다:

```mermaid
graph LR
    A[개발] --> B[테스트]
    B --> C[배포]
    C --> D[모니터링]
    D --> A
```

고급 기능 및 팁

1. 스타일 커스터마이징

flowchart LR
    A[시작] --> B[처리]
    B --> C[완료]

    classDef startEnd fill:#f96,stroke:#333,stroke-width:2px
    classDef process fill:#bbf,stroke:#333,stroke-width:2px

    class A startEnd
    class B process
    class C startEnd

2. 서브그래프 사용

flowchart TB
    subgraph "프론트엔드"
        A[React App]
        B[Redux Store]
    end

    subgraph "백엔드"
        C[Express Server]
        D[MongoDB]
    end

    A --> C
    C --> D

3. 유용한 단축키

  • Ctrl+Shift+V: 마크다운 미리보기 (mermaid 포함)이다
  • Ctrl+K V: 마크다운을 옆에서 미리보기이다
  • Ctrl+Shift+P → "Mermaid: Preview": Mermaid 전용 미리보기이다

실무에서의 활용 사례

1. 시스템 아키텍처 문서화

graph TB
    subgraph "Client"
        A[웹 브라우저]
        B[모바일 앱]
    end

    subgraph "CDN"
        C[CloudFront]
    end

    subgraph "Load Balancer"
        D[ALB]
    end

    subgraph "Application"
        E[EC2 Instance 1]
        F[EC2 Instance 2]
    end

    subgraph "Database"
        G[RDS MySQL]
        H[Redis Cache]
    end

    A --> C
    B --> C
    C --> D
    D --> E
    D --> F
    E --> G
    F --> G
    E --> H
    F --> H

2. 코드 리뷰 프로세스

flowchart LR
    A[코드 작성] --> B[Pull Request 생성]
    B --> C{리뷰어 배정}
    C --> D[코드 리뷰]
    D --> E{승인 여부}
    E -->|승인| F[메인 브랜치 병합]
    E -->|수정 요청| G[코드 수정]
    G --> D
    F --> H[CI/CD 파이프라인 실행]

Mermaid의 장점

  1. 버전 관리 친화적: 텍스트 기반이므로 Git으로 변경사항 추적이 가능하다
  2. 협업 용이: 코드 리뷰 과정에서 다이어그램 변경사항도 함께 검토할 수 있다
  3. 유지보수성: 시스템 변경 시 다이어그램도 쉽게 업데이트할 수 있다
  4. 일관성: 팀 전체가 동일한 스타일과 표준으로 문서를 작성할 수 있다
  5. 다양한 형식 지원: SVG, PNG 등 다양한 형식으로 내보내기가 가능하다

주의사항 및 제한사항

  1. 복잡한 다이어그램의 한계: 매우 복잡한 다이어그램은 전문 도구가 더 적합할 수 있다
  2. 브라우저 호환성: 일부 오래된 브라우저에서는 렌더링이 제대로 되지 않을 수 있다
  3. 성능: 매우 큰 다이어그램은 렌더링 시간이 오래 걸릴 수 있다

마무리

Mermaid Chart는 개발자들이 문서화를 더 쉽고 효율적으로 할 수 있게 도와주는 강력한 도구이다. 특히 VSCode Extension과 함께 사용하면 개발 환경에서 바로 다이어그램을 작성하고 미리볼 수 있어 매우 편리하다.

SVG와 PNG 형식으로 내보내기가 가능한 점은 프레젠테이션이나 문서 작성 시 특히 유용하다. 코드와 함께 관리되는 문서화는 프로젝트의 품질을 높이고 팀 협업을 원활하게 만든다. 오늘부터 Mermaid를 활용해서 더 나은 문서화를 시작해보자!


더 많은 예제와 문법은 Mermaid 공식 문서에서 확인할 수 있다.

728x90
반응형