digraph techviz { graph [rankdir=LR, splines=ortho, nodesep=0.55, ranksep=0.85]; node [fontname=Helvetica, fontsize=11, margin="0.18,0.12", style="rounded,filled", fillcolor=white, color="#2d4357", penwidth=1.5]; edge [fontname=Helvetica, fontsize=10, color="#364b5f", penwidth=1.4, arrowsize=0.75]; subgraph cluster_0 { label="tech-log-backend"; style="rounded,dashed"; color="#66788a"; n0 [label="저장", shape=cylinder, style="rounded,filled"]; n1 [label="백엔드 조립", shape=box, style="rounded,filled"]; } subgraph cluster_1 { label="전선 (HTTP)"; style="rounded,dashed"; color="#66788a"; n2 [label="HTTP envelope", shape=box, style="rounded,filled"]; } subgraph cluster_2 { label="tech-log-frontend"; style="rounded,dashed"; color="#66788a"; n3 [label="프론트엔드 조립", shape=box, style="rounded,filled"]; n4 [label="화면 컴포넌트", shape=box, style="rounded,filled"]; } n0 -> n1 [label="SQL 조회", style=solid]; n1 -> n2 [label="HTTP 응답", style=solid]; n2 -> n3 [label="HTTP 수신", style=solid]; n3 -> n4 [label="화면 한 줄", style=solid]; }