# [[React 18 Concurrent Features|React 18 Concurrent Features]] ## ๐Ÿ“Œ Brief Summary [[React 18|React 18]]์˜ ๋™์‹œ์„ฑ ๊ธฐ๋Šฅ(Concurrent Features)์€ ๋ Œ๋”๋ง ์ž‘์—…์„ ์ค‘๋‹จ, ์ผ์‹œ ์ค‘์ง€ ๋ฐ ์žฌ๊ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฐ˜์‘์„ฑ์„ ํš๊ธฐ์ ์œผ๋กœ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ํ•ต์‹ฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ๊ธด๊ธ‰ํ•œ ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ(์˜ˆ: ํƒ€์ดํ•‘, ํด๋ฆญ)๊ณผ ๋œ ๊ธด๊ธ‰ํ•œ ์ž‘์—…(์˜ˆ: ๋ฌด๊ฑฐ์šด ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง)์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ์˜ ์ฐจ๋‹จ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งŽ์€ ์ƒํ™ฉ์—์„œ๋„ UI๊ฐ€ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ž‘๋™ํ•˜๊ฒŒ ํ•˜์—ฌ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๊ณ  ํ•ต์‹ฌ ์›น ์ง€ํ‘œ([[Core Web Vitals|Core Web Vitals]])๋ฅผ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค. ## ๐Ÿ“– Core Content * **๋™์‹œ์„ฑ ๋ Œ๋”๋ง์˜ ๊ธฐ๋ฐ˜ ([[Fiber Architecture|Fiber Architecture]] & [[Lane Model|Lane Model]]):** React์˜ ๋™์‹œ์„ฑ ๊ธฐ๋Šฅ์€ Fiber ์•„ํ‚คํ…์ฒ˜์˜ ์ž‘์—… ๋ฃจํ”„(Work loop)์™€ ํƒ€์ž„ ์Šฌ๋ผ์ด์‹ฑ([[Time-Slicing|Time-Slicing]])์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋ Œ๋”๋ง ์ž‘์—…์„ ์ž‘์€ ๋‹จ์œ„๋กœ ์ชผ๊ฐœ์–ด ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๊ธด๊ธ‰ํ•œ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์ž‘์—…์„ ๋ฉˆ์ถ”๊ณ  ๋ธŒ๋ผ์šฐ์ €์— ์ œ์–ด๊ถŒ์„ ์–‘๋ณด(Yield)ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1-3]. ์—…๋ฐ์ดํŠธ์˜ ์ค‘์š”๋„๋Š” ๋น„ํŠธ๋งˆ์Šคํฌ ์‹œ์Šคํ…œ์ธ 'Lane ๋ชจ๋ธ'์„ ํ†ตํ•ด ๋™๊ธฐ์ (Sync), ์‚ฌ์šฉ์ž ์ฐจ๋‹จ(User-[[Blocking|Blocking]]), ๊ธฐ๋ณธ(Normal), ์œ ํœด(Idle) ๋“ฑ์˜ ์šฐ์„ ์ˆœ์œ„ ๋ ˆ๋ฒจ๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค [4-6]. * **`[[useTransition|useTransition]]`๊ณผ `[[startTransition|startTransition]]`:** ๊ธด๊ธ‰ํ•˜์ง€ ์•Š์€ ์ƒํƒœ ์—…๋ฐ์ดํŠธ์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋‚ฎ์ถ”์–ด UI์˜ ๋ฐ˜์‘์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ํƒ€์ดํ•‘๊ณผ ๋™์‹œ์— ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋“ฑ์˜ ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์„ `startTransition`์œผ๋กœ ๊ฐ์‹ธ๋ฉด, React๋Š” ์‚ฌ์šฉ์ž์˜ ๊ธด๊ธ‰ํ•œ ์ƒํ˜ธ์ž‘์šฉ์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•˜๊ณ  ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ์—ฌ์œ ๋กœ์šธ ๋•Œ ํ•ด๋‹น ์—…๋ฐ์ดํŠธ๋ฅผ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค [7-9]. ๋˜ํ•œ `isPending` ํ”Œ๋ž˜๊ทธ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ฌด๊ฑฐ์šด ์ž‘์—…์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ ์‚ฌ์šฉ์ž์—๊ฒŒ ์‹œ๊ฐ์  ํ”ผ๋“œ๋ฐฑ(๋กœ๋”ฉ ์ƒํƒœ ๋“ฑ)์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [10]. * **`[[useDeferredValue|useDeferredValue]]`:** ์ƒํƒœ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ์ฝ”๋“œ(set[[State|State]])๋ฅผ ์ง์ ‘ ์ œ์–ดํ•  ์ˆ˜ ์—†๊ณ  ์™ธ๋ถ€(์˜ˆ: Props)์—์„œ ๊ฐ’์„ ๋ฐ›์•„์˜ฌ ๋•Œ ๋ Œ๋”๋ง์„ ์ง€์—ฐ์‹œํ‚ค๋Š” ํ›…์ž…๋‹ˆ๋‹ค [10]. React๋Š” ์ƒˆ๋กœ์šด ํ•„ํ„ฐ๋ง ๊ฒฐ๊ณผ ๋“ฑ ์—ฐ์‚ฐ์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์ด์ „ ๋ Œ๋”๋ง ๊ฒฐ๊ณผ๋ฅผ ๊ณ„์† ํ™”๋ฉด์— ํ‘œ์‹œํ•˜์—ฌ UI๊ฐ€ ์–ผ์–ด๋ถ™๋Š”(Freezing) ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [11]. * **`[[flushSync|flushSync]]`๋ฅผ ํ†ตํ•œ ๊ฐ•์ œ ๋™๊ธฐํ™”:** ๋™์‹œ์„ฑ ๊ธฐ๋Šฅ์ด ์ ์šฉ๋œ ์ƒํƒœ์—์„œ๋„ DOM ์š”์†Œ์— ์ฆ‰๊ฐ์ ์œผ๋กœ ํฌ์ปค์‹ฑ์„ ํ•˜๊ฑฐ๋‚˜ ๋ ˆ์ด์•„์›ƒ์„ ์ธก์ •ํ•ด์•ผ ํ•˜๋Š” ์˜ˆ์™ธ์ ์ธ ์ƒํ™ฉ์„ ์œ„ํ•ด ์ œ๊ณต๋˜๋Š” API์ž…๋‹ˆ๋‹ค. `flushSync`๋กœ ๊ฐ์‹ผ ์ƒํƒœ ์—…๋ฐ์ดํŠธ๋Š” React๊ฐ€ ์ฆ‰๊ฐ์ ์ด๊ณ  ๋™๊ธฐ์ ์œผ๋กœ ๋ Œ๋”๋งํ•˜๋„๋ก ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค [8, 9]. * **์ž๋™ ์ผ๊ด„ ์ฒ˜๋ฆฌ ([[Automatic Batching|Automatic Batching]]):** React 18์€ Promise, setTimeout, ๋น„๋™๊ธฐ ์ž‘์—… ๋ฐ ๋„ค์ดํ‹ฐ๋ธŒ ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋‚ด์—์„œ ์—ฐ์†์ ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ์—ฌ๋Ÿฌ ์ƒํƒœ ์—…๋ฐ์ดํŠธ๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ๋‹จ์ผ ๋ฆฌ๋ Œ๋”๋ง์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค [12-14]. ์ด๋กœ ์ธํ•ด ๋ถˆํ•„์š”ํ•œ [[Virtual DOM|Virtual DOM]] ๋น„๊ต์™€ ๋ Œ๋”๋ง ํšŸ์ˆ˜๊ฐ€ ๊ธ‰๊ฐํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค [13, 15]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** `[[Fiber Architecture|Fiber Architecture]]`, `Automatic Batching`, `Lane Priority Model`, `[[Virtual DOM|Virtual DOM]]` - **Projects/Contexts:** `[[React Performance Optimization|React Performance Optimization]]`, `[[Interaction to Next Paint (INP)|Interaction to Next Paint (INP]]` - **Contradictions/Notes:** ๋™์‹œ์„ฑ ํ›…(`useTransition`, `useDeferredValue`)์€ ์ฝ”๋“œ์˜ ์‹ค์ œ ์‹คํ–‰ ์†๋„๋ฅผ ๋†’์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋Œ€์‹  ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์ด ์ฆ‰๊ฐ์ ์ธ ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ์„ ๋ฐฉํ•ดํ•˜์ง€ ์•Š๋„๋ก ์ฒ˜๋ฆฌ ์ˆœ์„œ๋ฅผ ๋ฏธ๋ค„, ์•ฑ์ด ์‹œ๊ฐ์ ์œผ๋กœ ๋” "๋น ๋ฅด๊ฒŒ ๋ฐ˜์‘ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ(feel faster)" ๋А๋ผ๊ฒŒ ๋งŒ๋“œ๋Š” ์•„ํ‚คํ…์ฒ˜์  ์ ‘๊ทผ์ž…๋‹ˆ๋‹ค [16]. ๋˜ํ•œ `flushSync`๋Š” ๋‚จ์šฉํ•  ๊ฒฝ์šฐ ๋™์‹œ์„ฑ ๋ฐ ์ผ๊ด„ ์ฒ˜๋ฆฌ๋กœ ์–ป๋Š” ์„ฑ๋Šฅ ์ด์ ์„ ๋ฌดํšจํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ฃผ์˜ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [17]. --- *Last updated: 2026-04-25*