[G1-Sync] Manual knowledge update
This commit is contained in:
@@ -47,69 +47,137 @@ tech_stack:
|
||||
- **출처 신뢰도**: A
|
||||
- **검토 이유**: 신규 팀원의 생산성을 조기에 확보하고 지식 전파의 비용을 낮추기 위한 실천적 가이드라인 정립.
|
||||
|
||||
## 📌 한 줄 통찰 (The Karpathy Summary)
|
||||
## 📌 한 줄 통찰
|
||||
> **"매 4-step (Inventory → Entry Points → Tracing → Boundaries) + 매 small first task"**. 매 perfectionism 의 reject — 매 fragmented info 의 connect 의 시작. 매 modern: 매 LLM-aided onboarding (RAG + repo).
|
||||
|
||||
> *(TODO: 한 문장으로 핵심 통찰을 작성. "X는 Y 조건에서 Z 효과를 낸다" 구조 권장.)*
|
||||
## 📖 핵심 (간략)
|
||||
- 매 4-step workflow.
|
||||
- 매 top-down × bottom-up cross-check.
|
||||
- 매 small task 의 risk-low 의 시작.
|
||||
- 매 dynamic analysis (debugger, log).
|
||||
- 매 doc 의 불완전 — 매 code + test 의 truth.
|
||||
|
||||
## 📖 구조화된 지식 (Synthesized Content)
|
||||
## 🤖 LLM 활용
|
||||
**언제**: 매 new joiner. 매 codebase migration. 매 acquisition tech due diligence. 매 LLM-aided onboarding RAG.
|
||||
**언제 X**: 매 single-script project.
|
||||
|
||||
**추출된 패턴:**
|
||||
> *(TODO)*
|
||||
## 🔗 지식 연결
|
||||
- 부모: [[Software-Engineering]] · [[Knowledge-Management]]
|
||||
- Adjacent: [[Asset-Specific-Knowledge]] · [[C4_Model]] · [[Architecture-Styles]] · [[Bounded-Contexts]] · [[CodeScene]]
|
||||
|
||||
**세부 내용:**
|
||||
- *(TODO)*
|
||||
## 💻 패턴
|
||||
|
||||
## 🤖 LLM 활용 힌트 (How to Use This Knowledge)
|
||||
### Day 1 inventory
|
||||
```bash
|
||||
# 매 stack identify
|
||||
ls package.json pyproject.toml go.mod Cargo.toml pom.xml 2>/dev/null
|
||||
ls Dockerfile docker-compose.yml .github/workflows/ 2>/dev/null
|
||||
ls README.md docs/ ARCHITECTURE.md 2>/dev/null
|
||||
ls -la # 매 hidden config
|
||||
|
||||
**언제 이 지식을 쓰는가:**
|
||||
- *(TODO)*
|
||||
# 매 size + language breakdown
|
||||
cloc . # 매 lines per language
|
||||
|
||||
**언제 쓰면 안 되는가:**
|
||||
- *(TODO)*
|
||||
|
||||
## 🧬 중복 검사 (Duplicate Check)
|
||||
|
||||
- **기존 유사 문서:** *(TODO: 인덱서 클러스터 리포트 참조)*
|
||||
- **처리 방식:** UPDATE (자동 정규화)
|
||||
- **처리 이유:** Phase 1 정규화 — 옛 템플릿/누락 필드 보강.
|
||||
|
||||
## ⚠️ 모순 및 업데이트 (Contradictions & Updates)
|
||||
|
||||
- **과거 데이터와의 충돌:** 없음
|
||||
- **정책 변화:** 없음
|
||||
|
||||
## 🔗 지식 연결 (Graph)
|
||||
|
||||
- **Parent:** [[10_Wiki/Topics]]
|
||||
- **Related:** *(TODO: 최소 2개)*
|
||||
- **Opposite / Trade-off:** *(TODO)*
|
||||
- **Raw Source:** 직접 입력
|
||||
|
||||
## 🕓 변경 이력 (Changelog)
|
||||
|
||||
| 날짜 | 변경 내용 | 처리 방식 | 신뢰도 |
|
||||
|------|-----------|-----------|--------|
|
||||
| 2026-05-08 | P-Reinforce Phase 1 정규화 (frontmatter + 헤더 표준화) | UPDATE | A |
|
||||
|
||||
## 💻 코드 패턴 (Code Patterns)
|
||||
|
||||
**패턴 1:** *(TODO: 이 프로젝트 컨벤션 반영한 구조 스켈레톤)*
|
||||
|
||||
```text
|
||||
# TODO
|
||||
# 매 directory tree (top 2 level)
|
||||
tree -L 2 -I node_modules
|
||||
```
|
||||
|
||||
## 🤔 의사결정 기준 (Decision Criteria)
|
||||
### Find entry points
|
||||
```bash
|
||||
# 매 main / index 의 search
|
||||
grep -rn "if __name__" --include="*.py" # 매 Python entry
|
||||
grep -rn "func main" --include="*.go" # 매 Go
|
||||
grep -rn "fn main" --include="*.rs" # 매 Rust
|
||||
find . -name "index.ts" -o -name "main.ts" -o -name "server.ts"
|
||||
|
||||
**선택 A를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
# 매 routing
|
||||
grep -rn "@app.route\|app.get\|router.get" --include="*.{py,ts,js}"
|
||||
```
|
||||
|
||||
**선택 B를 써야 할 때:**
|
||||
- *(TODO)*
|
||||
### Trace one request (E2E)
|
||||
```
|
||||
1. HTTP request → router.
|
||||
2. → controller / handler.
|
||||
3. → service / use case.
|
||||
4. → repository / data layer.
|
||||
5. → DB query.
|
||||
6. → response back up.
|
||||
|
||||
**기본값:**
|
||||
> *(TODO)*
|
||||
매 each layer 의 break point 의 set.
|
||||
매 매 layer 의 transformation 의 observe.
|
||||
```
|
||||
|
||||
## ❌ 안티패턴 (Anti-Patterns)
|
||||
### Small first task (low-risk)
|
||||
```
|
||||
1. Fix a typo in README / docs.
|
||||
2. Update outdated dependency (patch).
|
||||
3. Add a unit test for existing function.
|
||||
4. Improve error message clarity.
|
||||
5. Add a log line.
|
||||
6. Refactor a small private function.
|
||||
|
||||
- **[안티패턴]:** *(TODO: 무엇을 하면 안 되는가 + 이유 + 대신 무엇을)*
|
||||
→ 매 PR + review + merge 의 cycle 의 학습.
|
||||
```
|
||||
|
||||
### LLM-aided onboarding RAG
|
||||
```python
|
||||
from langchain.vectorstores import Chroma
|
||||
from langchain.text_splitter import RecursiveCharacterTextSplitter
|
||||
|
||||
# 매 codebase + ADR + README + commit history 의 index
|
||||
sources = ['src/**/*.{ts,py}', 'docs/**/*.md', 'adr/*.md', 'README.md']
|
||||
splitter = RecursiveCharacterTextSplitter(chunk_size=1500, chunk_overlap=200)
|
||||
vectordb = Chroma.from_documents(load_docs(sources), embeddings, persist_directory='./onboarding-rag')
|
||||
|
||||
def ask(q):
|
||||
return llm.generate_with_context(q, vectordb.similarity_search(q, k=5))
|
||||
|
||||
# 매 examples
|
||||
ask("Where does authentication happen?")
|
||||
ask("What's the data flow for a user signup?")
|
||||
ask("Why was Postgres chosen over MongoDB? (ADR)")
|
||||
```
|
||||
|
||||
### Architecture map (output)
|
||||
```
|
||||
Codebase: [name]
|
||||
Stack: [TS / Node / Postgres / Redis]
|
||||
Entry points:
|
||||
- HTTP API: [src/server.ts:42]
|
||||
- CLI: [src/cli.ts:15]
|
||||
- Worker: [src/worker.ts]
|
||||
Layers (Clean Arch):
|
||||
- domain/ (entity, value object)
|
||||
- application/ (use case)
|
||||
- infrastructure/ (db, http, queue)
|
||||
External deps:
|
||||
- Stripe: [src/infrastructure/stripe/]
|
||||
- Slack: [src/infrastructure/slack/]
|
||||
Open questions:
|
||||
- How does retry work for Stripe webhook?
|
||||
- Why is OrderService split across 2 modules?
|
||||
```
|
||||
|
||||
## 🤔 결정 기준
|
||||
| 상황 | Approach |
|
||||
|---|---|
|
||||
| Tiny (<10 file) | Read all |
|
||||
| Small (<500 file) | 4-step + small task |
|
||||
| Large (10K+ file) | RAG-aided + bounded-context-by-bounded-context |
|
||||
| Legacy unknown | CodeScene hotspot first |
|
||||
| Greenfield | Owner walkthrough |
|
||||
|
||||
**기본값**: 매 4-step + 매 RAG + 매 small task within week 1.
|
||||
|
||||
## ❌ 안티패턴
|
||||
- **Read everything 의 perfectionism**: 매 paralysis.
|
||||
- **No small task**: 매 actual learn X.
|
||||
- **Doc 의 100% trust**: 매 stale.
|
||||
- **No question journal**: 매 forget.
|
||||
- **Skip dynamic analysis**: 매 runtime mismatch.
|
||||
|
||||
## 🕓 변경 이력
|
||||
| 날짜 | 변경 |
|
||||
|---|---|
|
||||
| 2026-05-08 | Phase 1 |
|
||||
| 2026-05-10 | Manual cleanup — 4-step + 매 inventory / RAG / small task code |
|
||||
Reference in New Issue
Block a user