Files

63 lines
9.0 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" width="1440" height="620" viewBox="0 0 1440 620" role="img" aria-labelledby="title desc">
<title id="title">Component flow</title>
<desc id="desc">클라이언트, 인증 게이트웨이, 체크아웃 API, 주문 DB, 이벤트 버스, 결제 제공자 간의 요청·응답·상태 저장·이벤트 발행 관계.</desc>
<metadata>{&quot;generator&quot;:&quot;examples/build_examples.py&quot;,&quot;version&quot;:&quot;0.3.0&quot;,&quot;canvas_policy&quot;:&quot;diagram-only&quot;,&quot;decorative_effects&quot;:false}</metadata>
<defs>
<marker id="arrow-ink" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#24272B"/></marker>
<marker id="arrow-muted" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#667085"/></marker>
<marker id="arrow-blue" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#1677FF"/></marker>
<marker id="arrow-green" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#00A86B"/></marker>
<marker id="arrow-red" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#D94B4B"/></marker>
<marker id="arrow-purple" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#7556D8"/></marker>
<marker id="arrow-white" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#FFFFFF"/></marker>
<marker id="arrow-yellow" markerWidth="10" markerHeight="8" refX="9" refY="4" orient="auto" markerUnits="strokeWidth"><path d="M 0 0 L 10 4 L 0 8 z" fill="#E7C51D"/></marker>
</defs>
<rect width="1440" height="620" fill="#FFFFFF"/>
<rect x="300" y="58" width="1050" height="500" fill="none" stroke="#B8BEC7" stroke-width="1.3" rx="10" stroke-dasharray="8 7" />
<rect x="307" y="50" width="103.8" height="20" fill="#FFFFFF" rx="2" />
<text x="314" y="63" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="600" fill="#667085" text-anchor="start">Checkout system</text>
<rect x="45" y="248" width="170" height="82" fill="#FFFFFF" stroke="#67717D" stroke-width="1.5" rx="8" stroke-dasharray="7 6" />
<text x="130" y="279" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="17" font-weight="700" fill="#24272B" text-anchor="middle">Client</text>
<text x="130" y="306" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="450" fill="#667085" text-anchor="middle">web / mobile</text>
<rect x="350" y="248" width="200" height="82" fill="#FAFAFA" stroke="#4B5563" stroke-width="1.6" rx="8" />
<text x="450" y="281" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="17" font-weight="700" fill="#24272B" text-anchor="middle">Auth Gateway</text>
<text x="450" y="308" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="450" fill="#667085" text-anchor="middle">request validation</text>
<rect x="660" y="220" width="220" height="135" fill="#F7FBFF" stroke="#0B5CC4" stroke-width="2" rx="8" />
<text x="770" y="279.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="17" font-weight="700" fill="#24272B" text-anchor="middle">Checkout API</text>
<text x="770" y="306.5" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="450" fill="#667085" text-anchor="middle">payment orchestration</text>
<rect x="1040" y="216" width="230" height="74" fill="#F7FBFF" />
<ellipse cx="1155" cy="216" rx="115" ry="11" fill="#F7FBFF" stroke="#0B5CC4" stroke-width="1.6" />
<path d="M 1040 216 L 1040 290" fill="none" stroke="#0B5CC4" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
<path d="M 1270 216 L 1270 290" fill="none" stroke="#0B5CC4" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
<path d="M 1040 290 C 1086 303, 1224 303, 1270 290" fill="none" stroke="#0B5CC4" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round" />
<text x="1155" y="256" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="16" font-weight="700" fill="#24272B" text-anchor="middle">Order DB</text>
<text x="1155" y="278" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="11" font-weight="450" fill="#667085" text-anchor="middle">order state</text>
<rect x="1080" y="78" width="190" height="72" fill="#FAFAFA" stroke="#4B5563" stroke-width="1.6" rx="8" />
<text x="1175" y="106" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="17" font-weight="700" fill="#24272B" text-anchor="middle">Event Bus</text>
<text x="1175" y="133" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="450" fill="#667085" text-anchor="middle">payment.approved</text>
<rect x="1080" y="430" width="190" height="82" fill="#FAFAFA" stroke="#4B5563" stroke-width="1.6" rx="8" />
<text x="1175" y="463" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="17" font-weight="700" fill="#24272B" text-anchor="middle">Payment Provider</text>
<text x="1175" y="490" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="450" fill="#667085" text-anchor="middle">external</text>
<path d="M 215 289 L 350 289" fill="none" stroke="#24272B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<rect x="255.2" y="264" width="53.6" height="21" fill="#FFFFFF" rx="2" />
<text x="282" y="278" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="600" fill="#24272B" text-anchor="middle">HTTPS</text>
<path d="M 550 289 L 660 289" fill="none" stroke="#24272B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<rect x="565.9" y="264" width="78.2" height="21" fill="#FFFFFF" rx="2" />
<text x="605" y="278" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="600" fill="#24272B" text-anchor="middle">검증된 요청</text>
<path d="M 880 255 L 955 255 L 955 235 L 1040 235" fill="none" stroke="#0B5CC4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-blue)" />
<rect x="908.2" y="211" width="97.6" height="21" fill="#FFFFFF" rx="2" />
<text x="957" y="225" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="600" fill="#0B5CC4" text-anchor="middle">PENDING 저장</text>
<path d="M 880 315 L 970 315 L 970 270 L 1040 270" fill="none" stroke="#0B5CC4" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-blue)" />
<rect x="925.1" y="290" width="73.9" height="21" fill="#FFFFFF" rx="2" />
<text x="962" y="304" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="600" fill="#0B5CC4" text-anchor="middle">PAID 갱신</text>
<path d="M 815 220 L 815 113 L 1080 113" fill="none" stroke="#7556D8" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="7 5" marker-end="url(#arrow-purple)" />
<rect x="887.2" y="87" width="119.6" height="21" fill="#FFFFFF" rx="2" />
<text x="947" y="101" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="600" fill="#7556D8" text-anchor="middle">payment.approved</text>
<path d="M 880 335 L 955 335 L 955 471 L 1080 471" fill="none" stroke="#24272B" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" marker-end="url(#arrow-ink)" />
<rect x="948.9" y="445" width="66.2" height="21" fill="#FFFFFF" rx="2" />
<text x="982" y="459" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="600" fill="#24272B" text-anchor="middle">승인 요청</text>
<path d="M 1080 498 L 1010 498 L 1010 390 L 770 390 L 770 355" fill="none" stroke="#667085" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="6 5" marker-end="url(#arrow-muted)" />
<rect x="866.9" y="367" width="66.2" height="21" fill="#FFFFFF" rx="2" />
<text x="900" y="381" font-family='&quot;Noto Sans CJK KR&quot;, &quot;Apple SD Gothic Neo&quot;, sans-serif' font-size="12" font-weight="600" fill="#667085" text-anchor="middle">승인 응답</text>
</svg>