refactor: 문서 개선 중

This commit is contained in:
donghyeon-ka
2026-09-21 14:30:55 +09:00
parent c93cdea150
commit 805a18f486
1497 changed files with 525837 additions and 59152 deletions
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -4,7 +4,7 @@
"title": "이 기록이 적용되지 않는 조건",
"question": "이 결론들을 언제 그대로 쓰면 안 되는가",
"type": "architecture",
"direction": "TB",
"direction": "LR",
"audience": [
"이 기록을 자기 환경에 옮기려는 엔지니어"
],
@@ -13,11 +13,11 @@
"long_description": "Keycloak 26 미만이면 persistent-user-sessions 가 기본이 아니라 A층 결론 중 셋이 뒤집힌다. volatile 에서는 캐시가 더운지 찬지가 DB 정지 시의 동작을 가른다. 인스턴스가 하나면 B층 질문 자체가 생기지 않는다. oauth2-proxy 에서 cookie-refresh 를 켜면 TTL 역산 정리 규칙이 무너진다. 그리고 이 실험대는 106초 시계 왜곡이 있었고 여기 적힌 수치는 그것을 보정한 값이다.",
"source_context": {
"document": "docs/keycloak-session-store/final/document.md",
"document_sha256": "1d44cba1905544d92f1d26ae36a8deb64a3db3914d6b488fd30d6ae7f8cfbabe",
"document_sha256": "28aef96a2bbb94fbb10ade26a71238fee62a5a4d9fa6e7749ae98cfd0a65e560",
"anchor": {
"kind": "heading",
"value": "이 기록이 적용되지 않는 조건",
"line": 689
"line": 1235
}
},
"composition": {
@@ -31,19 +31,37 @@
"groups": [],
"nodes": [
{
"id": "version",
"label": "Keycloak 버전",
"kind": "component",
"id": "scope",
"label": "적용 범위 확인",
"kind": "process",
"role": "source",
"emphasis": "warning",
"description": "26 미만이면 세션의 거처가 다르다.",
"emphasis": "primary",
"description": "이 기록의 결론을 옮기기 전에 환경 조건을 확인한다.",
"details": [
"A-1 · A-2 · A-8"
"환경 전제"
],
"evidence": [
{
"start_line": 684,
"end_line": 690
"start_line": 1235,
"end_line": 1242
}
],
"assumption": false
},
{
"id": "version",
"label": "Keycloak 버전",
"kind": "component",
"role": "target",
"emphasis": "warning",
"description": "26 미만이면 A층 결론 중 셋이 뒤집힌다.",
"details": [
"persistent-user-sessions"
],
"evidence": [
{
"start_line": 1237,
"end_line": 1238
}
],
"assumption": false
@@ -52,16 +70,16 @@
"id": "cache",
"label": "캐시 온도",
"kind": "component",
"role": "control",
"role": "target",
"emphasis": "warning",
"description": "volatile 에서 DB 정지 시의 동작을 가른다.",
"description": "volatile DB 정지 결과를 바꾼다.",
"details": [
"400 · 500 · 200"
"cold · warm"
],
"evidence": [
{
"start_line": 684,
"end_line": 692
"start_line": 1239,
"end_line": 1239
}
],
"assumption": false
@@ -70,14 +88,34 @@
"id": "instances",
"label": "인스턴스 수",
"kind": "component",
"role": "control",
"role": "target",
"emphasis": "normal",
"description": "하나면 B층 질문이 생기지 않는다.",
"details": [],
"description": "단일 인스턴스면 B층 질문이 생기지 않는다.",
"details": [
"1 · 2+"
],
"evidence": [
{
"start_line": 684,
"end_line": 694
"start_line": 1240,
"end_line": 1240
}
],
"assumption": false
},
{
"id": "cookie-refresh",
"label": "cookie refresh",
"kind": "component",
"role": "target",
"emphasis": "warning",
"description": "켜면 B-7a의 TTL 역산이 성립하지 않는다.",
"details": [
"--cookie-refresh"
],
"evidence": [
{
"start_line": 1241,
"end_line": 1241
}
],
"assumption": false
@@ -88,14 +126,14 @@
"kind": "component",
"role": "target",
"emphasis": "warning",
"description": "이 수치들은 106초 보정을 거친 값이다.",
"description": "이 실험대 수치는 106초 왜곡 보정을 전제로 한다.",
"details": [
"NTP 미동기 환경"
"NTP · 106초"
],
"evidence": [
{
"start_line": 684,
"end_line": 696
"start_line": 1242,
"end_line": 1242
}
],
"assumption": false
@@ -103,43 +141,71 @@
],
"edges": [
{
"id": "v-c",
"from": "version",
"id": "scope-version",
"from": "scope",
"to": "version",
"label": "버전 확인",
"kind": "request",
"evidence": [
{
"start_line": 1237,
"end_line": 1237
}
],
"assumption": false
},
{
"id": "scope-cache",
"from": "scope",
"to": "cache",
"label": "선행 조건",
"label": "캐시 확인",
"kind": "request",
"evidence": [
{
"start_line": 684,
"end_line": 690
"start_line": 1239,
"end_line": 1239
}
],
"assumption": false
},
{
"id": "c-i",
"from": "cache",
"id": "scope-instances",
"from": "scope",
"to": "instances",
"label": "다음 조건",
"label": "개수 확인",
"kind": "request",
"evidence": [
{
"start_line": 684,
"end_line": 694
"start_line": 1240,
"end_line": 1240
}
],
"assumption": false
},
{
"id": "i-cl",
"from": "instances",
"to": "clock",
"label": "수치 해석",
"id": "scope-cookie-refresh",
"from": "scope",
"to": "cookie-refresh",
"label": "설정 확인",
"kind": "request",
"evidence": [
{
"start_line": 684,
"end_line": 696
"start_line": 1241,
"end_line": 1241
}
],
"assumption": false
},
{
"id": "scope-clock",
"from": "scope",
"to": "clock",
"label": "시계 확인",
"kind": "request",
"evidence": [
{
"start_line": 1242,
"end_line": 1242
}
],
"assumption": false
@@ -147,6 +213,6 @@
],
"legend": [],
"metadata": {
"rationale": "적용 조건을 목록이 아니라 무엇을 무효로 만드는가로 이었다."
"rationale": "다섯 조건을 임의의 순서로 직렬화하지 않고, 같은 적용 범위 확인에서 각각 갈라지는 독립 전제로 그렸다."
}
}
}