--- id: P-REINFORCE-AUTO-E6A358 category: "10_Wiki/๐Ÿ’ก Topics/Programming & Language" confidence_score: 0.90 tags: [auto-reinforced] last_reinforced: 2026-04-20 github_commit: "[P-Reinforce] Continuous Worker - React ์žฌ์กฐ์ • (Reconciliation) ์ตœ์ ํ™”" --- # [[React แ„Œแ…ขแ„Œแ…ฉแ„Œแ…ฅแ†ผ (Reconciliation) แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช|React ์žฌ์กฐ์ • (Reconciliation) ์ตœ์ ํ™”]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) > React ์žฌ์กฐ์ •(Reconciliation) ์ตœ์ ํ™”๋Š” React๊ฐ€ ๊ฐ€์ƒ DOM ํŠธ๋ฆฌ๋ฅผ ๋น„๊ต(Diffing)ํ•˜์—ฌ ์‹ค์ œ DOM์— ์ ์šฉํ•  ์ตœ์†Œํ•œ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” CPU ์˜ค๋ฒ„ํ—ค๋“œ์™€ ๋ถˆํ•„์š”ํ•œ ๋ Œ๋”๋ง์„ ์ค„์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ๊ณผ ๋ฐ˜์‘์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์ฝ”๋”ฉ ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) **1. ์žฌ์กฐ์ •์˜ ํ•ต์‹ฌ ๊ทœ์น™ ์ดํ•ด์™€ ์ค€์ˆ˜** React์˜ ์žฌ์กฐ์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ตœ์ ํ™”ํ•˜๋ ค๋ฉด ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ํŠธ๋ฆฌ๋ฅผ ๋น„๊ตํ•˜๋Š” 3๊ฐ€์ง€ ํ•ต์‹ฌ ๊ทœ์น™์„ ์ดํ•ดํ•˜๊ณ  ์ด์— ๋งž์ถฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ค๊ณ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. - **์š”์†Œ ํƒ€์ž… ์œ ์ง€:** ๋ถ€๋ชจ ๋…ธ๋“œ์˜ ํƒ€์ž…์ด ๋‹ฌ๋ผ์ง€๋ฉด(์˜ˆ: `div`์—์„œ `span`์œผ๋กœ ๋ณ€๊ฒฝ) React๋Š” ์ด์ „ ํ•˜์œ„ ํŠธ๋ฆฌ๋ฅผ ์™„์ „ํžˆ ํŒŒ๊ดดํ•˜๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง ์‹œ ๊ฐ€๊ธ‰์  ๋™์ผํ•œ ์š”์†Œ ํƒ€์ž…๊ณผ ์œ„์น˜๋ฅผ ์œ ์ง€ํ•˜์—ฌ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์˜ ์ธ์Šคํ„ด์Šค์™€ ์ƒํƒœ๊ฐ€ ํŒŒ๊ดด๋˜์ง€ ์•Š๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. - **์•ˆ์ •์ ์ด๊ณ  ๊ณ ์œ ํ•œ Key ์‚ฌ์šฉ:** ๋ฆฌ์ŠคํŠธ ๋ Œ๋”๋ง ์‹œ `key`๋ฅผ ๋ถ€์—ฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•ญ๋ชฉ์˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€” ๋•Œ React๊ฐ€ ์ „์ฒด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ์žฌ์ƒ์„ฑํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์•ˆ์ •์ ์ธ ๋ฐ์ดํ„ฐ ID๋ฅผ `key`๋กœ ์‚ฌ์šฉํ•˜์—ฌ React๊ฐ€ ๋™์ผํ•œ ํ•ญ๋ชฉ์„ ์‹๋ณ„ํ•˜๊ณ  ๋ Œ๋”๋ง์„ ๊ฑด๋„ˆ๋›ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. **2. ๋ Œ๋”๋ง ํŠธ๋ฆฌ ๋ถ„๋ฆฌ ๋ฐ ์ƒํƒœ์˜ ํ•˜ํ–ฅ ๋ฐฐ์น˜ (Lifting State Down)** ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์˜ ์ƒํƒœ๊ฐ€ ๋ณ€ํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์žฌ์กฐ์ • ๊ณผ์ •์„ ๊ฑฐ์นฉ๋‹ˆ๋‹ค. - **์ƒํƒœ ๊ณ ๋ฆฝํ™”:** ์ž…๋ ฅ ํผ์˜ ํƒ€์ดํ•‘์ด๋‚˜ ๋งˆ์šฐ์Šค ์ขŒํ‘œ ์ถ”์ ์ฒ˜๋Ÿผ ๊ณ ๋นˆ๋„๋กœ ๋ณ€ํ•˜๋Š” ์ƒํƒœ๋Š” ํ•ด๋‹น ์ƒํƒœ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ํ•˜์œ„์˜ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋กœ ๋‚ด๋ ค๋ณด๋‚ด์•ผ(Lifting State Down) ํ•ฉ๋‹ˆ๋‹ค. - **์ปจํ…์ŠคํŠธ(Context) ๋ถ„ํ• :** ์ „์—ญ Context์˜ ๊ฐ’์ด ํ•˜๋‚˜๋ผ๋„ ๋ณ€ํ•˜๋ฉด ์ด๋ฅผ ๊ตฌ๋…ํ•˜๋Š” ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋ณ€๊ฒฝ ๋นˆ๋„๊ฐ€ ๋†’์€ ์ƒํƒœ์™€ ๋‚ฎ์€ ์ƒํƒœ๋ฅผ ๋ณ„๋„์˜ Context๋กœ ๋ถ„ํ• ํ•˜์—ฌ ๊ตฌ๋… ๋ฒ”์œ„๋ฅผ ์ขํ˜€์•ผ ํ•ฉ๋‹ˆ๋‹ค. **3. ์ฐธ์กฐ ์•ˆ์ •์„ฑ(Reference Stability) ํ™•๋ณด๋ฅผ ํ†ตํ•œ ๋ฉ”๋ชจ์ด์ œ์ด์…˜** `React.memo`๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ํ”„๋กญ์Šค(Props)๊ฐ€ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜์„ ๋•Œ ์žฌ์กฐ์ •์„ ๊ฑด๋„ˆ๋›ฐ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŒจํ„ด์€ ์ด ์ตœ์ ํ™”๋ฅผ ๋ฌด๋ ฅํ™”ํ•ฉ๋‹ˆ๋‹ค. - **์ธ๋ผ์ธ ๊ฐ์ฒด ๋ฐ ํ•จ์ˆ˜ ์ง€์–‘:** ๋ Œ๋”๋ง ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ `{ borderRadius: '50%' }`์™€ ๊ฐ™์€ ์ธ๋ผ์ธ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ `() => handleClick()`๊ณผ ๊ฐ™์€ ์ต๋ช… ํ•จ์ˆ˜๋ฅผ ๋„˜๊ธฐ๋ฉด ๋งค ๋ Œ๋”๋ง๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๋ฉ”๋ชจ๋ฆฌ ์ฐธ์กฐ(Reference)๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. - ๋ถ€๋ชจ์—์„œ ์ž์‹์œผ๋กœ ์ฝœ๋ฐฑ์ด๋‚˜ ํŒŒ์ƒ ๊ฐ์ฒด๋ฅผ ์ „๋‹ฌํ•  ๋•Œ๋Š” **`useCallback`๊ณผ `useMemo`๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฐธ์กฐ๋ฅผ ๊ณ ์ •(Memoize)**ํ•ด์•ผ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์˜ `React.memo`๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์—ฌ ์žฌ์กฐ์ •์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. **4. ๋Œ€๊ทœ๋ชจ ๋ฆฌ์ŠคํŠธ ๊ฐ€์ƒํ™” (Virtualization)** ํ•ญ๋ชฉ์ด ์ˆ˜๋ฐฑ ๊ฐœ ์ด์ƒ์ธ ๋ฆฌ์ŠคํŠธ์˜ ๊ฒฝ์šฐ ์žฌ์กฐ์ • ์ž์ฒด์˜ ๋น„์šฉ์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฒ„๋ฒ…๊ฑฐ๋ฆฝ๋‹ˆ๋‹ค. ํ™”๋ฉด(Viewport)์— ๋ณด์ด๋Š” ํ•ญ๋ชฉ๋งŒ ๋ Œ๋”๋งํ•˜๊ณ  ์Šคํฌ๋กค ์‹œ DOM ๋…ธ๋“œ๋ฅผ ๋™์ ์œผ๋กœ ๊ต์ฒดํ•˜๋Š” `react-window` ๋“ฑ์˜ ๊ฐ€์ƒํ™” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ด ์žฌ์กฐ์ •ํ•  ๋…ธ๋“œ์˜ ์ ˆ๋Œ€์ ์ธ ์ˆ˜ ์ž์ฒด๋ฅผ ์ค„์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. **5. ํ•œ๊ณ„ ๊ทน๋ณต: ๋ช…๋ นํ˜• ์กฐ์ž‘์„ ํ†ตํ•œ ์žฌ์กฐ์ • ์šฐํšŒ (Bypass)** ์‹ค์‹œ๊ฐ„ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด๋‚˜ ์ดˆ๋‹น 60ํ”„๋ ˆ์ž„(FPS)์„ ๋ณด์žฅํ•ด์•ผ ํ•˜๋Š” ๊ฒŒ์ž„ ํ™˜๊ฒฝ์—์„œ ํ—ˆ์šฉ๋œ ๋ Œ๋”๋ง ์‹œ๊ฐ„์€ ์•ฝ 16.67ms์— ๋ถˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. - React์˜ ๊ฐ€์ƒ DOM ๋””ํ•‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜(O(n) ๋ณต์žก๋„)์€ ์ด๋Ÿฌํ•œ ๊ณ ๋นˆ๋„ ์—…๋ฐ์ดํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ์—๋Š” ๊ตฌ์กฐ์ ์œผ๋กœ ๋ฌด๊ฒ์Šต๋‹ˆ๋‹ค. - ๋”ฐ๋ผ์„œ ๋ฌด๊ฑฐ์šด ์• ๋‹ˆ๋ฉ”์ด์…˜, ํŒŒํ‹ฐํด ์‹œ์Šคํ…œ, ๋ฌผ๋ฆฌ ์—”์ง„ ๋“ฑ์€ React์˜ ์„ ์–ธ์  ๋ Œ๋”๋ง ์‹œ์Šคํ…œ์„ ํ†ตํ•˜์ง€ ์•Š๊ณ , ์ฐธ์กฐ(`useRef`)๋ฅผ ์ง์ ‘ ์กฐ์ž‘ํ•˜๊ฑฐ๋‚˜ React Native์˜ `setNativeProps`๋ฅผ ํ™œ์šฉํ•ด **๋ช…๋ นํ˜•(Imperative)์œผ๋กœ DOM ๋ฐ WebGL ์ธ์Šคํ„ด์Šค๋ฅผ ์ง์ ‘ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ์žฌ์กฐ์ • ์˜ค๋ฒ„ํ—ค๋“œ๋ฅผ ์™„์ „ํžˆ ์šฐํšŒ**ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) - **๊ณผ๊ฑฐ ๋ฐ์ดํ„ฐ์™€์˜ ์ถฉ๋Œ:** ์ž๋™ํ™” ์—”์ง„์— ์˜ํ•ด ๋งคํ•‘๋œ ์ง€์‹์œผ๋กœ, ์ถ”ํ›„ ์ •๋ฐ€ ๊ฒ€์ฆ ํ•„์š”. - **์ •์ฑ… ๋ณ€ํ™”:** Programming & Language ๋ถ„์•ผ์˜ ์ž๋™ ์ž์‚ฐํ™” ์ˆ˜ํ–‰. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[แ„€แ…กแ„‰แ…กแ†ผ DOM (Virtual DOM)|๊ฐ€์ƒ DOM (Virtual DOM)]], [[React 19 Compiler|React 19 Compiler]], [[แ„‡แ…ฎแ†ฏแ„‘แ…ตแ†ฏแ„‹แ…ญแ„’แ…กแ†ซ แ„…แ…ตแ„…แ…ฆแ†ซแ„ƒแ…ฅแ„…แ…ตแ†ผ แ„‡แ…กแ†ผแ„Œแ…ต|๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง ๋ฐฉ์ง€]], [[แ„†แ…งแ†ผแ„…แ…งแ†ผแ„’แ…งแ†ผ แ„Œแ…ตแ†จแ„Œแ…ฅแ†ธ แ„Œแ…ฉแ„Œแ…กแ†จ (Imperative Manipulation)|๋ช…๋ นํ˜• ์ง์ ‘ ์กฐ์ž‘ (Imperative Manipulation)]] - **Projects/Contexts:** [[แ„€แ…ฉแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„‰แ…ตแ†ฏแ„‰แ…ตแ„€แ…กแ†ซ แ„‰แ…กแ†ผแ„’แ…ฉแ„Œแ…กแ†จแ„‹แ…ญแ†ผ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ทแ„‹แ…ณแ†ฏ แ„‹แ…ฑแ„’แ…กแ†ซ React แ„€แ…ตแ„‡แ…กแ†ซ แ„€แ…ฆแ„‹แ…ตแ†ท แ„‹แ…ฆแ†ซแ„Œแ…ตแ†ซ แ„‹แ…กแ„แ…ตแ„แ…ฆแ†จแ„Žแ…ฅ|๊ณ ์„ฑ๋Šฅ ์‹ค์‹œ๊ฐ„ ์ƒํ˜ธ์ž‘์šฉ ์‹œ์Šคํ…œ์„ ์œ„ํ•œ React ๊ธฐ๋ฐ˜ ๊ฒŒ์ž„ ์—”์ง„ ์•„ํ‚คํ…์ฒ˜]], [[แ„ƒแ…ขแ„€แ…ฒแ„†แ…ฉ แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ แ„…แ…ฆแ†ซแ„ƒแ…ฅแ„…แ…ตแ†ผ แ„†แ…ตแ†พ แ„€แ…กแ„‰แ…กแ†ผแ„’แ…ช แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช|๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ๋ Œ๋”๋ง ๋ฐ ๊ฐ€์ƒํ™” ์ตœ์ ํ™”]] - **Contradictions/Notes:** React 19์˜ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๋„์ž…๋˜๋ฉด์„œ `useMemo`๋‚˜ `useCallback`๊ณผ ๊ฐ™์€ ์ˆ˜๋™ ์ฐธ์กฐ ์•ˆ์ •ํ™” ์ž‘์—…์˜ ๋Œ€๋ถ€๋ถ„์„ ๋นŒ๋“œ ํƒ€์ž„์— ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด ์ค๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋Š” ๊ตฌ์กฐ์ ์œผ๋กœ ์ˆœ์ˆ˜ํ•œ ์ปดํฌ๋„ŒํŠธ์—์„œ๋งŒ ์™„๋ฒฝํžˆ ๋™์ž‘ํ•˜๋ฉฐ, ๊ฑฐ๋Œ€ํ•œ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ, ๋ถˆ์•ˆ์ •ํ•œ Key ๋ฐฐ์—ด, ๊ณผ๋„ํ•œ Context ์‚ฌ์šฉ๊ณผ ๊ฐ™์€ ์ž˜๋ชป๋œ ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ ์ž์ฒด๋ฅผ ๊ณ ์ณ์ฃผ์ง€๋Š” ๋ชปํ•˜๋ฏ€๋กœ ์—ฌ์ „ํžˆ ๊ฐœ๋ฐœ์ž์˜ ๊ตฌ์กฐ ์ตœ์ ํ™” ์—ญ๋Ÿ‰์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. --- _Last updated: 2026-04-15_ - Raw Source: 00_Raw/2026-04-20/React ์žฌ์กฐ์ • (Reconciliation) ์ตœ์ ํ™”.md ---