D2 아키텍처 다이어그램용 자동 배치 알고리즘 TALA, MPL-2.0으로 공개
- Terrastruct가 아키텍처 다이어그램용 자동 배치 알고리즘 TALA를 MPL-2.0으로 공개했으며, D2와 같은 라이선스를 적용함
- TALA는 한 방향으로 자라는 DAG 중심 배치 대신 화이트보드식 직교 레이아웃을 지향하며, 대칭성, 중간 거리, 흐름, 유사 노드 군집화 등을 점수화해 배치를 고름
- 기본값으로 3개 시드의 후보 레이아웃을 만든 뒤 최고 점수를 선택함. 같은 입력과 시드에서는 결과가 같지만 노드 하나만 추가해도 전체 배치가 크게 바뀔 수 있음
- 사용자가 일부 노드의 좌표와 크기를 고정하고 나머지는 TALA에 맡기는 혼합 배치를 지원함. 글은 2D 공간 배치는 잘하지만 엣지 라우팅에는 약한 AI 에이전트 사용 사례를 예로 듦
- TALA는 D2 v0.9.0에 포함됐고
--layout=tala로 선택 가능함. 큰 다이어그램에서는 실행 시간이 비선형으로 늘며, 긴 방향성 그래프에는 Dagre나 ELK가 더 나을 수 있음
Hacker News opinions
아키텍처 다이어그램에 특히 맞는다고 한 이유가 궁금함. 어떤 휴리스틱이나 개념이 TALA를 더 돋보이게 하는지 알고 싶음.
D2를 알기 전에는 Disposition이라는 다이어그램 생성기를 직접 만들었음. 노드 배치, 라벨을 피하는 엣지 라우팅, 중첩과 rankdir까지 다루다 보니 이 문제가 얼마나 어려운지 알겠더라.
첫 몇 그래프는 훨씬 정돈돼 보여서 인상적이었음. 다만 Go queue 예시는 TALA가 서비스와 사용자의 묶음, 좌우 흐름을 깨서 오히려 더 복잡하게 보임.
본문도 그 한계를 인정했음. 긴 방향성 그래프는 TALA보다 Dagre나 ELK를 선호한다고 했지.
예전 직장에서 아키텍처 다이어그램을 여러 개 그렸는데, D2는 하루쯤 배우고 그 이상의 시간을 아꼈음.
D2 기본 레이아웃 때문에 첫인상이 별로였는데 ELK는 많이 나았고, TALA는 경우에 따라 ELK보다 더 좋았음. 업무에서 D2를 쓰진 않아서 예전 유료 TALA 가격은 취미 지출 한도를 넘었지만.
자동 레이아웃이 더 필요했는데 반가운 소식임. Daedalus에 넣어볼 생각임.