Files
llm-wiki/raw/branch-notes/feature-keycloak-patterns.md
T

19 KiB

title, source_type, status, id, kind, project, work_item, inherits, refines, overrides, depends_on, contract_packet, branch, parent_branch, related_projects, tags, created, target_merge, status_label, contract_packet_sha256
title source_type status id kind project work_item inherits refines overrides depends_on contract_packet branch parent_branch related_projects tags created target_merge status_label contract_packet_sha256
branch / feature-keycloak-patterns (root, 작업 인덱스) branch-note raw BR-KEYCLOAK-PATTERNS-OVERVIEW-020 project-work-item keycloak-patterns-overview WI-KEYCLOAK-PATTERNS-OVERVIEW-020
DEC-KEYCLOAK-PATTERNS-OVERVIEW-AUTH-TAXONOMY-001@1
1 feature-keycloak-patterns
keycloak-patterns
branch
keycloak-patterns
oauth2
oidc
auth
2026-05-25 in-progress 6855baa10b305d5b251f64bfec1f707854488bd72d631b0f9968cfcaaf1f8981

branch: feature-keycloak-patterns (root)

Layer: raw/branch-notes/작업 진행 인덱스. 프로젝트 정의·6 패턴 분류·공통 컴포넌트는 raw/project-notes/keycloak-patterns-overview 참조. 본 root는 sub-branch 진행 상태와 일정만 추적. status_label: in-progress

부모 (필수)

raw/project-notes/keycloak-patterns-overview

브랜치 계약 패킷

  • 생성 시 프로젝트 개정: 1
  • 패킷 스키마: contract_packet: 1
  • 완료 조건: project governance hub가 AP1~AP4 taxonomy와 child progress index를 유지한다

상속한 프로젝트 결정

Decision Ref Project Summary Branch Application Source
DEC-KEYCLOAK-PATTERNS-OVERVIEW-AUTH-TAXONOMY-001@1 canonical 분류축은 AP1~AP4 인증 통합 아키텍처와 cross-cutting 변형이다 AP1~AP4 taxonomy와 child progress index를 유지하는 governance hub에 적용한다 raw/project-notes/keycloak-patterns-overview

브랜치 지역 결정

기존 branch-local 결정은 아래 ## Decision Evidence Map의 D-row가 소유하며 이 packet에서 복제하지 않는다.

Decision ID Decision Relation Supporting Claims Status

선언한 예외

Override ID Overrides Reason Approval Status

없음.

프로젝트 SSOT

목표

본 root branch는 keycloak-patterns 프로젝트의 작업 진행 인덱스 역할. 면접에서 "왜 이 배치를 택했나" / "Google 로그인이 붙으면 흐름이 어떻게 바뀌나" / "BFF vs SPA Direct OIDC trade-off는?"에 자신 있게 답할 수 있는 수준의 6 패턴 이해 + P3A 한정 실 구현이 최종 목표 (canonical SSOT 참조).

본 root 자체의 책무:

  • 6 sub-branch + 27 sub-sub-branch 진행 상태 추적

  • 외부 근거 raw 보존 인덱스

  • 머지 후 wiki 추출 시 비교 매트릭스 산출

  • 이슈:

  • PR:

범위

포함 범위

  • (본문 해당 섹션에서 다룬 항목 참조)

제외 범위

  • (명시 필요)

근거 (root는 hub 역할이라 자체 인용은 적고, 개별 결정 근거는 각 sub-branch의 Sources 표 참조)

개별 패턴별 근거는 sub-branch (feature-keycloak-edge-forwardauth-no-google ~ -6) 의 Sources 표에 위임.

6 sub-branch + 27 sub-sub-branch 진행 인덱스

⚠️ 갱신 (2026-07-14): 아래 6패턴 인덱스는 Phase 0 legacy(배치×federation 축). 현 실행계획 SSOT 는 raw/project-notes/keycloak-patterns-overview§Branch 분해 / 실행계획(R4) — 인증 아키텍처 4패턴(AP1~AP4) + 19 Tier-2. 신규 작업은 hub 분해표를 따르며, 아래 슬러그는 hub §2.3 매핑대로 AP 로 re-map 대상. D2(-{N}-{M} numbered 명명)는 CLAUDE.md §11 위반으로 폐기(각 sub-sub 는 이미 content-descriptive 슬러그라 실제 영향은 프레이밍뿐).

