D2나 Penrose 같은 도구를 Python으로 감싸서 데이터 기반 다이어그램 스크립팅을 시도 중임
하지만 대부분의 선언형 도구들은 “declare, then tweak” 워크플로를 지원하지 않아 불편함
Penrose는 수정은 쉽지만 결과가 랜덤하고 예측 불가한 면이 있음
D2의 커스텀 레이아웃 조정은 독점 엔진에서만 가능함
오픈소스 엔진에서는 불가능하지만 Freehand 기능으로 일부 조정 가능함
D2의 문법을 일반 프로그래밍 언어로 얼마나 가깝게 구현할 수 있을지 궁금했음
Python에서는 연산자 오버로딩 제약 때문에 완전히 동일한 DSL은 어렵지만, 문자열 연산자 오버로딩으로 비슷하게 시도 가능함
Python에서도 약간의 트릭으로 a <- b | "edge" 같은 문법을 흉내낼 수 있음
하지만 실제로 쓰면 유령이 되어 괴롭히겠다며 농담함
Scala에서는 사용자 정의 연산자가 가능해 "x" --> "y" | "hello world" 같은 DSL을 만들 수 있음
다만 남용은 좋지 않음
Ruby에서도 x >> y << "label" 형태로 간단한 내부 DSL을 구현 가능함
Diagram 클래스에서 객체 모델을 만들어 렌더러를 붙일 수도 있음
mgmt 프로젝트의 메인 작성자로서 DAG를 많이 다룸
노드와 엣지를 추가·삭제할 때 시각적으로 안정적이고 애니메이션 전환이 가능한 다이어그램이 필요함
Graphviz는 스냅샷마다 레이아웃이 흔들려 불편함
d2의 watch 기능으로 파일을 단계별로 교체하는 간단한 스크립트 해킹으로 비슷한 효과를 낼 수 있음
D2를 오래 사용해왔고 내부에서도 적극 추천 중임
하지만 엔터프라이즈 라이선스 비용이 너무 높아 개인용으로만 사용 중임
TALA 라이선스가 연 3000달러, 개인용도 120달러로 부담스러움
Helm chart나 시스템 설명을 LLM에 넣어 자동 다이어그램 생성하는 기능은 혁신적이라 생각함
Hacker News 의견
D2의 공동 제작자로서 최근 애니메이션 기능 확장 아이디어를 구상 중임
관련 논의를 GitHub Discussion에 올려두었으니 의견을 듣고 싶음
주로 mermaid를 쓰지만 D2가 더 유연한 인터페이스를 제공할 수 있을지 궁금함
LLM과 연동되는 툴 호출 기능이나 MCP 같은 사용자 친화적 인터페이스 계획이 있는지도 알고 싶음
많은 객체를 렌더링할 때도 엔진과 싸우지 않아도 돼서 좋았음
다만 sdk/d2lib의 문서화가 부족해 처음엔 시행착오가 있었음
하지만 화려한 애니메이션은 꼭 필요하다고 생각하지 않음. 강조가 필요할 땐 단순히 색을 바꾸는 게 더 직관적임
하지만 텍스트 변경으로 전체 다이어그램이 흔들리는 건 오히려 산만할 수 있음
또한 Swimlane 다이어그램을 정식 지원해주면 좋겠음
D2나 Penrose 같은 도구를 Python으로 감싸서 데이터 기반 다이어그램 스크립팅을 시도 중임
하지만 대부분의 선언형 도구들은 “declare, then tweak” 워크플로를 지원하지 않아 불편함
Penrose는 수정은 쉽지만 결과가 랜덤하고 예측 불가한 면이 있음
오픈소스 엔진에서는 불가능하지만 Freehand 기능으로 일부 조정 가능함
D2의 문법을 일반 프로그래밍 언어로 얼마나 가깝게 구현할 수 있을지 궁금했음
Python에서는 연산자 오버로딩 제약 때문에 완전히 동일한 DSL은 어렵지만, 문자열 연산자 오버로딩으로 비슷하게 시도 가능함
a <- b | "edge"같은 문법을 흉내낼 수 있음하지만 실제로 쓰면 유령이 되어 괴롭히겠다며 농담함
"x" --> "y" | "hello world"같은 DSL을 만들 수 있음다만 남용은 좋지 않음
x >> y << "label"형태로 간단한 내부 DSL을 구현 가능함Diagram 클래스에서 객체 모델을 만들어 렌더러를 붙일 수도 있음
mgmt 프로젝트의 메인 작성자로서 DAG를 많이 다룸
노드와 엣지를 추가·삭제할 때 시각적으로 안정적이고 애니메이션 전환이 가능한 다이어그램이 필요함
Graphviz는 스냅샷마다 레이아웃이 흔들려 불편함
D2의 Sketch 모드와 인터랙티브 기능이 정말 유용함
툴팁과 링크 덕분에 다이어그램 활용도가 크게 높아짐
D2를 오래 사용해왔고 내부에서도 적극 추천 중임
하지만 엔터프라이즈 라이선스 비용이 너무 높아 개인용으로만 사용 중임
TALA 라이선스가 연 3000달러, 개인용도 120달러로 부담스러움
Helm chart나 시스템 설명을 LLM에 넣어 자동 다이어그램 생성하는 기능은 혁신적이라 생각함
최근 D2의 ASCII 렌더링 지원이 화제가 되었음
관련 토론은 이전 게시글에서 이어짐
D2는 꽤 오래됐지만 여전히 mermaid보다 덜 알려진 느낌임
기능적으로는 훨씬 뛰어나서 더 많은 사람들이 알았으면 함
우리 AI 플랫폼 zo.computer에서 다이어그램 생성 도구로 D2를 채택했음
mermaid보다 표현력이 높아 AI 기반 시각화에 적합함
D2는 훌륭하지만 PlantUML이나 mermaid 대비 결정적 차별점이 부족함
여전히 “다이어그램 코드의 킬러앱”을 기다리고 있음
npm 설치가 필요 없는 것도 마음에 듦
다만 mermaid는 Obsidian 등과의 통합성이 뛰어남