# [[Concurrent Rendering|Concurrent Rendering]] ## ๐Ÿ“Œ Brief Summary Concurrent Rendering(๋™์‹œ์„ฑ ๋ Œ๋”๋ง)์€ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋ฅผ ๋ธ”๋กœํ‚นํ•˜์ง€ ์•Š๊ณ  UI์˜ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์„ ๋ณ‘๋ ฌ๋กœ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” React์˜ ํ•ต์‹ฌ ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค [1]. ๋ Œ๋”๋ง ์ž‘์—…์„ '[[Time Slicing|Time Slicing]](์‹œ๊ฐ„ ๋ถ„ํ• )'์„ ํ†ตํ•ด ์ž‘์€ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ๊ณ  ์ค‘์š”๋„์— ๋”ฐ๋ผ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜์—ฌ, ๊ธด๊ธ‰ํ•œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์— ๋ฐ˜์‘ํ•˜๊ธฐ ์œ„ํ•ด ๋ Œ๋”๋ง์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๊ฑฐ๋‚˜ ์žฌ๊ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 2]. ์ด๋ฅผ ํ†ตํ•ด ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ ์ค‘์—๋„ UI๊ฐ€ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ์ฆ‰๊ฐ์ ์œผ๋กœ ๋ฐ˜์‘ํ•˜๋„๋ก ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฒด๊ฐ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•ฉ๋‹ˆ๋‹ค [3, 4]. ## ๐Ÿ“– Core Content * **Fiber ์•„ํ‚คํ…์ฒ˜์™€ Work Loop** Concurrent Rendering์€ React 16์—์„œ ์ฒ˜์Œ ๋„์ž…๋œ Fiber ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค [5, 6]. ๊ธฐ์กด์˜ ๋‹จ์ผ ์žฌ๊ท€ ํ˜ธ์ถœ ๊ธฐ๋ฐ˜ ๋™๊ธฐ์‹ ๋ Œ๋”๋ง๊ณผ ๋‹ฌ๋ฆฌ, ๋ Œ๋”๋ง ์ž‘์—…์„ 'Fiber ๋…ธ๋“œ'๋ผ๋Š” ์ž‘์€ ์ž‘์—… ๋‹จ์œ„(Unit of Work)๋กœ ๋ถ„ํ• ํ•ฉ๋‹ˆ๋‹ค [2, 7]. React๋Š” Work Loop๋ฅผ ํ†ตํ•ด ์ด ํŠธ๋ฆฌ๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ˆœํšŒํ•˜๋ฉฐ, ๊ฐ ์ž‘์—… ๋‹จ์œ„๊ฐ€ ๋๋‚  ๋•Œ๋งˆ๋‹ค ๋ธŒ๋ผ์šฐ์ €์— ์ œ์–ด๊ถŒ์„ ์–‘๋ณด(yield)ํ•˜์—ฌ ํด๋ฆญ๊ณผ ๊ฐ™์€ ๊ณ ์šฐ์„ ์ˆœ์œ„ ์ƒํ˜ธ์ž‘์šฉ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค [8, 9]. * **์šฐ์„ ์ˆœ์œ„ ๊ธฐ๋ฐ˜ ์Šค์ผ€์ค„๋ง ([[Lane Model|Lane Model]])** ๋™์‹œ์„ฑ ์ž‘์—…์˜ ์šฐ์„ ์ˆœ์œ„๋Š” 'Lane'์ด๋ผ๋Š” ๋น„ํŠธ๋งˆ์Šคํฌ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์ฒด๊ณ„์ ์œผ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค [10, 11]. ํƒ€์ดํ•‘์ด๋‚˜ ํด๋ฆญ์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž๊ฐ€ ์ฆ‰๊ฐ์ ์ธ ๋ฐ˜์‘์„ ๊ธฐ๋Œ€ํ•˜๋Š” ๊ธด๊ธ‰ํ•œ ์—…๋ฐ์ดํŠธ(Sync Lane)๋Š” ์ตœ์šฐ์„ ์œผ๋กœ ์ฆ‰์‹œ ์ฒ˜๋ฆฌ๋˜๋ฉฐ, ์Šคํฌ๋กค(InputContinuous Lane), ๋„คํŠธ์›Œํฌ ์‘๋‹ต(Default Lane), ๋ฐฑ๊ทธ๋ผ์šด๋“œ ๋ Œ๋”๋ง(Idle Lane) ๋“ฑ์€ ๊ฐ๊ฐ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌ๋ฐ›์•„ ์Šค์ผ€์ค„๋ง๋ฉ๋‹ˆ๋‹ค [12-14]. ์ด ๊ณผ์ •์—์„œ ๋ Œ๋”๋ง ๋‹จ๊ณ„(Render phase)๋Š” ์ค‘๋‹จ ๊ฐ€๋Šฅ(Interruptible)ํ•˜๋ฏ€๋กœ, ๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„์˜ ์ž‘์—…์ด ๋„์ฐฉํ•˜๋ฉด ๊ธฐ์กด์˜ ๋ Œ๋”๋ง ์ž‘์—…์„ ์ผ์‹œ ์ค‘์ง€, ํ๊ธฐ ๋˜๋Š” ์žฌ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [15, 16]. * **Concurrent Hooks ํ™œ์šฉ (`[[useTransition|useTransition]]`, `[[useDeferredValue|useDeferredValue]]`)** [[React 18|React 18]] ๋ฐ 19์—์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋™์‹œ์„ฑ ๋ Œ๋”๋ง์„ ์ง์ ‘ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ํ›…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [17, 18]. **`useTransition`**์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ƒํƒœ ์—…๋ฐ์ดํŠธ๋ฅผ ์ง์ ‘ ๊ธด๊ธ‰ํ•˜์ง€ ์•Š์€ ๊ฒƒ(low-priority)์œผ๋กœ ์ง€์ •ํ•˜์—ฌ, ์ˆ˜์ฒœ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง ์—ฐ์‚ฐ์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ๋„๋Š” ์ค‘์—๋„ ์‚ฌ์šฉ์ž์˜ ํƒ€์ดํ•‘ ์ž…๋ ฅ์ด ์ฆ‰์‹œ ๋ฐ˜์˜๋˜๋„๋ก ๋•์Šต๋‹ˆ๋‹ค [17, 19, 20]. **`useDeferredValue`**๋Š” ์™ธ๋ถ€์—์„œ ์ „๋‹ฌ๋ฐ›๋Š” ๊ฐ’ ์ž์ฒด์˜ ๋ Œ๋”๋ง์„ ์ง€์—ฐ์‹œ์ผœ, ์ƒˆ๋กœ์šด ๊ฒฐ๊ณผ๊ฐ€ ์ค€๋น„๋  ๋•Œ๊นŒ์ง€ UI๊ฐ€ ๋™๊ฒฐ๋˜๋Š” ๊ฒƒ์„ ๋ง‰๊ณ  ์ด์ „ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•˜๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค [19, 21]. * **์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ฉ”์ปค๋‹ˆ์ฆ˜ (์ฒด๊ฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ)** Concurrent Rendering์˜ ํ•ต์‹ฌ์€ ์ฝ”๋“œ์˜ ์‹ค์ œ ์—ฐ์‚ฐ ์†๋„๋ฅผ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ๊ฐ€์†ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค [3]. ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์ด ์ฆ‰๊ฐ์ ์ธ ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๋„๋ก ์ฒ˜๋ฆฌ ์ˆœ์„œ๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ ์•ฑ์ด **"๋” ๋น ๋ฅด๊ฒŒ ๋А๊ปด์ง€๊ฒŒ(feel faster)"** ๋งŒ๋“œ๋Š” ๋ฐ ๋ชฉ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค [3]. ์ด๋Ÿฌํ•œ ๋น„์ฐจ๋‹จํ˜•(Non-[[Blocking|Blocking]]) ๋ Œ๋”๋ง ๋ฐฉ์‹์€ ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์ด ๋‹ค์Œ ํ™”๋ฉด ํŽ˜์ธํŠธ๋กœ ์ด์–ด์ง€๋Š” ์†๋„๋ฅผ ์ธก์ •ํ•˜๋Š” ํ•ต์‹ฌ ์›น ์ง€ํ‘œ์ธ **INP(Interaction to Next Paint)**๋ฅผ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐ ์ง์ ‘์ ์œผ๋กœ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค [21, 22]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** `[[Fiber Architecture|Fiber Architecture]]`, `Time Slicing`, `Lane Model`, `[[useTransition|useTransition]]`, `[[useDeferredValue|useDeferredValue]]` - **Projects/Contexts:** `[[React 18 & 19 Performance Optimization|React 18 & 19 Performance Optimization]]` - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด `useTransition` ๋ฐ `useDeferredValue`์™€ ๊ฐ™์€ ๋™์‹œ์„ฑ ํ›…์€ ์ฝ”๋“œ ์ž์ฒด์˜ ์†๋„๋ฅผ ๋†’์—ฌ์ฃผ์ง€๋Š” ์•Š์ง€๋งŒ, ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์ด ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๋„๋ก ์Šค์ผ€์ค„๋งํ•˜์—ฌ ์•ฑ์˜ "์ฒด๊ฐ ์„ฑ๋Šฅ"์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•œ๋‹ค๋Š” ์ ์„ ๋ช…ํ™•ํžˆ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค [3]. --- *Last updated: 2026-04-25*