총 34 branch-notes (root 1 + sub 6 + sub-sub 27). 모두 documented-only / planned (P3A만 실 구현 대상).

P1A — Edge Forward Auth (no Google) — raw/branch-notes/feature-keycloak-edge-forwardauth-no-google

P1B — Edge + Google IdP Brokering — raw/branch-notes/feature-keycloak-edge-forwardauth-google-federation

P2A — Internal SPA + Resource Server (no Google) — raw/branch-notes/feature-keycloak-internal-spa-direct-no-google

P2B — Internal + Google federation — raw/branch-notes/feature-keycloak-internal-spa-direct-google-federation

P3A — Single EC2 (실 구현 대상)raw/branch-notes/feature-keycloak-single-ec2-no-google

P3B — Single EC2 + Google federation — raw/branch-notes/feature-keycloak-single-ec2-google-federation

TODO

  • 6 sub-branch 1차 작성 (목표 / 다이어그램 / 토큰 sequence / 장단점) — 등급: documented-only
  • 28 외부 근거 raw 보존 — 등급: documented-only
  • raw/project-notes/keycloak-patterns-overview 신설 (메인 SSOT, 2026-05-25) — 등급: documented-only
  • 6 sub-branch 외부 근거 섹션 강화 (채택 결정 / 검토 대안 / 비교 핵심 구조) — 등급: planned
  • 각 sub-branch 별 sub-sub-branch (세부 학습/구현 단계) 추가 — 등급: planned
  • P3A 실 구현 (/home/donghyeon/workspace/keycloak-patterns/) — 등급: planned
  • 6 패턴 trade-off 매트릭스 통합 문서 (Phase 4) — 등급: planned

진행 중 메모

  • root branch-note 슬림화: 프로젝트 정의는 raw/project-notes/keycloak-patterns-overview로 이전 (2026-05-25). root는 작업 인덱스만 유지.
  • 외부 근거 구조 강화 후속 작업: ca-tmpl branch-notes와 동일하게 "채택 결정 / 검토 대안 / 비교 핵심" 3단 구조로 재작성.
  • 역사 기록(폐기됨): 초기에는 feature-keycloak-patterns-{N}-{M} numbered hierarchy를 제안했으나 현 규칙과 충돌해 사용하지 않는다. 현재 규약은 구현 내용을 드러내는 4~8단어 영문 kebab-case slug이며 계층은 parent_branch## Parent로만 표현한다.

결정 사항 (decisions)

  • D1 2026-05-25: 프로젝트 정의는 raw/project-notes/에, 작업 진행은 raw/branch-notes/에. ca-tmpl과 동일 위계.
  • D2 (Historical / superseded — DO NOT USE) 2026-05-25: sub-sub-branch를 -{N}-{M} dash-숫자로 명명하자는 초기 결정. 현 CLAUDE.md §11과 rules/naming-conventions.md에 의해 폐기되었으며, 구현 내용을 드러내는 4~8단어 영문 kebab-case slug가 현행 결정이다.

결정-근거 매핑

본 root branch 는 hub 역할 — 자체 결정은 운영 / 조직 규약 만 다루고, 패턴 채택 결정은 sub-branch 로 위임됨. 따라서 본 hub 의 결정은 외부 raw source 가 아닌 프로젝트 내부 규약 (CLAUDE.md / rules/) + ca-tmpl 선례 에 근거함 → 외부 raw claim 측면에서는 모두 UNSUPPORTED_DECISION.

Decision ID Decision Supporting Claims Evidence Strength Open Risk
D1 프로젝트 정의는 raw/project-notes/, 작업 진행은 raw/branch-notes/ 분리 (ca-tmpl 과 동일 위계) UNSUPPORTED_DECISION (외부 raw source 없음 — 내부 규약 rules/linking-rules.md §12 named hub 패턴 + CLAUDE.md §2 디렉터리 역할 + ca-tmpl 선례에 근거) internal-convention 외부 표준 근거 없음 — 다른 wiki / KMS 패턴과 비교 평가 미수행. 단 본 프로젝트 단일 vault 내 일관성은 충분
D2 RETIRED / superseded-{N}-{M} numbered hierarchy는 사용하지 않는다. 현행 규약은 구현 내용을 드러내는 4~8단어 영문 kebab-case slug이고 계층은 parent_branch + ## Parent로만 표현한다. CLAUDE.md §11 + rules/naming-conventions.md §2.1.2~§2.1.6 internal-convention 기존 파일·링크에 남은 numbered slug는 별도 migration 계획으로 정리하되 신규 문서에서는 생성 금지

