Skip to content

brightJoo/planharnessdocs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 

Repository files navigation

planharnessdocs

AI와 ν•¨κ»˜ top-down 섀계(HLD β†’ LLD β†’ ADR β†’ Validation)λ₯Ό μˆ˜ν–‰ν•˜κΈ° μœ„ν•œ λ¬Έμ„œ ν…œν”Œλ¦Ώ & κ·œμΉ™ μ €μž₯μ†Œ.

이 μ €μž₯μ†ŒλŠ” λ‹¨λ…μœΌλ‘œ μ“°λŠ” ν”„λ‘œμ νŠΈκ°€ μ•„λ‹ˆλΌ, μ‹€μ œ μ„œλΉ„μŠ€ μ½”λ“œκ°€ μžˆλŠ” λ‹€λ₯Έ ν”„λ‘œμ νŠΈ(예: λ°±μ—”λ“œ μ„œλ²„ repo)에 docs/ ν΄λ”λ‘œ λΌμ›Œ λ„£μ–΄ μ“°λŠ” λ¬Έμ„œ μ„ΈνŠΈλ‹€. λΆ™μ—¬ 넣은 λ’€ κ·Έ ν”„λ‘œμ νŠΈμ˜ λΉ„μ¦ˆλ‹ˆμŠ€ μ»¨ν…μŠ€νŠΈ(context/)와 μŠ€νƒ 정보(reference/)λ₯Ό μ±„μ›Œ λ„£μœΌλ©΄, AI μ—μ΄μ „νŠΈκ°€ CLAUDE.md의 μ›Œν¬ν”Œλ‘œμš°μ— 따라 섀계 λ¬Έμ„œλ₯Ό μƒμ„±Β·κ°±μ‹ ν•œλ‹€.

READMEλŠ” μ‚¬λžŒμ„ μœ„ν•œ μ†Œκ°œλ¬Έμ΄κ³ , μ‹€μ œ μž‘μ—… κ·œμΉ™μ€ CLAUDE.md에 μžˆλ‹€. AI μ—μ΄μ „νŠΈμ—κ²Œ 코딩을 λ§‘κΈΈ λ•ŒλŠ” CLAUDE.mdλ₯Ό reading list에 λ°˜λ“œμ‹œ ν¬ν•¨μ‹œν‚¨λ‹€. READMEλŠ” 보쑰 λ¬Έμ„œλ‹€.


μ–΄λ–»κ²Œ μ‚¬μš©ν•˜λŠ”κ°€

이 μ €μž₯μ†Œλ₯Ό κ°€μ Έλ‹€ μ“Έ ν”„λ‘œμ νŠΈ(예: planharness-backend/)의 λ£¨νŠΈμ—μ„œ λ‹€μŒ 쀑 ν•˜λ‚˜λ₯Ό μ‹€ν–‰ν•˜λ©΄, 이 repoκ°€ κ·Έ ν”„λ‘œμ νŠΈμ˜ docs/ ν΄λ”λ‘œ λ“€μ–΄μ˜¨λ‹€:

# submodule 방식
git submodule add <repo-url> docs

# λ˜λŠ” subtree 방식
git subtree add --prefix docs <repo-url> main --squash

결과 ꡬ쑰:

planharness-backend/       ← μ‹€μ œ μ„œλΉ„μŠ€ μ½”λ“œκ°€ μžˆλŠ” ν”„λ‘œμ νŠΈ
β”œβ”€β”€ src/
└── docs/                  ← μ—¬κΈ°λ‘œ 이 μ €μž₯μ†Œκ°€ λ“€μ–΄μ˜΄
    β”œβ”€β”€ CLAUDE.md
    β”œβ”€β”€ context/
    β”œβ”€β”€ reference/
    └── ...

