Stack이란?
Stack은 정적인 소프트웨어 아키텍처와 기술 스택 다이어그램을 위한 작은 선언형 언어입니다. UTF-8 .stack 파일에 컴포넌트, 경계, 관계를 작성하고 좌표, 간격, 경로, 타이포그래피, 시각 표현은 렌더러가 결정합니다.
이 분리는 소스를 간결하고 리뷰하기 쉽게 만들며 버전 관리에도 적합하게 합니다. 같은 문서를 드로잉 명령으로 바꾸지 않고 호환 도구에서 포맷, 검사, 렌더링할 수 있습니다.
기본 모델
모든 문서는 언어 버전과 정확히 하나의 다이어그램을 포함합니다. 다이어그램에는 노드와 선택적인 그룹, 엣지, 테마, 레이아웃 의도가 들어갑니다.
stack 1.0
diagram "Service architecture" {
node client "Web app" {
kind client
}
node api "API" {
kind service
detail "Order orchestration"
}
edge client -> api "HTTPS" {
kind request
}
}이 소스는 클라이언트가 서비스를 호출한다는 의미를 나타냅니다. 박스 위치나 화살표 경로는 지정하지 않습니다.
Stack의 설계 목표
- 직접 꾸미지 않아도 아름답게: 박스 하나하나가 아닌 시스템을 설명하세요. 자동 배치와 조화로운 테마로 위치와 스타일을 수작업으로 조정하지 않아도 정돈된 다이어그램을 만듭니다.
- 어디서나 일관된 결과: 코딩 에이전트, 터미널, 브라우저를 자유롭게 오가세요. 공유 엔진이 같은 소스, 테마, 아이콘 팩을 다양한 작업 환경에서 일관되게 렌더링합니다.
- 내 기기에서 빠르게 렌더링: 렌더링 서버 없이 수정하고, 그리고, 다시 확인하세요. 소스를 내 기기에 둔 채 스크립트나 외부 에셋이 없는 독립형 SVG로 내보낼 수 있습니다.
일관된 결과를 얻으려면 엔진 버전, 소스, 테마, 아이콘 팩이 같아야 합니다. 렌더링은 로컬에서 수행되지만 도구 설치, 웹사이트 로딩, 명시적인 공급자 아이콘 가져오기에는 네트워크가 필요할 수 있습니다. 정확한 범위는 버전과 안전성을 참고하세요.
Stack이 아닌 것
Stack 1.0은 범용 그래프 언어, 픽셀 단위 캔버스, 인프라 정의, 실행 가능한 프로그래밍 언어가 아닙니다. 변수, import, macro, 조건문, CSS, 좌표, 임의 URL, 내장 HTML이 없으며 sequence, state-machine, class, ER, 전체 UML 표기법도 아닙니다.
큰 시스템은 하나에 압축하지 말고 여러 개의 집중된 다이어그램으로 설명하세요. Stack에는 가독성을 위한 요소 제한이 있습니다.
처리 모델
도구는 문서 디코딩과 파싱, 식별자와 기본값 해결, 의미 검증, 테마와 아이콘 해결, 레이아웃, 렌더링 순서로 처리합니다. 소스 오류는 렌더링을 중단합니다. 선택적 테마나 아이콘 누락, 만족할 수 없는 레이아웃 힌트는 경고가 되어 fallback 다이어그램을 반환할 수 있습니다.