구현 가이드

Trace: D1(프로젝트 정의와 진행 노트 분리)과 D2(내용 기반 slug + frontmatter 계층)를 따른다.

  • UNSUPPORTED_IMPL_DECISION: hub의 수기 인덱스 갱신 방식은 외부 raw source가 정하지 않는 vault 운영 선택이다. 본 hub에는 class/config/API 명세를 두지 않고, child owner의 진행 상태와 링크만 유지한다.

엣지·실패·의존

  • 실패·엣지 경로: 수기 인덱스가 실제 파일·parent_branch와 어긋나면 진행률과 owner 탐색이 stale해진다. 아래 Claims To Verify의 파일·frontmatter 대조를 통과한 뒤에만 개수를 갱신한다.
  • 다른 계약 의존: raw/project-notes/keycloak-patterns-overview가 실행계획과 패턴 분류를 소유한다. 본 hub는 그 내용을 재진술하지 않고 위 child owner 링크와 상태만 소비한다.

검증해야 할 주장

root branch 는 hub 인덱스이므로 자체 verification 보다는 sub-branch 의 결정 / 구현이 정확한지에 대한 메타 검증 항목 위주.

Claim Why uncertain How to verify Status
6 sub-branch + 27 sub-sub-branch 진행 인덱스가 실제 파일과 일치 본 root 의 인덱스는 수기 유지, drift 가능 ls raw/branch-notes/feature-keycloak-* + grep parent_branch: 와 본 §6 sub-branch 인덱스 cross-check needs-confirmation
폐기된 numbered slug가 기존 파일·링크에 남아 있는지 D2는 폐기됐지만 역사적으로 생성된 경로가 있을 수 있어 일괄 rename 시 링크 파손 위험이 있음 rules/naming-conventions.md 기준으로 기존 slug를 inventory하고, 역링크를 포함한 별도 migration plan에서 단계적으로 정리 planned
P3A 한정 실 구현 → wiki/projects/ 승급 가능한 verified 항목이 실제로 생성됨 현재 모두 documented-only / planned Phase 3 완료 후 raw/branch-notes/feature-keycloak-single-ec2-no-google 의 TODO 항목별 actually-implemented / locally-verified 등급 부여 + 측정 evidence 첨부 planned
패턴별 외부 근거 raw 자료가 모두 ## Claims Extracted + ## Usage Boundaries 구조를 갖춤 claim traceability 정책이 2026-05-27 도입 — 기존 raw 는 migration 대상 grep -L "## Claims Extracted" raw/official-docs/keycloak* + raw/company-tech-blogs/keycloak* needs-confirmation

마주친 문제

  • 아직 없음(문서 단계).

묶음

본 root는 6 sub-branch hub. 위 "6 sub-branch + 27 sub-sub-branch 진행 인덱스" 섹션과 중복 정보이나, templates/linking-rules.md §4 양방향 작성 패턴에 따라 카테고리별 명시.

Sub-branches (6 패턴별 hub)

근거 자료

  • (패턴별 official-docs / company-tech-blogs 는 sub-branch 의 Sources 표에서 cited)

오류 기록

  • (없음 — Phase 3 P3A 실 구현 진입 시 발생 예상)

면접 준비

  • (없음 — 패턴별 면접 후보는 sub-branch Cluster의 Interview prep 항목 참조)

강의

  • (없음)

Blog drafts / job-posting tie-ins

  • (없음)

관련 일일 노트

완료 후 정리

  • PR 링크:
  • 리뷰 메모:
  • 머지 결과 / 배포 환경: P3A 한정 로컬 검증 예정
  • wiki 추출 대상 (verified만, wiki/projects/로만 추출):
    • actually-implemented 항목: (Phase 3 완료 후 채움)
    • locally-verified 항목: (Phase 3 완료 후 채움)
    • prod-verified 항목: (없음, prod 배포 out of scope)
  • 추출하지 않을 항목 (planned / documented-only / abandoned): P1A/P1B/P2A/P2B/P3B 5개 패턴은 문서까지만.