--- 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)|์˜ค๋ž˜๋œ ๊ณต๊ฐ„(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 Barriers)์˜ ํ™œ์šฉ**: ์˜ค๋ž˜๋œ ๊ณต๊ฐ„์˜ ๊ฐ์ฒด๊ฐ€ ์ƒˆ๋กœ์šด ๊ณต๊ฐ„์˜ ๊ฐ์ฒด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒฝ์šฐ, 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)|์ƒˆ๋กœ์šด ๊ณต๊ฐ„(New Space)]], [[แ„€แ…กแ„‡แ…ตแ„Œแ…ต แ„แ…ฅแ†ฏแ„…แ…ฆแ†จแ„‰แ…งแ†ซ(Garbage Collection)|๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection)]], [[แ„‰แ…ฆแ„ƒแ…ข แ„€แ…กแ„‰แ…ฅแ†ฏ(Generational Hypothesis)|์„ธ๋Œ€ ๊ฐ€์„ค(Generational Hypothesis)]], [[แ„†แ…กแ„แ…ณ-แ„‰แ…ณแ„‹แ…ฑแ†ธ(Mark-Sweep)|๋งˆํฌ-์Šค์œ•(Mark-Sweep)]], [[แ„†แ…กแ„แ…ณ-แ„แ…ฅแ†ทแ„‘แ…ขแ†จแ„แ…ณ(Mark-Compact)|๋งˆํฌ-์ปดํŒฉํŠธ(Mark-Compact)]] - **Projects/Contexts:** [[V8 แ„‹แ…ฆแ†ซแ„Œแ…ตแ†ซ แ„’แ…ตแ†ธ แ„‹แ…กแ„แ…ตแ„แ…ฆแ†จแ„Žแ…ฅ(V8 Engine Heap Architecture)|V8 ์—”์ง„ ํž™ ์•„ํ‚คํ…์ฒ˜(V8 Engine Heap Architecture)]], [[แ„’แ…กแ†ฏแ„ƒแ…กแ†ผ แ„แ…กแ„‹แ…ตแ†ทแ„…แ…กแ„‹แ…ตแ†ซ(Allocation Timeline)|ํ• ๋‹น ํƒ€์ž„๋ผ์ธ(Allocation Timeline)]], [[Node.js แ„†แ…ฆแ„†แ…ฉแ„…แ…ต แ„แ…ฒแ„‚แ…ตแ†ผ|Node.js ๋ฉ”๋ชจ๋ฆฌ ํŠœ๋‹]] - **Contradictions/Notes:** ์†Œ์Šค์— ๋‚ด์šฉ ์ƒ์˜ ๋ชจ์ˆœ์€ ์—†์œผ๋ฉฐ, V8 ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์˜ ํ•ต์‹ฌ์ธ ์„ธ๋Œ€ ๊ฐ€์„ค์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑ๋œ ๋‹จ๊ธฐ ์ƒ์กด ๊ฐ์ฒด ๊ณต๊ฐ„(New Space)๊ณผ ๋ช…ํ™•ํ•˜๊ฒŒ ๋ถ„๋ฆฌ ๊ด€๋ฆฌ๋˜์–ด ์—”์ง„์˜ ์ „์ฒด์ ์ธ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ํšจ์œจ์„ ๋†’์ธ๋‹ค๋Š” ์ ์ด ์ผ๊ด€๋˜๊ฒŒ ๊ฐ•์กฐ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/์˜ค๋ž˜๋œ ๊ณต๊ฐ„(Old Space).md ---