--- id: wiki-2026-0508-code-refactoring title: Code Refactoring category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [P-REINFORCE-AUTO-WIKI-DEV-002] duplicate_of: none source_trust_level: A confidence_score: 0.95 tags: [development, refactoring, code-quality, maintainability, technical-debt, p-reinforce] raw_sources: [] last_reinforced: 2026-05-01 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[Code Refactoring]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > "μ‹œμŠ€ν…œμ˜ 겉보기 λ™μž‘(Behavior)은 μœ μ§€ν•œ 채 λ‚΄λΆ€ ꡬ쑰λ₯Ό κ°œμ„ ν•˜μ—¬, μΈκ°„μ—κ²ŒλŠ” 더 읽기 쉽고 μ‹œμŠ€ν…œμ—κ²ŒλŠ” 더 변화에 μœ μ—°ν•˜κ²Œ λ§Œλ“œλŠ” 지속적인 μ½”λ“œ μ •μ œ μž‘μ—…." ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) λ¦¬νŒ©ν† λ§μ€ 기술 뢀채λ₯Ό κ΄€λ¦¬ν•˜κ³  μ†Œν”„νŠΈμ›¨μ–΄μ˜ 생λͺ…λ ₯을 μœ μ§€ν•˜λŠ” 핡심 ν™œλ™μž…λ‹ˆλ‹€. 1. **λͺ©μ μ˜ 뢄리 (Separation of Concerns)**: * **κΈ°λŠ₯ 좔가와 λ¦¬νŒ©ν† λ§μ˜ 뢄리**: μƒˆλ‘œμš΄ κΈ°λŠ₯ κ΅¬ν˜„κ³Ό μ½”λ“œ ꡬ쑰 κ°œμ„ μ€ λ°˜λ“œμ‹œ λ³„λ„μ˜ ν’€ λ¦¬ν€˜μŠ€νŠΈ(PR)둜 μ§„ν–‰ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ„žμΌ 경우 λ¦¬λ·°μ–΄μ˜ 인지 λΆ€ν•˜κ°€ κΈ‰μ¦ν•˜κ³  κ²€μ¦μ˜ 정확도가 λ–¨μ–΄μ§‘λ‹ˆλ‹€. * **μŠ€νƒ€μΌ μˆ˜μ •μ˜ 독립성**: ν¬λ§·νŒ…μ΄λ‚˜ λͺ…μΉ­ λ³€κ²½κ³Ό 같은 λ¦¬νŒ©ν† λ§λ„ κΈ°λŠ₯ λ³€κ²½κ³Ό μ„žμ§€ μ•ŠλŠ” 것이 μ›μΉ™μž…λ‹ˆλ‹€. 2. **μ•ˆμ „λ§ 확보**: * λ¦¬νŒ©ν† λ§μ˜ μ „μ œ 쑰건은 κ²¬κ³ ν•œ **μžλ™ν™” ν…ŒμŠ€νŠΈ**μž…λ‹ˆλ‹€. 둜직 κ°œμ„  후에도 κΈ°μ‘΄ κΈ°λŠ₯이 μ™„λ²½νžˆ μž‘λ™ν•¨μ„ 증λͺ…ν•  수 μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. 3. **효율적 μ „λž΅**: * λŒ€κ·œλͺ¨ λ¦¬νŒ©ν† λ§μ€ ν•œ λ²ˆμ— μ²˜λ¦¬ν•˜κΈ°λ³΄λ‹€ 200~400쀄 λ‹¨μœ„λ‘œ 잘게 μͺΌκ°œμ–΄(Decomposition) λ‹¨κ³„μ μœΌλ‘œ μ§„ν–‰ν•˜λŠ” 것이 리뷰 ν’ˆμ§ˆκ³Ό 속도 λ©΄μ—μ„œ μœ λ¦¬ν•©λ‹ˆλ‹€. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) - **리뷰 μ§€μ—°μ˜ λΆ€μž‘μš©**: μ½”λ“œ 리뷰 ν”„λ‘œμ„ΈμŠ€κ°€ λ„ˆλ¬΄ 느리면 κ°œλ°œμžλ“€μ€ λ¦¬νŒ©ν† λ§μ΄λ‚˜ μ½”λ“œ 정리λ₯Ό κΈ°ν”Όν•˜κ²Œ λ˜μ–΄ μž₯기적으둜 기술 뢀채가 λˆ„μ λ©λ‹ˆλ‹€. λΉ λ₯Έ 리뷰 ν”Όλ“œλ°± 루프가 κ±΄κ°•ν•œ λ¦¬νŒ©ν† λ§ λ¬Έν™”λ₯Ό λ§Œλ“­λ‹ˆλ‹€. - **사후 λΉ„μš© vs 사전 섀계**: 개발 μ™„λ£Œ ν›„μ˜ λ¦¬νŒ©ν† λ§μ€ λΉ„μš©μ΄ 많이 λ“­λ‹ˆλ‹€. μ•„ν‚€ν…μ²˜ 리뷰λ₯Ό ν†΅ν•œ 사전 섀계 κ²€ν† (Shift-Left)κ°€ λŒ€κ·œλͺ¨ λ¦¬νŒ©ν† λ§μ„ μ˜ˆλ°©ν•˜λŠ” κ°€μž₯ 효율적인 μ •μ±…μž…λ‹ˆλ‹€. ## πŸ”— 지식 μ—°κ²° (Graph) - [[Technical Debt]]: λ¦¬νŒ©ν† λ§μ΄ μƒν™˜ν•˜κ³ μž ν•˜λŠ” λΉ„μš©. - [[Automated Testing]]: λ¦¬νŒ©ν† λ§μ„ κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” μ•ˆμ „λ§. - [[Code Health]]: λ¦¬νŒ©ν† λ§μ˜ ꢁ극적인 μ§€ν–₯점. - [[Single-purpose PR]]: λ¦¬νŒ©ν† λ§ μ‹œ μ€€μˆ˜ν•΄μ•Ό ν•  PR μ •μ±…. - [[Architecture Review]]: λŒ€κ·œλͺ¨ λ¦¬νŒ©ν† λ§μ„ μ˜ˆλ°©ν•˜λŠ” μ„ μ œμ  λŒ€μ‘. --- ## πŸ€– LLM ν™œμš© 힌트 (How to Use This Knowledge) **μ–Έμ œ 이 지식을 μ“°λŠ”κ°€:** - *(TODO)* **μ–Έμ œ μ“°λ©΄ μ•ˆ λ˜λŠ”κ°€:** - *(TODO)* ## πŸ§ͺ 검증 μƒνƒœ (Validation) - **정보 μƒνƒœ:** needs_review - **좜처 신뒰도:** A - **κ²€ν†  이유:** *(P-Reinforce Phase 1 μžλ™ μ •κ·œν™”. λ³Έλ¬Έ 검증 ν•„μš”.)* ## 🧬 쀑볡 검사 (Duplicate Check) - **κΈ°μ‘΄ μœ μ‚¬ λ¬Έμ„œ:** *(TODO: μΈλ±μ„œ ν΄λŸ¬μŠ€ν„° 리포트 μ°Έμ‘°)* - **처리 방식:** UPDATE (μžλ™ μ •κ·œν™”) - **처리 이유:** Phase 1 μ •κ·œν™” β€” μ˜› ν…œν”Œλ¦Ώ/λˆ„λ½ ν•„λ“œ 보강. ## πŸ•“ λ³€κ²½ 이λ ₯ (Changelog) | λ‚ μ§œ | λ³€κ²½ λ‚΄μš© | 처리 방식 | 신뒰도 | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 μ •κ·œν™” (frontmatter + 헀더 ν‘œμ€€ν™”) | UPDATE | A | ## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Code Patterns) **νŒ¨ν„΄ 1:** *(TODO: 이 ν”„λ‘œμ νŠΈ μ»¨λ²€μ…˜ λ°˜μ˜ν•œ ꡬ쑰 μŠ€μΌˆλ ˆν†€)* ```text # TODO ``` ## πŸ€” μ˜μ‚¬κ²°μ • κΈ°μ€€ (Decision Criteria) **선택 Aλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **선택 Bλ₯Ό 써야 ν•  λ•Œ:** - *(TODO)* **κΈ°λ³Έκ°’:** > *(TODO)* ## ❌ μ•ˆν‹°νŒ¨ν„΄ (Anti-Patterns) - **[μ•ˆν‹°νŒ¨ν„΄]:** *(TODO: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*