# [[React Fiber|React Fiber]] ## ๐Ÿ“Œ Brief Summary React Fiber๋Š” React 16์—์„œ ๋„์ž…๋œ ์ƒˆ๋กœ์šด ์žฌ์กฐ์ •([[Reconciliation|Reconciliation]]) ์—”์ง„์ด์ž ์•„ํ‚คํ…์ฒ˜๋กœ, ๋™์‹œ์„ฑ ๋ Œ๋”๋ง([[Concurrent Rendering|Concurrent Rendering]])์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค [1, 2]. ๊ธฐ์กด์˜ ๋™๊ธฐ์ ์ด๊ณ  ์ค‘๋‹จ ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ Œ๋”๋ง ๋ฐฉ์‹์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ๋ Œ๋”๋ง ์ž‘์—…์„ '์ž‘์€ ์ž‘์—… ๋‹จ์œ„(Fiber node)'๋กœ ๋ถ„ํ• ํ•˜์—ฌ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค [1, 3, 4]. ์ด๋ฅผ ํ†ตํ•ด ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ์•Š๊ณ  ์ž‘์—…์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๋ฉฐ ๋ Œ๋”๋ง์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๊ฑฐ๋‚˜ ์žฌ๊ฐœํ•  ์ˆ˜ ์žˆ์–ด, ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์— ๋น ๋ฅด๊ณ  ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š” UI๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [3, 5, 6]. ## ๐Ÿ“– Core Content * **ํŒŒ์ด๋ฒ„ ๋…ธ๋“œ(Fiber Node)์™€ ์ž‘์—… ๋ฃจํ”„(Work Loop):** React๋Š” ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์˜ ๊ฐ ์š”์†Œ๋ฅผ ํŒŒ์ด๋ฒ„ ๋…ธ๋“œ๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ, ์ด๋Š” ๊ณง ์ˆ˜ํ–‰ํ•ด์•ผ ํ•  ๊ฐœ๋ณ„ '์ž‘์—… ๋‹จ์œ„(Unit of Work)'๊ฐ€ ๋ฉ๋‹ˆ๋‹ค [4, 7]. ํŒŒ์ด๋ฒ„ ์žฌ์กฐ์ •์ž๋Š” ์ด ์ž‘์—… ๋‹จ์œ„๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—… ๋ฃจํ”„๋ฅผ ํ†ตํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค [4, 8]. ํ•˜๋‚˜์˜ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•œ ํ›„ ๋‚จ์€ ํ”„๋ ˆ์ž„ ์‹œ๊ฐ„์„ ํ™•์ธํ•˜์—ฌ, ์‹œ๊ฐ„์ด ๋ถ€์กฑํ•˜๊ฑฐ๋‚˜ ๊ณ ์šฐ์„ ์ˆœ์œ„ ์ž‘์—…(์˜ˆ: ์‚ฌ์šฉ์ž ์ž…๋ ฅ)์ด ๋Œ€๊ธฐ ์ค‘์ผ ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €์— ์ œ์–ด๊ถŒ์„ ์–‘๋ณด(yield)ํ•˜์—ฌ UI๊ฐ€ ๋ฉˆ์ถ”๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [5, 9]. * **๋‘ ๊ฐ€์ง€ ๋ Œ๋”๋ง ๋‹จ๊ณ„(Reconciliation Phases):** React์˜ ์žฌ์กฐ์ • ๊ณผ์ •์€ ์ž‘์—…์˜ ์ค‘๋‹จ ๋ฐ ์šฐ์„ ์ˆœ์œ„ ์ง€์ •์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋‘ ๊ฐ€์ง€ ํŽ˜์ด์ฆˆ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค [10]. * **๋ Œ๋” ํŽ˜์ด์ฆˆ(Render Phase):** ์ค‘๋‹จ, ์ทจ์†Œ, ์žฌ๊ฐœ๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋น„๋™๊ธฐ์  ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค [10, 11]. ๊ธฐ์กด ์ƒํƒœ์™€ ์ƒˆ๋กœ์šด ์ƒํƒœ์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ๋ถ€์ˆ˜ ํšจ๊ณผ(Effect)๋ฅผ ๊ฐ€์ง„ ํŒŒ์ด๋ฒ„ ๋…ธ๋“œ๋“ค์˜ ๋ชฉ๋ก์„ ๊ตฌ์„ฑํ•˜์ง€๋งŒ, ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์‹ค์ œ DOM์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค [10, 11]. * **์ปค๋ฐ‹ ํŽ˜์ด์ฆˆ(Commit Phase):** ๋™๊ธฐ์ ์ด๊ณ  ์ค‘๋‹จํ•  ์ˆ˜ ์—†๋Š” ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค [11, 12]. ๋ Œ๋” ํŽ˜์ด์ฆˆ์—์„œ ๋„์ถœ๋œ ๋ชจ๋“  DOM ์กฐ์ž‘(์‚ฝ์ž…, ์‚ญ์ œ, ์—…๋ฐ์ดํŠธ ๋“ฑ)์„ ์‹ค์ œ DOM์— ํ•œ ๋ฒˆ์— ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค [12, 13]. * **์‹œ๊ฐ„ ๋ถ„ํ• ([[Time-Slicing|Time-Slicing]])๊ณผ ๋ ˆ์ธ(Lane) ๊ธฐ๋ฐ˜ ์šฐ์„ ์ˆœ์œ„ ๋ชจ๋ธ:** * ํŒŒ์ด๋ฒ„๋Š” ์‹œ๊ฐ„ ๋ถ„ํ•  ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜์—ฌ ๋ฌด๊ฑฐ์šด ๋ Œ๋”๋ง ์ž‘์—…์„ ์ž‘์€ ๋ฉ์–ด๋ฆฌ๋กœ ์ชผ๊ฐœ๊ณ , ๋ Œ๋”๋ง ์ค‘๊ฐ„์— ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค [3, 6, 9]. * ์ž‘์—…์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ 32๋น„ํŠธ ์ •์ˆ˜๋ฅผ ํ™œ์šฉํ•œ '๋ ˆ์ธ(Lane)' ๋ชจ๋ธ๋กœ ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค [14, 15]. ํƒ€์ดํ•‘์ด๋‚˜ ํด๋ฆญ ๊ฐ™์€ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์€ ์ฆ‰์‹œ(Sync) ์ฒ˜๋ฆฌ๋˜๋Š” ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ–๊ณ , ๋ฐ์ดํ„ฐ ํŽ˜์นญ ๊ฒฐ๊ณผ๋‚˜ ํ™”๋ฉด ๋ฐ–์˜ ๋ Œ๋”๋ง์€ ์ƒ๋Œ€์ ์œผ๋กœ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„(Default, Idle)๋ฅผ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค [14, 16]. * ์ด๋Ÿฌํ•œ ์šฐ์„ ์ˆœ์œ„ ๋ถ„๋ฐฐ๋ฅผ ํ†ตํ•ด `[[useTransition|useTransition]]`์ด๋‚˜ `[[useDeferredValue|useDeferredValue]]` ๊ฐ™์€ ๋™์‹œ์„ฑ ๋ Œ๋”๋ง ํ›…์ด UI์˜ ๋ฐ˜์‘์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์„ ์ง€์—ฐ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค [17]. * **WIP(Work-In-Progress) ํŠธ๋ฆฌ ๊ด€๋ฆฌ:** React๋Š” ํ˜„์žฌ ์ง„ํ–‰ ์ค‘์ธ ๋ Œ๋”๋ง ์ž‘์—…(WIP)์„ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ผ์‹œ ์ค‘์ง€(Pause), ์žฌ๊ฐœ(Resume), ํ˜น์€ ํ๊ธฐ(Discard)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [18]. ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฐ”์˜๊ฑฐ๋‚˜ ๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„์˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋“ค์–ด์˜ค๋ฉด ํ˜„์žฌ ์ž‘์—…์„ ๋ฉˆ์ถ”์–ด ๋‘์—ˆ๋‹ค๊ฐ€, ์œ ํœด ์‹œ๊ฐ„์ด ์ƒ๊ธฐ๋ฉด ๋‹ค์‹œ ์žฌ๊ฐœํ•˜์—ฌ ์ปดํ“จํŒ… ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [18]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Concurrent Rendering|Concurrent Rendering]], Reconciliation, Virtual DOM, [[Critical Rendering Path|Critical Rendering Path]] - **Projects/Contexts:** [[แ„‡แ…ณแ„…แ…กแ„‹แ…ฎแ„Œแ…ฅ แ„…แ…ฆแ†ซแ„ƒแ…ฅแ„…แ…ตแ†ผ แ„€แ…ชแ„Œแ…ฅแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช แ„†แ…ตแ†พ UI แ„‡แ…กแ†ซแ„‹แ…ณแ†ผแ„‰แ…ฅแ†ผ แ„€แ…ขแ„‰แ…ฅแ†ซ|๋ธŒ๋ผ์šฐ์ € ๋ Œ๋”๋ง ๊ณผ์ • ์ตœ์ ํ™” ๋ฐ UI ๋ฐ˜์‘์„ฑ ๊ฐœ์„ ]] - **Contradictions/Notes:** React Fiber ์•„ํ‚คํ…์ฒ˜ ์ด์ „์˜ React๋Š” "์Šคํƒ ์žฌ์กฐ์ •์ž(Stack Reconciler)"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ๋ฅผ ๋‹จ์ผ ์žฌ๊ท€ ํ˜ธ์ถœ๋กœ ์ฒ˜๋ฆฌํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํฌ๊ธฐ๊ฐ€ ์ปค์งˆ ๊ฒฝ์šฐ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ์ฐจ๋‹จ([[Blocking|Blocking]])๋˜์–ด ์‚ฌ์šฉ์ž ์ž…๋ ฅ์ด๋‚˜ ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋Š๊ธฐ๋Š” ๊ณ ์งˆ์ ์ธ ๋ฌธ์ œ๊ฐ€ ์กด์žฌํ–ˆ์Šต๋‹ˆ๋‹ค. Fiber๋Š” ์ด๋ฅผ ์ž‘์—… ๋‹จ์œ„ ๋ถ„ํ• ๋กœ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค [1, 3]. --- *Last updated: 2026-04-25*