digraph techviz { graph [rankdir=TB, 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]; n0 [label="로그인 · refresh 요청", shape=box, style="rounded,dashed,filled"]; n1 [label="CLIENT 조회", shape=box, style="rounded,filled"]; n2 [label="CLIENT_SCOPE_CLIENT 조회", shape=box, style="rounded,filled"]; n3 [label="PostgreSQL", shape=cylinder, style="rounded,filled"]; n0 -> n1 [label="클라이언트 확인", style=solid]; n1 -> n2 [label="refresh 는 스코프도 다시 계산한다", style=solid]; n2 -> n3 [label="캐시에 없으면 여기까지 간다", style=solid]; }