이후:

  1. docs/context/에 λΉ„μ¦ˆλ‹ˆμŠ€ λ°°κ²½Β·μŠ€ν…Œμ΄ν¬ν™€λ”Β·μ œμ•½Β·KPIλ₯Ό κΈ°λ‘ν•œλ‹€.
  2. docs/reference/에 μ™ΈλΆ€ μ‹œμŠ€ν…œ(Kafka, DB, External API)κ³Ό 이미 κ²°μ •λœ μŠ€νƒ 정보(stack-spring.md, stack-go.md λ“±)λ₯Ό κΈ°λ‘ν•œλ‹€.
  3. docs/hld/에 High-Level Design을 μž‘μ„±ν•œλ‹€.
  4. AI μ—μ΄μ „νŠΈκ°€ docs/CLAUDE.md의 단계에 따라 LLD skeleton β†’ ADR β†’ LLD final β†’ Validation을 μƒμ„±ν•œλ‹€.
  5. Validation λ¬Έμ„œμ—μ„œ μ‚¬λžŒμ΄ 리뷰 ν›„ μΉ΄ν…Œκ³ λ¦¬λ₯Ό μ‘°μ •ν•œλ‹€ (β†’ ν•„μš” μ‹œ iteration 루프).

디렉터리 ꡬ쑰

docs/
β”œβ”€β”€ CLAUDE.md                 # β˜… AIκ°€ λ”°λ₯΄λŠ” μ›Œν¬ν”Œλ‘œμš° κ·œμΉ™ (authoritative)
β”œβ”€β”€ README.md                 # λ³Έ λ¬Έμ„œ (μ†Œκ°œΒ·λ³΄μ‘°)
β”œβ”€β”€ context/                  # λΉ„μ¦ˆλ‹ˆμŠ€/문제 μ»¨ν…μŠ€νŠΈ β€” μ‚¬λžŒμ΄ 미리 채움
β”‚   └── <topic>.md
β”œβ”€β”€ reference/                # μ™ΈλΆ€ μ˜μ‘΄μ„± + μŠ€νƒ 정보 β€” μ‚¬λžŒμ΄ 미리 채움
β”‚   β”œβ”€β”€ kafka.md
β”‚   β”œβ”€β”€ db.md
β”‚   β”œβ”€β”€ external-api-<name>.md
β”‚   └── stack-<name>.md
β”œβ”€β”€ hld/
β”‚   └── <feature>.md          # High-Level Design (μŠ€νƒ 의쑴 X)
β”œβ”€β”€ lld/
β”‚   β”œβ”€β”€ skeleton/             # Open Questions μ€‘μ‹¬μ˜ LLD μ΄ˆμ•ˆ
β”‚   β”‚   └── <topic>.md
β”‚   └── final/                # κ²°μ • 반영된 μ™„μ„± LLD (μ–Έμ–΄Β·ν”„λ ˆμž„μ›Œν¬ 독립)
β”‚       └── <topic>.md
β”œβ”€β”€ adr/
β”‚   └── NNNN-<slug>.md        # Architecture Decision Record (μ €μž₯μ†Œ μ „μ—­ 4자리)
└── validation/
    └── <topic>.md            # LLD 검증 ν•­λͺ© + Human Review 체크포인트

파일λͺ… μ»¨λ²€μ…˜κ³Ό 각 λ¬Έμ„œμ˜ 상세 포맷은 CLAUDE.md μ°Έμ‘°.


