--- id: P-REINFORCE-AUTO-918534 category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - SharedArrayBuffer ๋™์‹œ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฒ•" --- # [[SharedArrayBuffer แ„ƒแ…ฉแ†ผแ„‰แ…ตแ„‰แ…ฅแ†ผ แ„†แ…ฎแ†ซแ„Œแ…ฆ แ„’แ…ขแ„€แ…งแ†ฏแ„‡แ…ฅแ†ธ|SharedArrayBuffer ๋™์‹œ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฒ•]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > `SharedArrayBuffer`๋Š” ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ๋™์‹œ์— ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ๊ฒฝ์Ÿ ์ƒํƒœ(Data Race)๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด **์›์ž์  ์—ฐ์‚ฐ(Atomic operations)** ์ง€์›์„ ํ™œ์šฉํ•˜๊ฑฐ๋‚˜ **์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„(ECS ๋“ฑ)**๋ฅผ ํ†ตํ•ด ์Šค๋ ˆ๋“œ ๊ฐ„์˜ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์—ญํ• ์„ ๋ช…ํ™•ํžˆ ๋ถ„๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) **1. ์›์ž์  ์—ฐ์‚ฐ (Atomic Operations) ํ™œ์šฉ** `SharedArrayBuffer`๋Š” ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์™€ ์›Œ์ปค ์Šค๋ ˆ๋“œ ๋“ฑ ์„œ๋กœ ๋‹ค๋ฅธ ์ปจํ…์ŠคํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌ ์—†์ด ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋ฉฐ, ๋™์‹œ ์ ‘๊ทผ์œผ๋กœ ์ธํ•œ ์ถฉ๋Œ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์›์ž์  ์—ฐ์‚ฐ(Atomic operations)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. _(โ€ป ์™ธ๋ถ€ ์ง€์‹ ์ฐธ๊ณ : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์ด๋ฅผ ์œ„ํ•ด ๋‚ด์žฅ๋œ `Atomics` ์ „์—ญ ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. `Atomics.load()`, `Atomics.store()`, `Atomics.add()`, `Atomics.compareExchange()` ๋“ฑ์˜ API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ๋Œ€ํ•œ ์ฝ๊ธฐ์™€ ์“ฐ๊ธฐ๊ฐ€ ์ค‘๊ฐ„์— ๋Š๊ธฐ์ง€ ์•Š๋Š” '๋‹จ์ผ ์—ฐ์‚ฐ'์œผ๋กœ ๋ณด์žฅ๋˜์–ด ์•ˆ์ „ํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)_ **2. ์Šค๋ ˆ๋“œ ๋™๊ธฐํ™” ์ œ์–ด (Lock / Wait ๋ฉ”์ปค๋‹ˆ์ฆ˜)** _(โ€ป ์™ธ๋ถ€ ์ง€์‹ ์ฐธ๊ณ : ๋™์‹œ์„ฑ ์ถฉ๋Œ์„ ๋”์šฑ ์—„๊ฒฉํ•˜๊ฒŒ ์ œ์–ดํ•ด์•ผ ํ•  ๊ฒฝ์šฐ `Atomics.wait()`์™€ `Atomics.notify()`๋ฅผ ํ™œ์šฉํ•ด ํŠน์ • ์Šค๋ ˆ๋“œ๋ฅผ ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋งŒ๋“ค๊ณ  ์ž‘์—…์ด ๋๋‚œ ํ›„ ๊นจ์šฐ๋Š” ๋ฐฉ์‹(Lock, Mutex ํŒจํ„ด)์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ์˜ ์ ‘๊ทผ ์ˆœ์„œ๋ฅผ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)_ **3. ์•„ํ‚คํ…์ฒ˜์  ํ•ด๊ฒฐ: ECS(Entity Component System)๋ฅผ ํ†ตํ•œ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์—ญํ•  ๋ถ„๋ฆฌ** ๊ฐ€์žฅ ํšจ์œจ์ ์ธ ๋ฐฉ์‹์€ ์—”์ง„ ๊ตฌ์กฐ ์ž์ฒด์—์„œ ๋ฐ์ดํ„ฐ์˜ ๋‹จ๋ฐฉํ–ฅ ํ๋ฆ„์„ ๊ฐ•์ œํ•˜์—ฌ ์ถฉ๋Œ์„ ํšŒํ”ผํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ณ ์„ฑ๋Šฅ ๊ฒŒ์ž„ ์—”์ง„ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” ECS์˜ ์ปดํฌ๋„ŒํŠธ ๋ฐ์ดํ„ฐ๋ฅผ `SharedArrayBuffer`์— ํ• ๋‹นํ•œ ํ›„, ์Šค๋ ˆ๋“œ์˜ ์—ญํ• ์„ ์—„๊ฒฉํ•˜๊ฒŒ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. - **์“ฐ๊ธฐ(Write) ์ „๋‹ด ์Šค๋ ˆ๋“œ:** ์›น ์›Œ์ปค(Web Worker)๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋ฌผ๋ฆฌ ์—ฐ์‚ฐ์ด๋‚˜ AI ๋กœ์ง ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ๋ฒ„ํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ(Write)ํ•ฉ๋‹ˆ๋‹ค. - **์ฝ๊ธฐ(Read) ์ „๋‹ด ์Šค๋ ˆ๋“œ:** ๋ฉ”์ธ ์Šค๋ ˆ๋“œ(React ๋ฐ ๋ Œ๋”๋ง ๋ฃจํ”„)๋Š” ๋ Œ๋”๋ง ์‹œ์ ์— ๋ฒ„ํผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฆ‰์‹œ ์ฝ์–ด์™€(Read) ๋ณต์‚ฌ ๋น„์šฉ ์—†์ด WebGL/Three.js ๋ฉ”์‹œ์˜ ์†์„ฑ์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐ์ดํ„ฐ ์ง€ํ–ฅ ์„ค๊ณ„(Data-Oriented Design)๋ฅผ ์ฑ„ํƒํ•˜๋ฉด ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ์— ๋™์‹œ์— ์“ฐ๊ธฐ ์ž‘์—…์„ ํ•˜๋Š” ์ƒํ™ฉ์„ ๊ตฌ์กฐ์ ์œผ๋กœ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[Web Worker (แ„‹แ…ฐแ†ธ แ„‹แ…ฏแ„แ…ฅ)|Web Worker]], Atomics API, ๊ฒฝ์Ÿ ์ƒํƒœ (Race Condition), Data-Oriented Design (ECS) - **Projects/Contexts:** ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ React WebGL ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜, ๊ณ ์„ฑ๋Šฅ ์‹ค์‹œ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ ์‹œ์Šคํ…œ - **Contradictions/Notes:** `SharedArrayBuffer`๋Š” ์ง€์—ฐ ์‹œ๊ฐ„์„ ๊ทน๋„๋กœ ๋‚ฎ์ถ”๊ณ  ๋ณต์‚ฌ ๋น„์šฉ์„ '0'์œผ๋กœ ๋งŒ๋“ค์ง€๋งŒ, ๋กœ์šฐ ๋ ˆ๋ฒจ์˜ ์ด์ง„ ๋ฐ์ดํ„ฐ ๋ฒ„ํผ๋ฅผ ์ง์ ‘ ๋‹ค๋ค„์•ผ ํ•˜๊ณ  `Atomics`๋กœ ๋™์‹œ์„ฑ์„ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๊ตฌํ˜„ ๋ณต์žก๋„๊ฐ€ ๋งค์šฐ ๋†’์Šต๋‹ˆ๋‹ค [264, 895, ์ด์ „ ๋Œ€ํ™” ๋‚ด์šฉ ์ฐธ์กฐ]. ๋”ฐ๋ผ์„œ ์ถฉ๋Œ ์ œ์–ด์™€ ๊ฐœ๋ฐœ ํŽธ์˜์„ฑ์ด ๋” ์ค‘์š”ํ•œ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ์—๋Š” Valtio ๋“ฑ ํ”„๋ก์‹œ(Proxy)๋ฅผ ์‚ฌ์šฉํ•ด `BroadcastChannel`์ด๋‚˜ `postMessage`๋กœ ๋ณ€๊ฒฝ์ (Delta)๋งŒ ๋™๊ธฐํ™”ํ•˜๋Š” ๋ฉ”์‹œ์ง€ ๊ธฐ๋ฐ˜ ํŒจํ„ด์ด ๋” ์ง๊ด€์ ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --- _Last updated: 2026-04-14_ - Raw Source: 00_Raw/2026-04-20/SharedArrayBuffer ๋™์‹œ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ๋ฒ•.md ---