터미널에서도 Mermaid 다이어그램을 SVG 및 ASCII로 렌더링!

by DD
4개월 전
조회수 12

AI 기반 프로그래밍에서 다이어그램 시각화의 중요성을 강조하며, Mermaid의 단점을 보완하는 beautiful-mermaid 라이브러리를 소개함

SVG 및 ASCII 렌더링을 지원하며, 15가지 테마와 CSS 커스텀 프로퍼티를 통한 실시간 테마 변경 기능을 제공함

제로 DOM 의존성(Zero DOM Dependencies), 2가지 색상 기반의 모노 모드(Mono Mode) 지원, 그리고 빠른 렌더링 속도를 특징으로 함

커뮤니티에서는 터미널 환경에서의 다이어그램 시각화에 대한 긍정적인 반응과 함께, 다양한 활용 가능성에 대한 기대감을 보임

Mermaid 렌더링 문제 해결

본 라이브러리는 기존 Mermaid의 미적 문제(Aesthetics), 복잡한 테마 설정, 터미널 출력 불가, 그리고 과도한 의존성 문제를 해결하고자 개발되었다. 특히, SVG 및 ASCII 렌더링을 지원하여 다양한 환경에서 다이어그램을 시각화할 수 있도록 지원한다. 이는 AI 기반 프로그래밍 환경에서 시스템 아키텍처(System Architecture) 및 데이터 흐름을 직관적으로 파악하는 데 기여한다.

CSS 커스텀 프로퍼티 기반 테마 시스템

beautiful-mermaid는 CSS 커스텀 프로퍼티(CSS Custom Properties)를 활용하여 실시간 테마 변경 기능을 제공한다. 사용자는 배경색(bg)과 전경색(fg) 두 가지 색상만으로 다이어그램을 구성하는 모노 모드(Mono Mode)를 사용할 수 있으며, 추가적으로 line, accent, muted, surface, border 색상을 지정하여 테마를 더욱 풍부하게 만들 수 있다. 이러한 유연성은 사용자 정의(Customization)를 용이하게 한다.

제로 DOM 의존성(Zero DOM Dependencies) 및 성능 최적화

본 라이브러리는 제로 DOM 의존성(Zero DOM Dependencies)을 통해 순수 TypeScript 환경에서 작동하며, 100개 이상의 다이어그램을 500ms 이내에 렌더링하는 뛰어난 성능(Performance)을 제공한다. 이는 복잡한 다이어그램을 다루는 경우에도 빠른 응답 속도를 보장하며, 터미널 환경(Terminal Environment) 및 웹 환경 모두에서 효율적인 사용을 가능하게 한다.

ASCII 렌더링을 통한 터미널 지원

beautiful-mermaid는 mermaid-ascii를 기반으로 ASCII/유니코드 렌더링을 지원하여 터미널 환경에서도 다이어그램을 시각화할 수 있도록 한다. 이는 CLI 도구에서 데이터 시각화(Data Visualization)를 가능하게 하며, AI 기반 프로그래밍 환경에서 디버깅(Debugging) 및 시스템 분석을 더욱 용이하게 한다. 특히, 데이터 격리 아키텍처(Data Isolation Architecture)를 시각적으로 표현하는 데 유용하다.

Render Mermaid diagrams as SVGs or ASCII art