docs: add SVG diagrams, explicit concept sections and the diagram convention
Twelve SVG architecture diagrams cover the experiments whose documents had little or no structure drawing, embedded under a 구조 heading with a shared convention file. Seven documents carried their concepts under narrative headings and now have an explicit 개념 section so they can be found. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
98a74e90a5
commit
78b270559c
@@ -240,6 +240,44 @@ select VERSION from OFFLINE_USER_SESSION ... for no key update skip locked
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## 개념
|
||||
|
||||
### user session 과 client session
|
||||
|
||||
```
|
||||
user session "이 브라우저는 labuser 로 로그인함"
|
||||
├─ client session : bff-confidential
|
||||
└─ client session : oauth2-proxy
|
||||
```
|
||||
|
||||
**재사용 탐지는 client session 만 제거한다.** user session 은 껍데기로 남아
|
||||
`Session doesn't have required client` 가 된다.
|
||||
|
||||
### `revokeRefreshToken` 과 `refreshTokenMaxReuse`
|
||||
|
||||
| 설정 | 뜻 |
|
||||
|---|---|
|
||||
| `revokeRefreshToken` | **회전 스위치.** 켜면 새 토큰 발급 시 옛 토큰을 무효화 |
|
||||
| `refreshTokenMaxReuse` | 그 위에서 **몇 번까지 봐줄 것인가** |
|
||||
|
||||
**이름이 "회전" 이 아니라 "취소" 라서 헷갈린다.**
|
||||
그리고 `maxReuse` 를 올리는 것은 해법이 아니다 — 동시 요청이 N개면
|
||||
`N-1` 이 필요하고, 그러면 회전의 보안 목적이 사라진다.
|
||||
|
||||
### lock 의 수명은 어디에 묶이는가
|
||||
|
||||
| 방식 | 프로세스가 죽으면 |
|
||||
|---|---|
|
||||
| **DB 행 잠금** | **연결이 끊기면 자동 해제** |
|
||||
| Redis lock + TTL | TTL 만료까지 막힌다 |
|
||||
|
||||
**잠금 수명이 연결 수명과 묶이는 것이 DB 잠금의 이점**이며,
|
||||
A-0 에서 Keycloak 자신이 `for no key update skip locked` 를 쓰는 이유다.
|
||||
|
||||
---
|
||||
|
||||
## 7. 재현 절차 (명령어)
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user