feat: 가상화 문서들 추가

This commit is contained in:
DongHyeonka
2026-09-10 08:54:05 +09:00
parent e9f6a93327
commit 43e1aadef0
695 changed files with 153404 additions and 12754 deletions
@@ -19,6 +19,6 @@ Spring Security 의 자동 구성은 세션을 서블릿 컨테이너 메모리
## Relationships
- **OAuth2AuthorizedClient → PostgreSQL:** 저장. Evidence: L355L358.
- **브라우저 요청 → OAuth2AuthorizedClient:** principal 이름으로 조회. Evidence: L332L341.
- **브라우저 요청 → Application Session:** 세션 id 로 조회. Evidence: L326L331.
- **브라우저 요청 → OAuth2AuthorizedClient:** 조회. Evidence: L332L341.
- **브라우저 요청 → Application Session:** 조회. Evidence: L326L331.
- **Application Session → Redis:** 저장. Evidence: L347L351.
@@ -16,7 +16,7 @@ n3: "Redis" {
n4: "PostgreSQL" {
shape: cylinder
}
n0 -> n1: "세션 id 로 조회"
n0 -> n2: "principal 이름으로 조회"
n0 -> n1: "조회"
n0 -> n2: "조회"
n1 -> n3: "저장"
n2 -> n4: "저장"
@@ -7,8 +7,8 @@ digraph techviz {
n2 [label="OAuth2AuthorizedClient", shape=box, style="rounded,filled"];
n3 [label="Redis", shape=cylinder, style="rounded,filled"];
n4 [label="PostgreSQL", shape=cylinder, style="rounded,filled"];
n0 -> n1 [label="세션 id 로 조회", style=solid];
n0 -> n2 [label="principal 이름으로 조회", style=solid];
n0 -> n1 [label="조회", style=solid];
n0 -> n2 [label="조회", style=solid];
n1 -> n3 [label="저장", style=solid];
n2 -> n4 [label="저장", style=solid];
}
@@ -25,12 +25,12 @@
<mxPoint x="672.0" y="271.0" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="e_lookup-client" value="principal 이름으로 조회" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_request" target="n_authorized-client">
<mxCell id="e_lookup-client" value="조회" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_request" target="n_authorized-client">
<mxGeometry relative="1" as="geometry">
<mxPoint x="324.0" y="233.2" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="e_lookup-session" value="세션 id 로 조회" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_request" target="n_app-session">
<mxCell id="e_lookup-session" value="조회" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_request" target="n_app-session">
<mxGeometry relative="1" as="geometry">
<mxPoint x="329.2" y="152.8" as="offset"/>
</mxGeometry>
@@ -165,9 +165,9 @@
{
"id": "edge-label-lookup-client",
"type": "text",
"x": 256.0,
"x": 279.0,
"y": 221.25,
"width": 136,
"width": 90,
"height": 24,
"angle": 0,
"strokeColor": "#1e1e1e",
@@ -193,11 +193,11 @@
"locked": false,
"fontSize": 13,
"fontFamily": 5,
"text": "principal 이름으로 조회",
"text": "조회",
"textAlign": "center",
"verticalAlign": "middle",
"containerId": null,
"originalText": "principal 이름으로 조회",
"originalText": "조회",
"autoResize": true,
"lineHeight": 1.25
},
@@ -292,11 +292,11 @@
"locked": false,
"fontSize": 13,
"fontFamily": 5,
"text": "세션 id 로 조회",
"text": "조회",
"textAlign": "center",
"verticalAlign": "middle",
"containerId": null,
"originalText": "세션 id 로 조회",
"originalText": "조회",
"autoResize": true,
"lineHeight": 1.25
},
@@ -2,7 +2,7 @@
"harness_version": "0.2.0",
"spec_id": "bff-store-lookup-keys",
"spec_version": "1.1",
"spec_sha256": "43dcbb2dd166f749010bbc6c21cbd6765d700d103672a9a836c18a77c5dbf1ea",
"spec_sha256": "196f000c18bd775c5cfbdd1c571d723e4797bba6c32865e13e67197fb57faba1",
"source_context": {
"document": "docs/keycloak-session-store/final/document.md",
"document_sha256": "609353e10bfd37a9bbb6a79ecf2a32f3d3c02d5d161879a14ad4713e49e7e5e8",
@@ -14,10 +14,10 @@
},
"outputs": [
"bff-store-lookup-keys.svg",
"bff-store-lookup-keys.drawio",
"bff-store-lookup-keys.mmd",
"bff-store-lookup-keys.d2",
"bff-store-lookup-keys.dot",
"bff-store-lookup-keys.drawio",
"bff-store-lookup-keys.excalidraw",
"bff-store-lookup-keys.alt.md"
],
@@ -6,8 +6,8 @@ flowchart LR
n2["OAuth2AuthorizedClient"]
n3[("Redis")]
n4[("PostgreSQL")]
n0 -->|"세션 id 로 조회"| n1
n0 -->|"principal 이름으로 조회"| n2
n0 -->|"조회"| n1
n0 -->|"조회"| n2
n1 -->|"저장"| n3
n2 -->|"저장"| n4
classDef external stroke-dasharray: 6 4
@@ -54,11 +54,11 @@
<rect class="edge-label-bg" x="650.0" y="257.0" width="44.0" height="22" rx="3" />
<text class="edge-label" x="672.0" y="272.0">저장</text>
<polyline class="edge kind-read style-solid emphasis-normal" points="220.0,202.0 300.0,202.0 300.0,264.5 380.0,264.5" data-evidence="332-341" />
<rect class="edge-label-bg" x="258.1" y="219.2" width="131.9" height="22" rx="3" />
<text class="edge-label" x="324.0" y="234.2">principal 이름으로 조회</text>
<rect class="edge-label-bg" x="302.0" y="219.2" width="44.0" height="22" rx="3" />
<text class="edge-label" x="324.0" y="234.2">조회</text>
<polyline class="edge kind-read style-solid emphasis-normal" points="220.0,184.0 305.2,184.0 305.2,121.5 390.5,121.5" data-evidence="326-331" />
<rect class="edge-label-bg" x="286.8" y="138.8" width="85.0" height="22" rx="3" />
<text class="edge-label" x="329.2" y="153.8">세션 id 로 조회</text>
<rect class="edge-label-bg" x="307.2" y="138.8" width="44.0" height="22" rx="3" />
<text class="edge-label" x="329.2" y="153.8">조회</text>
<polyline class="edge kind-write style-solid emphasis-normal" points="557.5,121.5 646.2,121.5 646.2,108.5 735.0,108.5" data-evidence="347-351" />
<rect class="edge-label-bg" x="648.2" y="101.0" width="44.0" height="22" rx="3" />
<text class="edge-label" x="670.2" y="116.0">저장</text>

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 8.1 KiB