Files
llm-wiki/wiki/llm-wiki.md

154 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: LLM Wiki
---
# LLM Wiki — Map of Content
이 문서는 **Map of Content (MOC)** 입니다. 모든 문서를 일일이 나열하지 않습니다. 세부 목록은 Obsidian Dataview 또는 `/query` 명령으로 동적으로 확인합니다.
---
## 카테고리
### Canonical Layer (검증된 실무 기술 문서)
#### 개념 (`wiki/concepts/`)
백엔드/인프라 중심의 일반 기술 개념. 공식 기준 / 사례 / 트레이드오프 / 한계 / 출처 필수. "내가 했다" 표현은 `wiki/projects/` 전용. 자세한 요구사항은 [[CLAUDE]] §15.
#### 프로젝트 (`wiki/projects/`)
내 프로젝트의 실무 적용 내용. 문제 배경 / 검토 선택지 / 결정 이유 / 구현 / 검증(`actually-implemented` / `locally-verified` / `prod-verified`) / 한계 / 면접 가능 범위 필수.
### Derived Layer (canonical에서만 파생)
> 모두 Sources에 `[[wiki/concepts/...]]` 또는 `[[wiki/projects/...]]` 링크 필수. 원천 status가 `reviewed` / `verified` / `published-ready` 중 하나가 아니면 생성 불가 (`/lint` CRITICAL).
#### 면접 (`wiki/interview/`)
`/interviewize`로 생성. 답변 본문에 `actually-implemented` / `locally-verified` / `prod-verified`만 사용 가능. `documented-only` / `planned` / `needs-confirmation`은 "모른다고 답해야 하는 범위"에만.
#### 포트폴리오 (`wiki/portfolio/`)
수동 작성. `wiki/projects/` Sources 필수 (concepts 단독 출처 금지). 외부 공개 문장은 `prod-verified` 권장, 최소 `locally-verified`임을 본문에 명시. `published-ready` 상태에서만 외부 공개.
#### 블로그 (`wiki/blog/`)
`/blogify`로 글감/구조만 생성, 본문은 사람이 작성. 공식 개념과 내 해석을 분리.
---
## 진행 중 프로젝트 노트 (raw/project-notes/)
- [[raw/project-notes/ca-skeleton-operational-contract]] — ca-tmpl 운영 계약 canonical SSOT (29 섹션, 43 branch 결정 통합)
- [[raw/project-notes/project-infra-overview]] — 사용자 본인 프로젝트 인프라 개요 (작성 중, 추후 wiki/projects/로 승급 예정)
## 일일 실습 과제 (raw/daily-tasks/)
매일 아침 사수→신입 형식의 학습 과제를 두 트랙으로 누적. 각 트랙당 1과제 ~2시간.
- **Hub / 트랙 가이드**: [[raw/daily-tasks/README]]
- **develop 트랙** (`raw/daily-tasks/develop/`): 코드 / 테스트 / ArchUnit / PR 중심. Template: [[templates/daily-task-develop-template]]
- **infra 트랙** (`raw/daily-tasks/infra/`): manifest / probe / observability / 롤백 drill 중심. Template: [[templates/daily-task-infra-template]]
- 근거: §Sources 의 Skillable + Red-Green-Code 두 raw — *공식 best practice 아님*, 운영 가능한 학습 구조로만 인용.
## 진행 중 프로젝트 (raw/branch-notes/)
### keycloak-patterns (2026-05-25 시작)
vanilla JS + Keycloak 연동 6가지 패턴(배치 위치 × Google federation) 학습/구현 프로젝트. **P3A (Single EC2, no Google)만 실 구현**, 나머지 5개는 문서/다이어그램까지.
- **canonical SSOT**: [[raw/project-notes/keycloak-patterns-overview]] (메인 프로젝트 정의)
- **root branch**: [[raw/branch-notes/feature-keycloak-patterns]] (작업 진행 인덱스)
- **34 branch-notes** = root 1 + 6 sub + 27 sub-sub. 세부 hierarchy는 root branch의 진행 인덱스 표 참조.
---
## Sources / 근거 자료
> 이 vault 의 운영 결정 또는 템플릿 설계의 근거로 수집된 외부 자료.
- [[raw/company-tech-blogs/skillable-hands-on-lab-structure]] — daily-task-template 의 7-component 구조(Learning Objectives / Storyline / Environment / Exercises / Assessments / Outcomes / Technologies) 근거
- [[raw/company-tech-blogs/deliberate-practice-software-developers-redgreencode]] — daily-task template 의 deliberate practice 원칙 (현재 능력보다 약간 높은 skill 설계 + 매 반복 후 objective standard 자기평가 + reflection 질문 + Pomodoro 25분 단위) 근거
---
## 운영 규칙 / 템플릿
- [[CLAUDE]] — 본 저장소 운영 규칙 SSOT
- [[wiki/log]] — 작업 로그
- [[templates/concept-template]], [[templates/project-template]], [[templates/wiki-project-template]], [[templates/interview-template]], [[templates/raw-source-template]], [[templates/source-summary-template]], [[templates/daily-note-template]], [[templates/branch-note-template]], [[templates/daily-task-develop-template]], [[templates/daily-task-infra-template]]
---
## 문서 승급 흐름
```text
raw → draft → reviewed → verified → published-ready
↑ ↑
└ 파생 가능 └ 외부 공개 가능
```
자세한 단계 정의와 명령별 게이트는 [[CLAUDE]] §15.
---
## 주요 허브 문서
> 새 허브 문서가 생기면 여기에 추가. 개별 문서는 적지 않음.
- **개인 투자 (개발과 분리)**: [[wiki/invest/invest-hub]] — 운용 파이프라인 (Claude 전용). 분야 지식 지도: [[wiki/invest-concepts/field-map]] (거시·섹터 카드 + 인과/상관)
### ca-skeleton (ca-tmpl) hub
`raw/project-notes/ca-skeleton-operational-contract.md` Phase E 합성.
- **Project doc hub (16 의사결정)**: [[ca-tmpl]] — 모두 `documented-only` (Phase C2 미진입). 각 결정의 면접 가능 범위 명시.
#### 16 concepts (일반 개념 + 표준 + 한계)
모두 `status: draft` (review 대기). 각 concept과 1:1 매핑되는 `wiki/projects/ca-tmpl/{topic}.md` project 문서가 존재.
- **Core 6 (T1-T6)**:
- [[wiki/concepts/clean-architecture-package-layout]] — feature-first vs layer-first vs hexagonal vs modulith vs onion
- [[wiki/concepts/transaction-boundary-abstraction]] — TransactionPort vs `@Transactional`
- [[wiki/concepts/transactional-outbox-pattern]] — SKIP LOCKED polling vs CDC
- [[wiki/concepts/api-error-envelope-design]] — custom vs ProblemDetail vs rpc.Status
- [[wiki/concepts/idempotency-key-design]] — triple scope vs Stripe/Square/Toss
- [[wiki/concepts/multi-tenancy-isolation-patterns]] — Pool vs Silo vs Bridge
- **Cross-cutting 10 (G-A ~ G-J)**:
- [[wiki/concepts/observability-log-metric-trace-runbook]] (G-A)
- [[wiki/concepts/security-baseline-jwt-actuator-secrets]] (G-B)
- [[wiki/concepts/data-layer-persistence-cache-outbound]] (G-C)
- [[wiki/concepts/runtime-container-health-migration]] (G-D)
- [[wiki/concepts/devops-ci-supply-chain-dx]] (G-E)
- [[wiki/concepts/api-evolution-and-schema]] (G-F)
- [[wiki/concepts/skeleton-governance-registry-verification-test-scorecard]] (G-G)
- [[wiki/concepts/sample-fixture-and-adoption]] (G-H)
- [[wiki/concepts/config-and-adapter-templates]] (G-I)
- [[wiki/concepts/privacy-file-domain-modeling]] (G-J)
---
## Dataview 예시 (Obsidian)
```dataview
TABLE source_type, status, confidence, last_reviewed
FROM "wiki/concepts"
SORT last_reviewed DESC
```
```dataview
TABLE related_projects, status
FROM "wiki/projects"
WHERE status = "reviewed" OR status = "verified" OR status = "published-ready"
```
```dataview
TABLE file.link AS "파생 문서", status, file.outlinks AS "Sources"
FROM "wiki/interview" OR "wiki/portfolio" OR "wiki/blog"
WHERE !any(file.outlinks, (l) => startswith(string(l), "wiki/concepts") OR startswith(string(l), "wiki/projects"))
```
> 위 쿼리는 canonical 우회 의심 문서(파생인데 concepts/projects 링크가 없는 문서)를 찾습니다.
```dataview
LIST
FROM "wiki"
WHERE status = "needs-confirmation" OR status = "stale"
```