μ² ν•™ β€” ν•œλˆˆμ—

  1. 단계λ₯Ό κ±΄λ„ˆλ›°μ§€ μ•ŠλŠ”λ‹€. skeleton 없이 final LLDλ₯Ό μ“°μ§€ μ•Šκ³ , ADR 없이 결정을 LLD에 λ°•μ§€ μ•ŠλŠ”λ‹€.
  2. λͺ¨λ₯΄λŠ” 것은 λ‹΅ν•˜μ§€ μ•ŠλŠ”λ‹€. Open Question으둜 남기고, μ–΄λŠ ADR이 λ‹΅ν• μ§€ ν‘œκΈ°ν•œλ‹€.
  3. κ²°μ •κ³Ό 검증을 λΆ„λ¦¬ν•œλ‹€. 결정은 ADR, 검증은 Validation. μ„žμ§€ μ•ŠλŠ”λ‹€.
  4. μ‚¬λžŒμ˜ νŒλ‹¨μ€ Validation 리뷰 ν•œ 곳에 λͺ¨μ€λ‹€. AIλŠ” 쀑간 λ‹¨κ³„μ—μ„œ μ‚¬λžŒμ„ 기닀리지 μ•ŠλŠ”λ‹€ β€” μ›Œν¬ν”Œλ‘œμš° 전체λ₯Ό 예츑 κ°€λŠ₯ν•˜κ²Œ μœ μ§€ν•˜κΈ° μœ„ν•¨μ΄λ‹€.
  5. LLDλŠ” μ–Έμ–΄Β·ν”„λ ˆμž„μ›Œν¬ 독립적이닀. LLD만 보고 Go Β· Spring Β· κ·Έ μ™Έ μ–΄λŠ μŠ€νƒμœΌλ‘œλ„ κ΅¬ν˜„ κ°€λŠ₯ν•΄μ•Ό ν•œλ‹€. μŠ€νƒ-특수 μš©μ–΄λŠ” reference/μ—λ§Œ λ‘”λ‹€. 단, λ™μ‹œμ„± λͺ¨λΈμ²˜λŸΌ 행동에 영ν–₯을 μ£ΌλŠ” 선택은 ADR둜 남긴닀(λͺ¨λΈ μˆ˜μ€€: "event-loop 단일 μŠ€λ ˆλ“œ" β—‹ / "WebFlux 채택" Γ—).

Validation μΉ΄ν…Œκ³ λ¦¬ (ν•œλˆˆμ—)

μΉ΄ν…Œκ³ λ¦¬ 의미
MUST_PASS 릴리즈 μ „ λ°˜λ“œμ‹œ 톡과해야 ν•˜λŠ” μš”κ΅¬μ‚¬ν•­
KNOWN_ISSUE μ•Œλ €μ§„ ν•œκ³„ β€” ν˜„μž¬λŠ” ν—ˆμš© κ°€λŠ₯ν•˜λ‹€κ³  νŒλ‹¨
DEFERRED 이번 iteration λ²”μœ„ λ°–μœΌλ‘œ λ°€μ–΄λ‘” ν•­λͺ©

μΉ΄ν…Œκ³ λ¦¬ 승격 κΆŒν•œμ€ μ‚¬λžŒμ—κ²Œλ§Œ μžˆλ‹€. μ‚¬λžŒμ΄ KNOWN_ISSUE β†’ MUST_PASS 같이 μŠΉκ²©ν•˜λ©΄ LLD skeleton / ADR λ‹¨κ³„λ‘œ λŒμ•„κ°€ iteration 루프가 λˆλ‹€. λͺ¨λ“  ν•­λͺ©μ΄ MUST_PASS 톡과 / KNOWN_ISSUE 수락 / DEFERRED λ²”μœ„ λ°– 확인 쀑 ν•˜λ‚˜λ‘œ μ •λ¦¬λ˜λ©΄ iteration μ’…λ£Œ.

μƒμ„ΈλŠ” CLAUDE.md의 단계 5~8.


이 μ €μž₯μ†Œμ— ν¬ν•¨λ˜μ§€ μ•ŠλŠ” 것

  • μ‹€μ œ ν”„λ‘œμ νŠΈμ˜ λΉ„μ¦ˆλ‹ˆμŠ€ μ»¨ν…μŠ€νŠΈ, μ½”λ“œ, μŠ€νƒ 선택 β€” 이 μ €μž₯μ†Œλ₯Ό κ°€μ Έλ‹€ μ“°λŠ” ν”„λ‘œμ νŠΈκ°€ context/, reference/에 μ±„μš΄λ‹€.
  • κ΅¬ν˜„ λ‹¨κ³„μ˜ μ½”λ”© κ·œμΉ™ β€” 이 μ €μž₯μ†Œλ₯Ό κ°€μ Έλ‹€ μ“°λŠ” ν”„λ‘œμ νŠΈμ˜ 루트 CLAUDE.md의 관심사닀 (docs/CLAUDE.mdκ°€ μ•„λ‹ˆλ‹€).
  • νŒ¨ν‚€μ§€ κ΅¬μ‘°Β·λ ˆμ΄μ–΄ κ·œμΉ™Β·architecture test β€” LLD의 관심사가 μ•„λ‹ˆλ‹€.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors