--- id: P-REINFORCE-AUTO-33DDD3 category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - bitECS์™€ SharedArrayBuffer๋ฅผ ๊ฒฐํ•ฉํ•œ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๊ณ ์„ฑ๋Šฅ ์•„ํ‚คํ…์ฒ˜" --- # [[bitECSแ„‹แ…ช SharedArrayBufferแ„…แ…ณแ†ฏ แ„€แ…งแ†ฏแ„’แ…กแ†ธแ„’แ…กแ†ซ แ„†แ…ฅแ†ฏแ„แ…ตแ„‰แ…ณแ„…แ…ฆแ„ƒแ…ณ แ„€แ…ฉแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„‹แ…กแ„แ…ตแ„แ…ฆแ†จแ„Žแ…ฅ|bitECS์™€ SharedArrayBuffer๋ฅผ ๊ฒฐํ•ฉํ•œ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๊ณ ์„ฑ๋Šฅ ์•„ํ‚คํ…์ฒ˜]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > `bitECS`์˜ ๋ฐ์ดํ„ฐ ์ง€ํ–ฅ ์„ค๊ณ„(SoA) ๊ตฌ์กฐ์™€ `SharedArrayBuffer`์˜ ๋ฌด๋ณต์‚ฌ(Zero-Copy) ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ  ๊ธฐ๋Šฅ์„ ๊ฒฐํ•ฉํ•˜์—ฌ, ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์˜ ๋ Œ๋”๋ง ๋ธ”๋กœํ‚น ์—†์ด ์›น ์›Œ์ปค์—์„œ ์ˆ˜๋งŒ ๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ๋ฅผ ๋ณ‘๋ ฌ ์—ฐ์‚ฐํ•˜๊ณ  ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋™๊ธฐํ™”ํ•˜๋Š” ์ดˆ๊ณ ์„ฑ๋Šฅ ์›น ๊ฒŒ์ž„ ์—”์ง„ ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) **1. bitECS์˜ ๋ฐ์ดํ„ฐ ์ง€ํ–ฅ ์„ค๊ณ„ (Structure of Arrays, SoA)** `bitECS`๋Š” ๊ธฐ์กด์˜ ๊ฐ์ฒด ์ง€ํ–ฅ(AoS) ๋ฐฉ์‹ ๋Œ€์‹ , ์ปดํฌ๋„ŒํŠธ ๋ฐ์ดํ„ฐ๋ฅผ `Float32Array`์™€ ๊ฐ™์€ `TypedArray` ๊ธฐ๋ฐ˜์˜ ์—ฐ์†๋œ ๋ฐฐ์—ด ๊ตฌ์กฐ(SoA)๋กœ ์ €์žฅํ•˜๋Š” ECS(Entity Component System) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด ๊ตฌ์กฐ๋Š” CPU ์บ์‹œ ์ ์ค‘๋ฅ ์„ ๊ทน๋Œ€ํ™”ํ•˜์—ฌ ์ˆ˜์ฒœ, ์ˆ˜๋งŒ ๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ ์ƒํƒœ(์˜ˆ: ์œ„์น˜, ์†๋„)๋ฅผ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ์—ฐ์‚ฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. **2. SharedArrayBuffer๋ฅผ ํ†ตํ•œ Zero-Copy ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ ** `bitECS`๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” `TypedArray`์˜ ๊ธฐ๋ฐ˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ `SharedArrayBuffer`๋กœ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑ๋œ ๋ฒ„ํผ๋ฅผ ์›น ์›Œ์ปค(Web Worker)๋กœ ์ „๋‹ฌํ•˜๋ฉด ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์™€ ์›Œ์ปค ์Šค๋ ˆ๋“œ๊ฐ€ ์™„์ „ํžˆ ๋™์ผํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๊ณต์œ ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋งค ํ”„๋ ˆ์ž„๋งˆ๋‹ค ์ง๋ ฌํ™” ๋ฐ ์—ญ์ง๋ ฌํ™”(`postMessage`) ์˜ค๋ฒ„ํ—ค๋“œ ์—†์ด ์Šค๋ ˆ๋“œ ๊ฐ„ ๋ฐ์ดํ„ฐ ํ†ต์‹ ์ด ๊ฐ€๋Šฅํ•ด์ง‘๋‹ˆ๋‹ค. **3. ์Šค๋ ˆ๋“œ ์—ญํ• ์˜ ์—„๊ฒฉํ•œ ๋ถ„๋ฆฌ (๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„)** ๋™์‹œ์„ฑ ๋ฌธ์ œ(Data Race)๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์Šค๋ ˆ๋“œ ๊ฐ„์˜ ์ฝ๊ธฐ/์“ฐ๊ธฐ ์—ญํ• ์„ ์•„ํ‚คํ…์ฒ˜ ์ˆ˜์ค€์—์„œ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค. - **์›Œ์ปค ์Šค๋ ˆ๋“œ (Write ์ „๋‹ด):** ๋ฌผ๋ฆฌ ์—”์ง„ ์—ฐ์‚ฐ, ์ถฉ๋Œ ์ฒ˜๋ฆฌ, AI ์ด๋™ ๋กœ์ง ๋“ฑ์˜ `bitECS` ์‹œ์Šคํ…œ(System)์ด ๋…๋ฆฝ์ ์ธ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ฃจํ”„(์˜ˆ: 60Hz)์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ๊ณต์œ  ๋ฒ„ํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. - **๋ฉ”์ธ ์Šค๋ ˆ๋“œ (Read ์ „๋‹ด):** `React Three Fiber(R3F)`์˜ `useFrame` ๋ Œ๋”๋ง ๋ฃจํ”„ ๋‚ด์—์„œ, ๊ณต์œ  ๋ฉ”๋ชจ๋ฆฌ์˜ `bitECS` ์ปดํฌ๋„ŒํŠธ ๊ฐ’(์˜ˆ: `Position.x[eid]`)์„ ๊ทธ๋Œ€๋กœ ์ฝ์–ด์™€ Three.js ๋ฉ”์‹œ(Mesh) ์ธ์Šคํ„ด์Šค ์ฐธ์กฐ(ref)์— ๋ฐ˜์˜ํ•˜์—ฌ ํ™”๋ฉด์— ๋ Œ๋”๋งํ•ฉ๋‹ˆ๋‹ค. **4. ๋ Œ๋”๋ง๊ณผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์˜ ๋””์ปคํ”Œ๋ง ์ด์ ** ์ด ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ ์šฉํ•˜๋ฉด ๋ฌด๊ฑฐ์šด ๋ฌผ๋ฆฌ ์—ฐ์‚ฐ์ด React์˜ ๊ฐ€์ƒ DOM ์žฌ์กฐ์ •(Reconciliation)์ด๋‚˜ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋ฅผ ๋ธ”๋กœํ‚นํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋งค ํ”„๋ ˆ์ž„ ๊ฐ์ฒด๋ฅผ ์ƒˆ๋กœ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ๋ฐฐ์—ด์˜ ๊ฐ’๋งŒ ๋ณ€๊ฒฝํ•˜๋ฏ€๋กœ, ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(GC) ์ŠคํŒŒ์ดํฌ๋กœ ์ธํ•œ ํ”„๋ ˆ์ž„ ๋“œ๋ž์„ ์›์ฒœ์ ์œผ๋กœ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** Data-Oriented Design (DOD), Structure of Arrays (SoA), Web Worker ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ, React Three Fiber (R3F) ์ตœ์ ํ™”, ๋ฉ”๋ชจ๋ฆฌ ํŒŒํŽธํ™” ๋ฐฉ์ง€ ๋ฐ ๊ฐ์ฒด ํ’€๋ง - **Projects/Contexts:** ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ AAA๊ธ‰ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ 3D ๊ฒŒ์ž„, ์ˆ˜๋งŒ ๊ฐœ์˜ ์—”ํ‹ฐํ‹ฐ๊ฐ€ ์กด์žฌํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ๋ฌผ๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ - **Contradictions/Notes:** ์›์‹œ ์ด์ง„ ๋ฐ์ดํ„ฐ์ธ `SharedArrayBuffer`๋ฅผ ์ง์ ‘ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์€ ๋กœ์šฐ ๋ ˆ๋ฒจ ๊ฐœ๋ฐœ ์ง€์‹์ด ํ•„์š”ํ•ด ๋งค์šฐ ๊นŒ๋‹ค๋กญ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ `bitECS`๋ฅผ ํ”„๋ก์‹œ ๊ตฌ์กฐ๋กœ ํ™œ์šฉํ•˜๋ฉด, ๊ฐœ๋ฐœ์ž๋Š” ์ต์ˆ™ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด๋ฅผ ๋‹ค๋ฃจ๋Š” ๋“ฏํ•œ ํŽธ์˜์„ฑ์„ ๋ˆ„๋ฆฌ๋ฉด์„œ๋„ ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” C++ ์—”์ง„์— ํ•„์ ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต์œ  ์„ฑ๋Šฅ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฐ•๋ ฅํ•œ ์žฅ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. --- _Last updated: 2026-04-14_ - Raw Source: 00_Raw/2026-04-20/bitECS์™€ SharedArrayBuffer๋ฅผ ๊ฒฐํ•ฉํ•œ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ๊ณ ์„ฑ๋Šฅ ์•„ํ‚คํ…์ฒ˜.md ---