# 아키텍처 다이어그램을 염두에 두고 설계된 참신한 자동 레이아웃 알고리즘 'TALA' 오픈소스화

> https://bookfactory.kr/c/news/10975
> 게시판: 뉴스
> 작성자: tachikoma43
> 작성일: 2026-09-08T22:07:53.003Z

---

개발자용 다이어그램 작성 플랫폼을 개발하는 Terrastruct는 아키텍처 다이어그램 작성 프로세스를 개선하는 새로운 자동 레이아웃 알고리즘 'TALA(Terrastruct's AutoLayout Algorithm)'를 오픈 소스로 공개했습니다.TALA is open-source | D2 Documentationhttps://d2lang.com/blog/tala-is-open-source/TALA는 Terrastruct가 개발을 진행 중인 D2 언어와 마찬가지로 오픈 소스 소프트웨어 라이선스인 MPL-2.0으로 제공됩니다. TALA는 기존의 비순환 유향 그래프(DAG) 기반 레이아웃 엔진과 궤를 달리하며, 화이트보드에 그리는 것처럼 더욱 직관적이고 아름다운 다이어그램 생성이 가능한 직교 레이아웃 엔진이라고 합니다. TALA의 특징은 그래프 그리기에 관한 연구 논문에서 얻은 다양한 아이디어를 독자적인 기술과 결합하여 대칭성·중앙 거리·흐름·유사 노드의 클러스터링과 같은 다양한 방침을 '아름다운가'라는 관점에 기반하여 검토하는 것입니다. 노드의 위치나 크기를 커스텀할 수 있고 좌표를 고정할 수도 있으므로, "2차원 공간에서의 그리기를 모델에 맡기고 모델이 취약한 라우팅에 대해서는 TALA가 처리한다", "특정 노드만 좌표를 지정하고 나머지 배치는 레이아웃 엔진에 맡긴다"와 같은 방식으로 활용할 수도 있습니다.

다만 TALA가 반드시 만능은 아니며, 몇 가지 트레이드오프도 존재한다고 합니다.・알고리즘에 랜덤 요소가 포함되어 있어 노드를 1개 추가하는 것만으로도 다이어그램이 크게 변경될 가능성이 있음・DAG 레이아웃에는 적합하지 않음・큰 다이어그램을 작성할 때 처리 시간이 길어질 수 있음TALA는 D2 v0.9.0 이후 버전에 번들되어 있으며, D2를 설치하고 '--layout=tala' 옵션을 지정하면 사용할 수 있습니다. 또한 브라우저 상에서 실행 가능한 D2 Playground에서 'Layout engine'을 TALA로 설정하여 사용할 수도 있습니다. 두 방법 모두 레이아웃 엔진을 이전부터 D2에 표준 탑재되어 있던 Dagre·ELK로 전환할 수 있으며, 생성된 다이어그램을 비교해 보면 경우에 따라 TALA 이외의 레이아웃이 더 적절할 수도 있습니다.

TALA·Dagre·ELK라는 3가지 레이아웃 알고리즘으로 아키텍처 다이어그램을 레이아웃해 봅니다. Fulcro RAD의 아키텍처 다이어그램을 TALA로 레이아웃하면 다음과 같습니다. 세로와 가로 배치를 적절히 활용하여 다이어그램을 작성하고 있음을 알 수 있습니다.

이쪽은 Dagre를 이용한 레이아웃입니다. 상당한 세로형으로 길게 되어 있습니다.

이쪽은 ELK를 이용한 레이아웃인데, 더욱 세로로 길어졌습니다. 경우에 따라서는 세로형 레이아웃이 데이터의 흐름을 파악하기 더 쉬울 수 있으므로, 용도에 맞게 구분하여 사용하는 것이 중요하다고 볼 수 있습니다.

다음으로 CHERI-Mocha Secure Enclave SoC의 아키텍처 다이어그램을 활용한 비교를 진행해 봅니다. TALA를 이용한 레이아웃은 역시 가로세로 균형이 좋고, 이에 더해 'Peripherals'의 내부 구조가 깔끔하게 정리되어 있다는 점, Mocha의 외부 요소가 적절히 분산 배치되어 있다는 점 등도 완성도가 높습니다.

Dagre에 의한 레이아웃은 지나치게 가로로 길게 되어 있으며, 「Legend」를 오른쪽에 배치한 탓에 가로로 긴 정도가 더욱 심해졌습니다. 가로로 길어진 주요 원인은 「Peripherals」의 내부 구조가 모두 가로로 나란히 배치되어 있다는 점에 있습니다. 「Mailbox」「SRAM」「Debug」「Tag control」과 같은 요소도 가로로 나란히 배치되어 있으며, Mocha의 외부 요소가 모두 그림 하단에 몰려서 배치되어 있는 점도 그다지 좋지 않습니다. 적어도 「CVA6-CHERI」는 오른쪽이 아니라 위쪽으로 가져왔으면 좋았을 부분입니다.

ELK에 의한 레이아웃은 Dagre만큼 심하지 않으며, Mocha의 외부 요소는 모두 하단에 배치되어 있기는 하지만 적절히 분산되어 있습니다. 다만, 「Peripherals」의 내부 구조가 가로로 나란히 배치되어 있어 전체적인 균형을 깨뜨리고 있다는 점이 조금 아쉽습니다.

TALA는 아키텍처 구성도 작성 프로세스에 「자동 레이아웃」이라는 새로운 선택지와 가능성을 가져다주는 주목할 만한 기술이라 할 수 있으며, 오픈소스화를 통한 커뮤니티의 활성화가 추가적인 개선으로 이어질 것으로 기대됩니다.

[원문 보기](https://gigazine.net/news/20260909-tala-is-open-source/) | 출처: Gigazine