--- id: wiki-2026-0508-debugging-methods title: Debugging Methods category: 10_Wiki/Topics status: needs_review canonical_id: self aliases: [] duplicate_of: none source_trust_level: A confidence_score: 0.92 tags: [uncategorized] raw_sources: [] last_reinforced: 2026-05-08 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) ν˜„λŒ€ ν”„λ‘ νŠΈμ—”λ“œ 디버깅은 λŸ°νƒ€μž„ μ—λŸ¬ 포착, μ„±λŠ₯ 병λͺ© 진단, μƒνƒœ 뢈일치 해결을 μ•„μš°λ₯΄λŠ” 체계적인 뢄석 과정이닀. λΈŒλΌμš°μ € 개발자 도ꡬ(Chrome DevTools)λ₯Ό ν†΅ν•œ 둜컬 뢄석뢀터 Sentry, Datadogκ³Ό 같은 κ΄€μΈ‘μ„±(Observability) ν”Œλž«νΌμ„ ν™œμš©ν•œ ν”„λ‘œλ•μ…˜ λͺ¨λ‹ˆν„°λ§κΉŒμ§€ 톡합적인 접근을 톡해 μ‹œμŠ€ν…œμ˜ 신뒰성을 ν™•λ³΄ν•œλ‹€. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) 1. **ν”„λ‘œλ•μ…˜ κ΄€μΈ‘μ„± (Observability Platforms)** - Sentry, LogRocket 등을 ν†΅ν•œ μ‹€μ‹œκ°„ μ—λŸ¬ κ·Έλ£Ήν™” 및 μ‚¬μš©μž μ—¬μ •(Breadcrumbs) 좔적. - **μ„Έμ…˜ λ¦¬ν”Œλ ˆμ΄(Session Replay)**: μ—λŸ¬ λ°œμƒ μ „μ˜ μ‚¬μš©μž μ‘°μž‘κ³Ό μƒνƒœ λ³€ν™”λ₯Ό μ‹œκ°μ μœΌλ‘œ μž¬ν˜„ν•˜μ—¬ μž¬ν˜„ λΆˆκ°€λŠ₯ν•œ 버그 차단. - **λΆ„μ‚° νŠΈλ ˆμ΄μ‹±**: ν”„λ‘ νŠΈμ—”λ“œ μ—λŸ¬μ™€ λ°±μ—”λ“œ 트레이슀 IDλ₯Ό μ—°κ²°ν•˜μ—¬ μ—”λ“œ-투-μ—”λ“œ 문제 진단. 2. **λ©”λͺ¨λ¦¬ λˆ„μˆ˜ 진단 (Memory Profiling)** - Chrome DevTools의 **Heap Snapshots**을 λΉ„κ΅ν•˜μ—¬ λΆ„λ¦¬λœ DOM λ…Έλ“œ(Detached DOM nodes)와 κ°€λΉ„μ§€ μ»¬λ ‰μ…˜(GC)λ˜μ§€ μ•ŠλŠ” 객체 식별. - **Allocation Timelines**: λ©”λͺ¨λ¦¬ ν• λ‹Ή μ‹œμ κ³Ό λ¦¬ν…Œμ΄λ„ˆ 경둜(Retainer paths)λ₯Ό λΆ„μ„ν•˜μ—¬ 객체 보쑴 원인 νŒŒμ•…. 3. **μƒνƒœ 및 λ Œλ”λ§ 디버깅** - **Time-travel Debugging**: Redux DevTools 등을 톡해 μƒνƒœ λ³€ν™”λ₯Ό κΈ°λ‘ν•˜κ³  νŠΉμ • μ‹œμ μœΌλ‘œ μ•‘μ…˜μ„ μž¬μƒν•˜μ—¬ 비동기 버그 좔적. - **Error Boundaries**: React의 λ Œλ”λ§ μ—λŸ¬λ₯Ό μ„ μ–Έμ μœΌλ‘œ ν¬μ°©ν•˜μ—¬ 전체 μ•± ν¬λž˜μ‹œλ₯Ό λ°©μ§€ν•˜κ³  μ—λŸ¬ μŠ€νƒ 정보λ₯Ό 확보. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & Updates) - **λ‘œκΉ… μ˜€λ²„ν—€λ“œ**: κ³Όλ„ν•œ λ‘œκΉ… 및 κ΄€μΈ‘μ„± 도ꡬ λ„μž…μ€ λ²ˆλ“€ μ‚¬μ΄μ¦ˆ 증가와 λŸ°νƒ€μž„ μ„±λŠ₯ μ €ν•˜λ₯Ό μœ λ°œν•  수 μžˆμœΌλ―€λ‘œ μƒ˜ν”Œλ§ μ „λž΅μ΄ ν•„μš”ν•˜λ‹€. - **데이터 ν”„λΌμ΄λ²„μ‹œ**: μ„Έμ…˜ λ¦¬ν”Œλ ˆμ΄ 및 ν΄λΌμš°λ“œ λ‘œκΉ… μ‹œ μ‚¬μš©μž 민감 정보(λΉ„λ°€λ²ˆν˜Έ, PII)κ°€ λ…ΈμΆœλ˜μ§€ μ•Šλ„λ‘ μ—„κ²©ν•œ λ§ˆμŠ€ν‚Ή μ²˜λ¦¬κ°€ μ„ ν–‰λ˜μ–΄μ•Ό ν•œλ‹€. - **디버깅 λ„κ΅¬μ˜ μ œμ•½**: React Context λ“± νŠΉμ • μƒνƒœ 관리 λͺ¨λΈμ€ μ „μš© 디버깅 툴의 λΆ€μž¬λ‘œ 인해 문제 좔적이 μƒλŒ€μ μœΌλ‘œ μ–΄λ ΅λ‹€. ## πŸ”— 지식 μ—°κ²° (Graph) ### Related Concepts (Auto-Linked) * [[Boundaries]] * [[Chrome]] * [[Chrome_DevTools]] * [[Core_Web_Vitals]] * [[Error Boundaries]] * [[Heap Snapshot]] * [[Lighthouse]] * [[Observability]] * [[React]] * [[React Context]] * [[Redux]] * [[Research]] * [[SAST]] * [[Snapshots]] * [[Static_Application_Security_Testing]] * [[Testing]] * [[WebGL]] * [[memory]] ### Related Concepts - **Heap Snapshots**: μžλ°”μŠ€ν¬λ¦½νŠΈ λ©”λͺ¨λ¦¬ ꡬ쑰의 정적 뢄석 도ꡬ (관계: λ©”λͺ¨λ¦¬ 진단 핡심) - **Error Boundaries**: λŸ°νƒ€μž„ μ—λŸ¬ μ „νŒŒλ₯Ό μ°¨λ‹¨ν•˜λŠ” 선언적 격리 μž₯치 (관계: μ•ˆμ •μ„± 확보) - **Time-Travel Debugging**: μƒνƒœ 뢈일치 원인을 규λͺ…ν•˜λŠ” μ‹œκ³„μ—΄ 뢄석 기법 (관계: 비동기 둜직 검증) ### Deeper Research Questions 1. OpenTelemetryλ₯Ό ν™œμš©ν•˜μ—¬ ν”„λ‘ νŠΈμ—”λ“œμ™€ λ§ˆμ΄ν¬λ‘œμ„œλΉ„μŠ€ λ°±μ—”λ“œ κ°„μ˜ 트레이슀 μ»¨ν…μŠ€νŠΈλ₯Ό μ–΄λ–»κ²Œ μ•ˆμ „ν•˜κ²Œ μ „νŒŒν•˜λŠ”κ°€? 2. Heap Snapshot 뢄석 μ‹œ 'Shallow Size'와 'Retained Size'의 차이가 μ˜λ―Έν•˜λŠ” κ°€λΉ„μ§€ μ»¬λ ‰μ…˜μ˜ μ‹€μ œ μž‘λ™ μ›λ¦¬λŠ”? 3. μ„Έμ…˜ λ¦¬ν”Œλ ˆμ΄ 도ꡬ가 μΊ”λ²„μŠ€(Canvas)λ‚˜ WebGL 기반 λ Œλ”λ§μ˜ μƒν˜Έμž‘μš©μ„ μ–΄λ–»κ²Œ κΈ°λ‘ν•˜κ³  μž¬ν˜„ν•˜λŠ”κ°€? 4. ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œ μ†ŒμŠ€ λ§΅(Source Map) λ…ΈμΆœ 없이 μ—λŸ¬ μŠ€νƒμ„ μ •ν™•νžˆ λ³΅κ΅¬ν•˜λŠ” λ³΄μ•ˆ κ°€μ΄λ“œλΌμΈμ€? 5. λ©”λͺ¨λ¦¬ λ¦¬ν…Œμ΄λ„ˆ 경둜 뢄석을 톡해 발견된 'ν΄λ‘œμ €(Closure)에 μ˜ν•œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜'λ₯Ό ν•΄κ²°ν•˜λŠ” μ½”λ“œ νŒ¨ν„΄μ€? ### Practical Application Contexts - **이슈 μž¬ν˜„μ„± 확보**: κ³ κ°μ‚¬μ—μ„œ 보고된 λΆˆλΆ„λͺ…ν•œ 였λ₯˜λ₯Ό LogRocket λ¦¬ν”Œλ ˆμ΄λ‘œ ν™•μΈν•˜μ—¬ μž¬ν˜„ 단계 μƒλž΅. - **μ„±λŠ₯ νŠœλ‹**: μž₯μ‹œκ°„ μ‹€ν–‰λ˜λŠ” λŒ€μ‹œλ³΄λ“œ μ•±μ˜ λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό Allocation Timeline으둜 μΆ”μ ν•˜μ—¬ μˆ˜μ •. ### Adjacent Topics - **Performance Profiling (Lighthouse / Core Web Vitals)** - **Static Application Security Testing (SAST)** - **Unit & Integration Testing Strategies** ## πŸ€– 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: 무엇을 ν•˜λ©΄ μ•ˆ λ˜λŠ”κ°€ + 이유 + λŒ€μ‹  무엇을)*