--- id: P-REINFORCE-AUTO-921FA9 category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ์›น ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™”" --- # [[แ„‹แ…ฐแ†ธ แ„‘แ…ณแ„…แ…ฉแ†ซแ„แ…ณแ„‹แ…ฆแ†ซแ„ƒแ…ณ แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช|์›น ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™”]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > ์›น ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋Š” ๋ธŒ๋ผ์šฐ์ € ๋‚ด JavaScript ์—”์ง„์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ฐ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(GC) ํšจ์œจ์„ ๋†’์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ง€์—ฐ(Jank)์ด๋‚˜ ์ถฉ๋Œ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ณผ์ •์ž…๋‹ˆ๋‹ค [1, 2]. ๊ฐœ๋ฐœ์ž๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ์›์ธ์„ ์‹๋ณ„ํ•˜๊ณ  ์ด๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ ๋ Œ๋”๋ง ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์„ฑ๋Šฅ์„ ์›ํ™œํ•˜๊ฒŒ ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [2, 3]. ์ด๋ฅผ ์œ„ํ•ด Chrome DevTools์™€ ๊ฐ™์€ ํ”„๋กœํŒŒ์ผ๋ง ๋„๊ตฌ๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ๊ฐ์ฒด ๋ณด์กด ์ƒํƒœ๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4, 5]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ํŒจํ„ด ๋ฐ ์›์ธ ํŒŒ์•…** ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฃผ์š” ์„ฑ๋Šฅ ์ €ํ•˜ ์›์ธ์€ ๋” ์ด์ƒ ํ•„์š” ์—†๋Š” ๊ฐ์ฒด๊ฐ€ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์— ์˜ํ•ด ํšŒ์ˆ˜๋˜์ง€ ๋ชปํ•˜๊ณ  ์ฐธ์กฐ๊ฐ€ ์œ ์ง€๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์ž…๋‹ˆ๋‹ค [3, 6]. ๋Œ€ํ‘œ์ ์ธ ๋ˆ„์ˆ˜ ํŒจํ„ด์œผ๋กœ๋Š” ๋ฌธ์„œ์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์œผ๋‚˜ JS ๋ณ€์ˆ˜์— ์˜ํ•ด ์ฐธ์กฐ๋˜๋Š” ๋ถ„๋ฆฌ๋œ DOM ๋…ธ๋“œ(Detached DOM nodes), ๋ฐ˜๋ณต์ ์ธ ๋ Œ๋”๋ง ์ฃผ๊ธฐ์—์„œ ๋ˆ„์ ๋˜๋Š” ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ, ๊ณต์œ  ์Šค์ฝ”ํ”„์— ์˜ํ•ด ์œ ์ง€๋˜๋Š” ํด๋กœ์ €, ๊ทธ๋ฆฌ๊ณ  ๋Œ€์ƒ์ด ์ œ๊ฑฐ๋˜์—ˆ์Œ์—๋„ ์—ฐ๊ฒฐ์ด ๋Š๊ธฐ์ง€ ์•Š์€ ํƒ€์ด๋จธ(setInterval)์™€ ์˜ต์ €๋ฒ„ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค [7-9]. ํŠนํžˆ ๋‹จ์ผ ํŽ˜์ด์ง€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(SPA)์˜ ๋ผ์šฐํŠธ ์ „ํ™˜์€ ์ด์ „ ๋ผ์šฐํŠธ์˜ ๋ฆฌ์Šค๋„ˆ๋‚˜ ์ „์—ญ ์ƒํƒœ ์ฐธ์กฐ๋ฅผ ์ œ๋Œ€๋กœ ์ •๋ฆฌํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๊ฐ€์žฅ ๋นˆ๋ฒˆํ•œ ๋ˆ„์ˆ˜ ์›์ธ์ด ๋ฉ๋‹ˆ๋‹ค [10]. * **Chrome DevTools๋ฅผ ์ด์šฉํ•œ ์ง„๋‹จ ๋ฐ ํ”„๋กœํŒŒ์ผ๋ง** ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์™€ ์„ฑ๋Šฅ ๋ณ‘๋ชฉ์„ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด Chrome DevTools์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [5]. 'Heap snapshot'์„ ํ†ตํ•ด ํŠน์ • ์‹œ์ ์˜ ์ „์ฒด ๋ฉ”๋ชจ๋ฆฌ ๊ฐ์ฒด ๊ทธ๋ž˜ํ”„๋ฅผ ์บก์ฒ˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, 3๊ฐœ์˜ ์Šค๋ƒ…์ƒท์„ ๋น„๊ตํ•˜๋Š” ๊ธฐ๋ฒ•(Three-snapshot technique)์„ ์‚ฌ์šฉํ•˜์—ฌ 1ํšŒ์„ฑ ํ• ๋‹น์„ ํ•„ํ„ฐ๋งํ•˜๊ณ  ์ง€์†์ ์œผ๋กœ ์‚ด์•„๋‚จ์€ ๋ˆ„์ˆ˜ ์˜์‹ฌ ๊ฐ์ฒด๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4, 11]. ๋˜ํ•œ 'Allocation Timeline'์„ ํ™œ์šฉํ•˜์—ฌ ์‹œ๊ฐ„์— ๋”ฐ๋ฅธ ํ• ๋‹น์„ ๊ธฐ๋กํ•˜๊ณ  ์Šคํƒ ํŠธ๋ ˆ์ด์Šค๋ฅผ ๋ถ„์„ํ•จ์œผ๋กœ์จ, ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋œ ์ •ํ™•ํ•œ ์ฝ”๋“œ ์œ„์น˜๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4, 5, 12]. * **๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(GC) ์ตœ์ ํ™”์— ๋”ฐ๋ฅธ ์„ฑ๋Šฅ ์˜ํ–ฅ** ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์ด ๊ณผ๋„ํ•˜๊ฒŒ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฉด ์˜ˆ์ธกํ•  ์ˆ˜ ์—†๋Š” ๋ฉˆ์ถค ํ˜„์ƒ(Stop-the-world pause)์„ ์ผ์œผ์ผœ ์• ๋‹ˆ๋ฉ”์ด์…˜๊ณผ ๊ฐ™์€ ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ์‹œ์Šคํ…œ์˜ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋ฐฉํ•ดํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค [13, 14]. V8 ์—”์ง„์€ ๋Œ€๋ถ€๋ถ„์˜ ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ ์งํ›„ ์“ธ๋ชจ์—†์–ด์ง„๋‹ค๋Š” '์„ธ๋Œ€๋ณ„ ๊ฐ€์„ค(Generational hypothesis)'์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ํž™ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค [15, 16]. ์ตœ์‹  V8์˜ Orinoco ํ”„๋กœ์ ํŠธ๋Š” ๋ณ‘๋ ฌ(Parallel), ์ ์ง„์ (Incremental), ๋™์‹œ(Concurrent) ๊ธฐ์ˆ  ๋ฐ ์œ ํœด ์‹œ๊ฐ„(Idle-time) GC๋ฅผ ๋„์ž…ํ•˜์—ฌ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์˜ ์ค‘๋‹จ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•จ์œผ๋กœ์จ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดˆ๋‹น 60ํ”„๋ ˆ์ž„ ๋ Œ๋”๋ง ๋“ฑ์˜ ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ตœ์ ํ™”ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [17-19]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** `[[แ„†แ…ฆแ„†แ…ฉแ„…แ…ต แ„‚แ…ฎแ„‰แ…ฎ(Memory Leaks)|๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ (Memory Leaks)]]`, `[[แ„€แ…กแ„‡แ…ตแ„Œแ…ต แ„แ…ฅแ†ฏแ„…แ…ฆแ†จแ„‰แ…งแ†ซ (Garbage Collection)|๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ (Garbage Collection)]]`, `[[V8 แ„‹แ…ฆแ†ซแ„Œแ…ตแ†ซ (V8 Engine)|V8 ์—”์ง„ (V8 Engine)]]`, `[[Chrome DevTools|Chrome DevTools]]`, `[[Orinoco|Orinoco]]` - **Projects/Contexts:** `SPA ๋ผ์šฐํŠธ ์ „ํ™˜ (SPA Route Transitions)`, `Three-snapshot technique`, `[[Allocation Timeline|Allocation Timeline]]` - **Contradictions/Notes:** WeakRef๋‚˜ FinalizationRegistry์™€ ๊ฐ™์€ ์ตœ์‹  ๋„๊ตฌ๋“ค์€ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ์ค„์ด๋Š” ๋ฐ ๋„์›€์„ ์ค„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ์˜ ์‹คํ–‰์ด ์ž์ฒด์ ์ธ ์ผ์ •์— ๋”ฐ๋ผ ๋น„๊ฒฐ์ •์ (Non-deterministic)์œผ๋กœ ๋™์ž‘ํ•˜๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ ์ ˆํ•œ ์ˆ˜๋ช… ์ฃผ๊ธฐ ๊ด€๋ฆฌ(Lifecycle management)๋ฅผ ์™„์ „ํžˆ ๋Œ€์ฒดํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค [9]. --- *Last updated: 2026-04-19* - Raw Source: 00_Raw/2026-04-20/์›น ํ”„๋ก ํŠธ์—”๋“œ ์„ฑ๋Šฅ ์ตœ์ ํ™”.md ---