--- id: [[P-Reinforce]]-AUTO-0AE506 category: "10_Wiki/πŸ’‘ Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - 였래된 곡간([[Old Space]])" --- # [[였래된 곡간(Old Space)]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > 였래된 곡간(Old Space)은 V8 μžλ°”μŠ€ν¬λ¦½νŠΈ μ—”μ§„μ˜ νž™(Heap) λ©”λͺ¨λ¦¬μ—μ„œ μƒˆλ‘œμš΄ 곡간(New Space)에 μƒμ„±λœ ν›„ 두 번의 λ§ˆμ΄λ„ˆ κ°€λΉ„μ§€ μ»¬λ ‰μ…˜(Minor GC) μ£ΌκΈ° λ™μ•ˆ 살아남은 μž₯κΈ° 생쑴 객체듀이 이동(승격)ν•˜μ—¬ μ €μž₯λ˜λŠ” λ©”λͺ¨λ¦¬ μ˜μ—­μž…λ‹ˆλ‹€ [1-3]. 이 곡간은 비ꡐ적 크기가 크고 μž₯κΈ° 데이터 보쑴을 μœ„ν•΄ μ„€κ³„λ˜μ—ˆμœΌλ©°, 마크-μŠ€μœ•([[Mark-Sweep]]) 및 마크-컴팩트(Mark-Compact) μ•Œκ³ λ¦¬μ¦˜μ„ μ‚¬μš©ν•˜λŠ” 메이저 κ°€λΉ„μ§€ μ»¬λ ‰μ…˜([[Major GC]])에 μ˜ν•΄ κ΄€λ¦¬λ©λ‹ˆλ‹€ [3-5]. ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) * **ꡬ쑰와 λΆ„λ₯˜**: V8 엔진은 'μ„ΈλŒ€ κ°€μ„€([[Generational Hypothesis]])'에 κΈ°λ°˜ν•˜μ—¬ νž™μ„ μ‘°μ§ν•˜λ©°, 였래된 곡간은 이 쀑 'κ΅¬μ„ΈλŒ€(Old Generation)'에 ν•΄λ‹Ήν•©λ‹ˆλ‹€ [3, 6, 7]. κ°€λΉ„μ§€ μ»¬λ ‰μ…˜ μ‹œ 효율적인 λ©”λͺ¨λ¦¬ μŠ€μΊ”μ„ μœ„ν•΄, 이 곡간은 λ‹€λ₯Έ 객체λ₯Ό κ°€λ¦¬ν‚€λŠ” 포인터λ₯Ό ν¬ν•¨ν•˜λŠ” 'Old-pointer-space'와 λ¬Έμžμ—΄μ΄λ‚˜ λ°•μ‹±λœ 숫자처럼 μ›μ‹œ λ°μ΄ν„°λ§Œ ν¬ν•¨ν•˜λŠ” 'Old-data-space'둜 μ„ΈλΆ„ν™”λ©λ‹ˆλ‹€ [3, 8, 9]. 데이터 곡간을 λ³„λ„λ‘œ λΆ„λ¦¬ν•¨μœΌλ‘œμ¨ κ°€λΉ„μ§€ μ»¬λ ‰ν„°λŠ” λΆˆν•„μš”ν•œ 포인터 좔적 단계λ₯Ό κ±΄λ„ˆλ›°μ–΄ μ„±λŠ₯을 μ΅œμ ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [9]. * **객체의 승격(Promotion)**: λŒ€λΆ€λΆ„μ˜ κ°μ²΄λŠ” μ²˜μŒμ— 할당이 λΉ λ₯΄κ³  크기가 μž‘μ€ μƒˆλ‘œμš΄ 곡간(New Space)에 λ°°μΉ˜λ©λ‹ˆλ‹€ [3, 8]. 이 μ˜μ—­μ—μ„œ λ°œμƒν•˜λŠ” μŠ€μΊλΉˆμ§€([[Scavenge]])λΌλŠ” λ§ˆμ΄λ„ˆ κ°€λΉ„μ§€ μ»¬λ ‰μ…˜μ„ 두 번 κ²ͺ고도 살아남은 κ°μ²΄λŠ” 수λͺ…이 κΈ΄ 객체둜 κ°„μ£Όλ˜μ–΄ 였래된 κ³΅κ°„μœΌλ‘œ λ³΅μ‚¬λ˜λŠ”λ°, 이 과정을 '승격(Promotion)'이라고 ν•©λ‹ˆλ‹€ [1, 2, 10]. * **메이저 κ°€λΉ„μ§€ μ»¬λ ‰μ…˜(Major GC)**: μƒˆλ‘œμš΄ 곡간과 달리 였래된 곡간은 수백 λ©”κ°€λ°”μ΄νŠΈμ˜ λ°©λŒ€ν•œ 데이터λ₯Ό 포함할 수 μžˆμ–΄ 물리적으둜 λ©”λͺ¨λ¦¬λ₯Ό λ³΅μ‚¬ν•˜λŠ” μŠ€μΊλΉˆμ§€ 방식은 λΉ„νš¨μœ¨μ μž…λ‹ˆλ‹€ [4, 5]. λ”°λΌμ„œ V8은 마크-μŠ€μœ•(Mark-Sweep) 및 마크-컴팩트(Mark-Compact) μ•Œκ³ λ¦¬μ¦˜μ„ μ μš©ν•©λ‹ˆλ‹€ [4, 5]. 루트(Root) κ°μ²΄λ‘œλΆ€ν„° 도달 κ°€λŠ₯ν•œ 객체듀을 λ§ˆν‚Ή(Mark)ν•œ λ’€, 도달할 수 μ—†λŠ” λ©”λͺ¨λ¦¬ μ˜μ—­μ„ ν•΄μ œ(Sweep)ν•˜μ—¬ μ—¬μœ  리슀트(Free list)둜 λ°˜ν™˜ν•©λ‹ˆλ‹€ [5, 11, 12]. λ‹¨νŽΈν™”(Fragmentation)κ°€ μ‹¬ν•œ κ²½μš°μ—λŠ” 객체듀을 μ΄λ™μ‹œμΌœ μ—¬μœ  곡간을 μ••μΆ•(Compact)ν•˜λŠ” μž‘μ—…λ„ ν•¨κ»˜ μˆ˜ν–‰ν•©λ‹ˆλ‹€ [5, 13, 14]. * **μ“°κΈ° μž₯λ²½([[Write Barrier]]s)의 ν™œμš©**: 였래된 κ³΅κ°„μ˜ 객체가 μƒˆλ‘œμš΄ κ³΅κ°„μ˜ 객체λ₯Ό κ°€λ¦¬ν‚€λŠ” 경우, V8은 'μ“°κΈ° μž₯λ²½(Write barrier)' λ©”μ»€λ‹ˆμ¦˜μ„ μ΄μš©ν•΄ ν•΄λ‹Ή ν¬μΈν„°μ˜ μœ„μΉ˜λ₯Ό μŠ€ν† μ–΄ 버퍼(Store buffer)에 κΈ°λ‘ν•©λ‹ˆλ‹€ [15]. 덕뢄에 λ§ˆμ΄λ„ˆ GCλ₯Ό μˆ˜ν–‰ν•  λ•Œλ§ˆλ‹€ 수백 λ©”κ°€λ°”μ΄νŠΈμ— λ‹¬ν•˜λŠ” 였래된 곡간 전체λ₯Ό μŠ€μΊ”ν•  ν•„μš” 없이, μƒˆλ‘œμš΄ 객체의 생쑴 μ—¬λΆ€λ₯Ό μ‹ μ†ν•˜κ²Œ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [15, 16]. * **λ©”λͺ¨λ¦¬ 뢄석 및 νŠœλ‹ μ‹œμ‚¬μ **: λΈŒλΌμš°μ €λ‚˜ Node.js의 νƒ€μž„λΌμΈμ„ 톡해 νž™ ν• λ‹Ή μ‹œμ μ„ 뢄석할 λ•Œ, 객체듀이 κ³„μ†ν•΄μ„œ κ°€λΉ„μ§€ μ»¬λ ‰νŠΈλ˜μ§€ μ•Šκ³  였래된 곡간에 μΆ•μ λ˜μ–΄ 베이슀라인 λ©”λͺ¨λ¦¬κ°€ μ§€μ†μ μœΌλ‘œ μƒμŠΉν•˜λŠ” ν˜„μƒ(래칫 νŒ¨ν„΄, Ratchet pattern)이 λ°œμƒν•œλ‹€λ©΄ μ΄λŠ” λ©”λͺ¨λ¦¬ λˆ„μˆ˜μ˜ λͺ…ν™•ν•œ μ§•ν›„μž…λ‹ˆλ‹€ [17, 18]. μΊμ‹œλ‚˜ μ‚¬μš©μž μ„Έμ…˜ λ“± 영ꡬ적인 데이터가 λ§Žμ€ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 경우 `--max-old-space-size` ν”Œλž˜κ·Έλ₯Ό μ„€μ •ν•˜μ—¬ 였래된 κ³΅κ°„μ˜ μ΅œλŒ€ ν—ˆμš© 크기λ₯Ό 늘렀 μΆ©λŒμ΄λ‚˜ μ„±λŠ₯ μ €ν•˜λ₯Ό λ°©μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [19, 20]. ## ⚠️ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & RL Update) - **κ³Όκ±° λ°μ΄ν„°μ™€μ˜ 좩돌:** μžλ™ν™” 엔진에 μ˜ν•΄ λ§€ν•‘λœ μ§€μ‹μœΌλ‘œ, μΆ”ν›„ μ •λ°€ 검증 ν•„μš”. - **μ •μ±… λ³€ν™”:** Programming & Language λΆ„μ•Όμ˜ μžλ™ μžμ‚°ν™” μˆ˜ν–‰. ## πŸ”— 지식 μ—°κ²° (Graph) - **Related Topics:** μƒˆλ‘œμš΄ 곡간(New Space), κ°€λΉ„μ§€ μ»¬λ ‰μ…˜([[Garbage Collection]]), [[μ„ΈλŒ€ κ°€μ„€(Generational Hypothesis)]], [[마크-μŠ€μœ•(Mark-Sweep)]], 마크-컴팩트(Mark-Compact) - **Projects/Contexts:** V8 μ—”μ§„ νž™ μ•„ν‚€ν…μ²˜([[V8 Engine]] Heap [[Architecture]]), [[ν• λ‹Ή νƒ€μž„λΌμΈ([[Allocation Timeline]])]], Node.js λ©”λͺ¨λ¦¬ νŠœλ‹ - **Contradictions/Notes:** μ†ŒμŠ€μ— λ‚΄μš© μƒμ˜ λͺ¨μˆœμ€ μ—†μœΌλ©°, V8 λ©”λͺ¨λ¦¬ κ΄€λ¦¬μ˜ 핡심인 μ„ΈλŒ€ 가섀에 κΈ°λ°˜ν•˜μ—¬ μƒˆλ‘­κ²Œ μƒμ„±λœ 단기 생쑴 객체 곡간(New Space)κ³Ό λͺ…ν™•ν•˜κ²Œ 뢄리 κ΄€λ¦¬λ˜μ–΄ μ—”μ§„μ˜ 전체적인 κ°€λΉ„μ§€ μ»¬λ ‰μ…˜ νš¨μœ¨μ„ λ†’μΈλ‹€λŠ” 점이 μΌκ΄€λ˜κ²Œ κ°•μ‘°λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€. --- *Last updated: 2026-04-19* ---