--- id: P-REINFORCE-AUTO-EDDCE3 category: "10_Wiki/๐Ÿ’ก Topics/Design & Experience" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - ์žฌ์กฐ์ • (Reconciliation)" --- # [[แ„Œแ…ขแ„Œแ…ฉแ„Œแ…ฅแ†ผ (Reconciliation)|์žฌ์กฐ์ • (Reconciliation)]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > React๊ฐ€ ๋ Œ๋”๋ง ์‹œ ์ƒˆ๋กœ์šด ๊ฐ€์ƒ DOM(Virtual DOM) ํŠธ๋ฆฌ์™€ ์ด์ „ ํŠธ๋ฆฌ๋ฅผ ๋น„๊ตํ•˜์—ฌ, ์‹ค์ œ DOM์— ์ ์šฉํ•ด์•ผ ํ•  ์ตœ์†Œํ•œ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ์„ ์ฐพ์•„๋‚ด์–ด ์—…๋ฐ์ดํŠธํ•˜๋Š” $O(n)$ ๋ณต์žก๋„์˜ ํ•ต์‹ฌ ๋””ํ•‘(Diffing) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) **1. ์žฌ์กฐ์ •์˜ 2๋‹จ๊ณ„ ํ”„๋กœ์„ธ์Šค** React๋Š” ๋ Œ๋”๋ง ์ค‘ ์‹ค์ œ DOM์„ ์ง์ ‘ ์กฐ์ž‘ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ์žฌ์กฐ์ •์€ ๋‘ ๊ฐ€์ง€ ๋‹จ๊ณ„๋กœ ๋‚˜๋‰˜์–ด ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. - **๋ Œ๋” ๋‹จ๊ณ„ (Render Phase):** ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ UI๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒˆ๋กœ์šด ๊ฐ€์ƒ ํŠธ๋ฆฌ๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. - **์ปค๋ฐ‹ ๋‹จ๊ณ„ (Commit Phase):** ์ด์ „ ํŠธ๋ฆฌ์™€์˜ ๋น„๊ต(Diffing)๋ฅผ ํ†ตํ•ด ๊ณ„์‚ฐ๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋งŒ์„ ์‹ค์ œ DOM์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. **2. ์žฌ์กฐ์ •์˜ 3๊ฐ€์ง€ ํ•ต์‹ฌ ๊ทœ์น™** React์˜ ๋””ํ•‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ปดํฌ๋„ŒํŠธ์˜ ๋ฆฌ๋ Œ๋”๋ง ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. - **ํƒ€์ž…์ด ๋‹ค๋ฅธ ์š”์†Œ:** ๊ฐ™์€ ์œ„์น˜์— ๋‹ค๋ฅธ ํƒ€์ž…์˜ ์š”์†Œ(`div`์—์„œ `span` ๋“ฑ)๊ฐ€ ๋“ค์–ด์˜ค๋ฉด, React๋Š” ์ด์ „ ํ•˜์œ„ ํŠธ๋ฆฌ๋ฅผ ์™„์ „ํžˆ ํŒŒ๊ดด(์–ธ๋งˆ์šดํŠธ)ํ•˜๊ณ  ์ƒˆ๋กœ์šด ํŠธ๋ฆฌ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. - **Key๋ฅผ ํ†ตํ•œ ์‹๋ณ„:** ๋ฐฐ์—ด์ด๋‚˜ ๋ฆฌ์ŠคํŠธ ๋ Œ๋”๋ง ์‹œ ๊ณ ์œ ํ•œ `key`๋ฅผ ๋ถ€์—ฌํ•˜๋ฉด, ์œ„์น˜๊ฐ€ ๋ฐ”๋€Œ๋”๋ผ๋„ React๊ฐ€ `key`๋ฅผ ํ†ตํ•ด ๊ธฐ์กด ํ•ญ๋ชฉ์„ ์‹๋ณ„ํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ์žฌ์ƒ์„ฑ ์—†์ด ํšจ์œจ์ ์œผ๋กœ ์žฌ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. - **๋™์ผํ•œ ์ปดํฌ๋„ŒํŠธ ํƒ€์ž…:** ๊ฐ™์€ ํƒ€์ž…์˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋™์ผํ•œ ์œ„์น˜์— ์œ ์ง€๋˜๋ฉด, ์ปดํฌ๋„ŒํŠธ ์ธ์Šคํ„ด์Šค์™€ ๋‚ด๋ถ€ ์ƒํƒœ(State)๋Š” ๊ทธ๋Œ€๋กœ ๋ณด์กด๋œ ์ฑ„ ๋ณ€๊ฒฝ๋œ ํ”„๋กญ์Šค(Props)๋งŒ ์—…๋ฐ์ดํŠธ๋ฉ๋‹ˆ๋‹ค. **3. ์„ฑ๋Šฅ ์˜ค๋ฒ„ํ—ค๋“œ์™€ ํ•œ๊ณ„** ์žฌ์กฐ์ •์€ ์ผ๋ฐ˜์ ์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋งค์šฐ ํšจ์œจ์ ์ด์ง€๋งŒ, ๋Œ€๊ทœ๋ชจ DOM ์กฐ์ž‘์ด๋‚˜ ๊ณ ๋นˆ๋„ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒŒ์ž„ ๋ฐ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ™˜๊ฒฝ์—์„œ๋Š” ์‹ฌ๊ฐํ•œ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์œ ๋ฐœํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 60FPS๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„ ์˜ˆ์‚ฐ์€ ์•ฝ 16.67ms์ธ๋ฐ, ์•ฝ 3,000๊ฐœ์˜ ๋…ธ๋“œ๋ฅผ ๊ฐ€์ง„ ๋ณต์žกํ•œ ๋ทฐ์—์„œ ์ƒํƒœ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด ํŠธ๋ฆฌ ๋น„๊ต ์—ฐ์‚ฐ์— CPU ์ž์›์ด ํฌ๊ฒŒ ์†Œ๋ชจ๋˜์–ด ํ”„๋ ˆ์ž„ ๋ ˆ์ดํŠธ๊ฐ€ 7 FPS ์ดํ•˜๋กœ ๊ธ‰๋ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. **4. ์ตœ์‹  ๊ฐœ์„  ์‚ฌํ•ญ (React 19)** React 19์—์„œ๋Š” ์žฌ์กฐ์ •์˜ ํšจ์œจ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ๊ธฐ๋Šฅ๋“ค์ด ๊ฐ•ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค. `setTimeout`, ํ”„๋กœ๋ฏธ์Šค(Promises), ๋„ค์ดํ‹ฐ๋ธŒ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋“ฑ ๋ชจ๋“  ์ปจํ…์ŠคํŠธ์—์„œ **์ž๋™ ๋ฐฐ์นญ(Automatic Batching)**์ด ์ผ๊ด€๋˜๊ฒŒ ์ ์šฉ๋˜์–ด ์—ฌ๋Ÿฌ ์ƒํƒœ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•œ ๋ฒˆ์˜ ๋ฆฌ๋ Œ๋”๋ง์œผ๋กœ ๋ฌถ์–ด ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋™์‹œ์„ฑ ๋ Œ๋”๋ง(Concurrent Rendering) ๊ธฐ๋Šฅ์ด ํ–ฅ์ƒ๋˜์–ด, ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ๋ฌด๊ฑฐ์šด ๋ Œ๋”๋ง(์ €์šฐ์„ ์ˆœ์œ„)์„ ์ž ์‹œ ์ค‘๋‹จํ•˜๊ณ  ์‚ฌ์šฉ์ž์˜ ํƒ€์ดํ•‘๊ณผ ๊ฐ™์€ ๊ธด๊ธ‰ํ•œ ๊ณ ์šฐ์„ ์ˆœ์œ„ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฆ‰๊ฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Design & Experience ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[แ„€แ…กแ„‰แ…กแ†ผ DOM (Virtual DOM)|๊ฐ€์ƒ DOM (Virtual DOM)]], [[React แ„ƒแ…ฉแ†ผแ„‰แ…ตแ„‰แ…ฅแ†ผ แ„€แ…ตแ„‚แ…ณแ†ผ (Concurrent Features)|React ๋™์‹œ์„ฑ ๊ธฐ๋Šฅ (Concurrent Features)]], [[แ„‡แ…ฎแ†ฏแ„‘แ…ตแ†ฏแ„‹แ…ญแ„’แ…กแ†ซ แ„…แ…ตแ„…แ…ฆแ†ซแ„ƒแ…ฅแ„…แ…ตแ†ผ แ„‡แ…กแ†ผแ„Œแ…ต|๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง ๋ฐฉ์ง€]], ๋ช…๋ นํ˜• ์กฐ์ž‘ (Imperative Manipulation) - **Projects/Contexts:** [[แ„€แ…ฉแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„‰แ…ตแ†ฏแ„‰แ…ตแ„€แ…กแ†ซ แ„‰แ…กแ†ผแ„’แ…ฉแ„Œแ…กแ†จแ„‹แ…ญแ†ผ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ทแ„‹แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ React แ„€แ…ตแ„‡แ…กแ†ซ แ„€แ…ฆแ„‹แ…ตแ†ท แ„‹แ…ฆแ†ซแ„Œแ…ตแ†ซ แ„‹แ…กแ„แ…ตแ„แ…ฆแ†จแ„Žแ…ฅ|๊ณ ์„ฑ๋Šฅ ์‹ค์‹œ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ React ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„ ์—”์ง„ ์•„ํ‚คํ…์ฒ˜]], [[แ„ƒแ…ขแ„€แ…ฒแ„†แ…ฉ แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ แ„…แ…ฆแ†ซแ„ƒแ…ฅแ„…แ…ตแ†ผ แ„†แ…ตแ†พ แ„€แ…กแ„‰แ…กแ†ผแ„’แ…ช แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช|๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ๋ Œ๋”๋ง ๋ฐ ๊ฐ€์ƒํ™” ์ตœ์ ํ™”]] - **Contradictions/Notes:** ์žฌ์กฐ์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์„ ์–ธ์  UI ๊ด€๋ฆฌ๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ํ›Œ๋ฅญํ•œ ๊ธฐ๋Šฅ์ด์ง€๋งŒ ๋งŒ๋Šฅ์€ ์•„๋‹™๋‹ˆ๋‹ค. Three.js(R3F) ๊ธฐ๋ฐ˜์˜ ๊ฒŒ์ž„์ด๋‚˜ ๋Œ€๊ทœ๋ชจ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ™˜๊ฒฝ์ฒ˜๋Ÿผ ๋งค ํ”„๋ ˆ์ž„ ์ˆ˜๋งŒ ๊ฐœ์˜ ์ขŒํ‘œ๋‚˜ ์†์„ฑ์ด ๋ณ€ํ•˜๋Š” ๊ฒฝ์šฐ, React์˜ ์žฌ์กฐ์ • ๊ณผ์ •์„ ๊ฑฐ์น˜๋ฉด ์„ฑ๋Šฅ์ด ๋ถ•๊ดด๋˜๋ฏ€๋กœ `useFrame` ๋“ฑ์„ ํ™œ์šฉํ•ด ์ฐธ์กฐ(Ref)์˜ ์†์„ฑ์„ ์ง์ ‘ ์กฐ์ž‘(Direct/Imperative Mutation)ํ•˜์—ฌ ์žฌ์กฐ์ •์„ ์šฐํšŒํ•˜๋Š” ๊ธฐ๋ฒ•์ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. --- _Last updated: 2026-04-15_ - Raw Source: 00_Raw/2026-04-20/์žฌ์กฐ์ • (Reconciliation).md ---