--- id: [[P-Reinforce]]-AUTO-663B99 category: "10_Wiki/πŸ’‘ Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - [[Chrome DevTools]](크둬 개발자 도ꡬ)" --- # [[Chrome DevTools(크둬 개발자 도ꡬ)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > [[Chrome]] DevTools(크둬 개발자 도ꡬ)λŠ” [[JavaScript]] μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 및 λΈŒλΌμš°μ € ν™˜κ²½μ—μ„œ λ©”λͺ¨λ¦¬ λˆ„μˆ˜λ₯Ό νƒμ§€ν•˜κ³  μ„±λŠ₯을 λΆ„μ„ν•˜κΈ° μœ„ν•΄ λ‹€μ–‘ν•œ ν”„λ‘œνŒŒμΌλ§ 도ꡬλ₯Ό μ œκ³΅ν•˜λŠ” 개발자용 μΈν„°νŽ˜μ΄μŠ€μž…λ‹ˆλ‹€ [1-3]. 주둜 λ©”λͺ¨λ¦¬ νŒ¨λ„([[memory]] panel)을 톡해 νž™ μŠ€λƒ…μƒ·μ„ μΊ‘μ²˜ν•˜κ±°λ‚˜ μ‹œκ°„μ— λ”°λ₯Έ λ©”λͺ¨λ¦¬ 할당을 μΆ”μ ν•˜μ—¬, κ°€λΉ„μ§€ 컬렉터(GC)에 μ˜ν•΄ ν•΄μ œλ˜μ§€ μ•Šμ€ 객체와 κ·Έ μ°Έμ‘° 원인을 μ‹λ³„ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€ [1, 4, 5]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **λ©”λͺ¨λ¦¬ νŒ¨λ„(Memory Panel)의 μ£Όμš” 도ꡬ:** Chrome DevTools의 λ©”λͺ¨λ¦¬ νŒ¨λ„μ€ λ©”λͺ¨λ¦¬ λˆ„μˆ˜ 식별을 μœ„ν•΄ νž™ μŠ€λƒ…μƒ·([[Heap Snapshot]]), νƒ€μž„λΌμΈμ˜ ν• λ‹Ή 계츑(Allocation instrumentation on timeline), ν• λ‹Ή μƒ˜ν”Œλ§(Allocation sampling)의 μ„Έ κ°€μ§€ μ£Όμš” 도ꡬλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€ [1, 6]. * **νž™ μŠ€λƒ…μƒ·(Heap Snapshot):** νŠΉμ • μ‹œμ μ˜ 전체 객체 κ·Έλž˜ν”„λ₯Ό μΊ‘μ²˜ν•˜μ—¬ JavaScript 객체 및 κ΄€λ ¨ DOM λ…Έλ“œμ— μ˜ν•œ λ©”λͺ¨λ¦¬ 뢄포λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€ [1, 7]. μš”μ•½(Summary), 비ꡐ(Comparison), 포함(Containment), 톡계([[Statistics]]) λ·°λ₯Ό μ œκ³΅ν•˜μ—¬ λ©”λͺ¨λ¦¬λ₯Ό μ„Έλ°€ν•˜κ²Œ 뢄석할 수 μžˆμŠ΅λ‹ˆλ‹€ [8]. * μš”μ•½ λ·°μ—μ„œλŠ” 객체의 κ³ μœ ν•œ λ©”λͺ¨λ¦¬ 크기인 얕은 크기(Shallow size)와, μ‚­μ œ μ‹œ 확보할 수 μžˆλŠ” 보쑴 크기(Retained size)λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€ [9]. * μƒμ„±μž ν•„ν„°λ₯Ό μ‚¬μš©ν•΄ λΆ„λ¦¬λœ DOM λ…Έλ“œκ°€ μœ μ§€ν•˜λŠ” κ°μ²΄λ‚˜ μ€‘λ³΅λœ λ¬Έμžμ—΄μ„ ν•„ν„°λ§ν•¨μœΌλ‘œμ¨ λΉ„νš¨μœ¨μ μΈ λ©”λͺ¨λ¦¬ μ‚¬μš©μ„ 좔적할 수 μžˆμŠ΅λ‹ˆλ‹€ [10]. * **ν• λ‹Ή νƒ€μž„λΌμΈ([[Allocation Timeline]]):** νž™ ν”„λ‘œνŒŒμΌλŸ¬μ˜ μƒμ„Έν•œ μŠ€λƒ…μƒ· 정보와 νƒ€μž„λΌμΈ νŒ¨λ„μ˜ 점진적 μ—…λ°μ΄νŠΈλ₯Ό κ²°ν•©ν•œ λ„κ΅¬μž…λ‹ˆλ‹€ [2]. κΈ°λ‘ν•˜λŠ” λ™μ•ˆ 주기적(μ΅œλŒ€ 50ms 간격)으둜 νž™ μŠ€λƒ…μƒ·μ„ 찍어 λ©”λͺ¨λ¦¬ 할당을 μ‹œκ°ν™”ν•©λ‹ˆλ‹€ [4, 11]. νƒ€μž„λΌμΈμ— νŒŒλž€μƒ‰ λ§‰λŒ€λ‘œ ν‘œμ‹œλœ κ°μ²΄λŠ” ν• λ‹Ή ν›„ ν˜„μž¬κΉŒμ§€ μ‚΄μ•„μžˆλŠ” 객체(λˆ„μˆ˜ 후보)이며, νšŒμƒ‰ λ§‰λŒ€λŠ” κ°€λΉ„μ§€ μ»¬λ ‰μ…˜λœ 객체λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€ [1, 5, 11, 12]. * **보쑴자(Retainers) 및 경둜 좔적:** DevToolsλŠ” μ„ νƒν•œ 객체λ₯Ό κ°€λ¦¬ν‚€λŠ” λ‹€λ₯Έ κ°μ²΄λ“€μ˜ μ°Έμ‘° 경둜(κ°€λΉ„μ§€ μ»¬λ ‰μ…˜ λ£¨νŠΈλ‘œλΆ€ν„°μ˜ 경둜)λ₯Ό λ³΄μ—¬μ£ΌλŠ” 보쑴자 μ„Ήμ…˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€ [13-15]. νŠΉμ • 보쑴자λ₯Ό λ¬΄μ‹œ(Ignore this retainer) μ²˜λ¦¬ν•˜μ—¬ λ‹€λ₯Έ μ–΄λ–€ 객체가 ν•΄λ‹Ή 객체의 λ©”λͺ¨λ¦¬λ₯Ό μœ μ§€ν•˜κ³  μžˆλŠ”μ§€ μ½”λ“œλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³ λ„ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€ [14]. * **Node.js 연동 뢄석:** `chrome://inspect`λ₯Ό 톡해 μ‹€ν–‰ 쀑인 Node.js ν”„λ‘œμ„ΈμŠ€μ— μ—°κ²°ν•˜μ—¬ ν”„λ‘œλ•μ…˜ ν™˜κ²½μ˜ λ©”λͺ¨λ¦¬ λˆ„μˆ˜ 상황을 뢄석할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€ [16]. λ˜ν•œ Node.jsμ—μ„œ λ„€μ΄ν‹°λΈŒ ν”„λ‘œνŒŒμΌλ§μ„ 톡해 μƒμ„±λœ `.heapprofile` νŒŒμΌμ„ DevTools에 λ‘œλ“œν•˜λ©΄ ν•¨μˆ˜ μˆ˜μ€€μ˜ ν• λ‹Ή 내역을 νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [17]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** Memory Leak(λ©”λͺ¨λ¦¬ λˆ„μˆ˜), [[Garbage Collection(κ°€λΉ„μ§€ μ»¬λ ‰μ…˜)]], Heap Snapshot(νž™ μŠ€λƒ…μƒ·), Allocation Timeline(ν• λ‹Ή νƒ€μž„λΌμΈ) - **Projects/Contexts:** Node.js ν”„λ‘œμ„ΈμŠ€ λͺ¨λ‹ˆν„°λ§ 및 λ©”λͺ¨λ¦¬ 뢄석, λΈŒλΌμš°μ € DOM λˆ„μˆ˜ 탐지 및 λ Œλ”λ§ μ΅œμ ν™” - **Contradictions/Notes:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. (제곡된 μ†ŒμŠ€ λ‚΄μ—μ„œ Chrome DevTools의 κΈ°λŠ₯μ΄λ‚˜ λ©”λͺ¨λ¦¬ 뢄석 방법둠에 λŒ€ν•΄ μƒμΆ©λ˜λŠ” μ£Όμž₯은 λ°œκ²¬λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.) --- *Last updated: 2026-04-19* ---