--- id: wiki-2026-0508-dry-principle title: Dry Principle category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [P-Reinforce-AI-DRY] duplicate_of: none source_trust_level: A confidence_score: 0.98 tags: [SoftwareEngineering, Principles, DRY, CleanCode] raw_sources: [] last_reinforced: 2026-04-20 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # [[Dry-Principle]] (Don't Repeat Yourself) ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > "쀑볡은 λͺ¨λ“  μ•…μ˜ 근원이닀." μ‹œμŠ€ν…œ λ‚΄λΆ€μ˜ λͺ¨λ“  지식은 단 ν•œ 번만, 단 ν•˜λ‚˜μ˜ λͺ…ν™•ν•œ ν˜•νƒœλ‘œ μ‘΄μž¬ν•΄μ•Ό ν•œλ‹€λŠ” 원칙이닀. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) - **Core [[goal]]**: μœ μ§€λ³΄μˆ˜μ„± ν–₯상. κΈ°λŠ₯을 μˆ˜μ •ν•  λ•Œ μ—¬λŸ¬ 곳을 고쳐야 ν•œλ‹€λ©΄ λ°˜λ“œμ‹œ μ‹€μˆ˜ν•˜κ²Œ λ˜μ–΄ μžˆλ‹€. - **Beyond Code**: λ‹¨μˆœνžˆ '볡사-λΆ™μ—¬λ„£κΈ°' μ½”λ“œλ₯Ό μ€„μ΄λŠ” κ²ƒλΏλ§Œ μ•„λ‹ˆλΌ, DB μŠ€ν‚€λ§ˆ, ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€, λ¬Έμ„œν™” λ“± ν”„λ‘œμ νŠΈ μ „λ°˜μ˜ 정보 쀑볡을 μ œκ±°ν•˜λŠ” 것을 ν¬ν•¨ν•œλ‹€. - **Mechanisms**: ν•¨μˆ˜ν™”, ν΄λž˜μŠ€ν™”, λͺ¨λ“ˆν™”, μƒμˆ˜ 관리 등을 톡해 κ΅¬ν˜„ν•œλ‹€. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) - DRYλ₯Ό λ§Ήμ‹ ν•˜λ©΄ 'μ„±κΈ‰ν•œ 좔상화(Premature Abstraction)'에 λΉ μ§€κ²Œ λœλ‹€. λͺ¨μ–‘λ§Œ κ°™κ³  '의미(Semantics)'κ°€ λ‹€λ₯Έ 두 μ½”λ“œλ₯Ό μ–΅μ§€λ‘œ ν•©μΉ˜λ©΄, λ‚˜μ€‘μ— 각자의 λΉ„μ¦ˆλ‹ˆμŠ€ 둜직이 λ‹¬λΌμ§ˆ λ•Œ μ½”λ“œκ°€ 꼬여버린닀. 이럴 λ•ŒλŠ” 차라리 쀑볡을 ν—ˆμš©ν•˜λŠ” 'WET(Write Everything Twice)'κ°€ λ‚˜μ„ μˆ˜λ„ μžˆλ‹€. ## πŸ”— 지식 μ—°κ²° (Graph) - Related: Clean-Code , [[Modular-Programming]] - Contrast: YAGNI-Principle ## πŸ€– 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: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*