# [[React ๋™์‹œ์„ฑ ํ›… ([[useTransition]], [[useDeferredValue]])]] ## ๐Ÿ“Œ[[ brief]] Summary React์˜ ๋™์‹œ์„ฑ ํ›…(Concurrent Hooks)์ธ `useTransition`๊ณผ `useDeferredValue`๋Š” ๊ธด๊ธ‰ํ•œ ์—…๋ฐ์ดํŠธ์™€ ๋น„๊ธด๊ธ‰ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ UI์˜ ์‘๋‹ต์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค [1]. ์ด ํ›…๋“ค์€ ์—ฐ์‚ฐ ์†๋„ ์ž์ฒด๋ฅผ ๋†’์ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์ด ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•จ์œผ๋กœ์จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ฒด๊ฐ ์†๋„๋ฅผ ๋†’์—ฌ์ค๋‹ˆ๋‹ค [2]. ๊ฒฐ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉ์ž ํ”ผ๋“œ๋ฐฑ์„ ์ฆ‰๊ฐ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ํ•˜์—ฌ INP(Interaction to Next Paint)์™€ ๊ฐ™์€ ์„ฑ๋Šฅ ์ง€ํ‘œ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค [3]. ## ๐Ÿ“– Core Content * **๋™์‹œ์„ฑ ๋ Œ๋”๋ง์˜ ์›๋ฆฌ ๋ฐ ํšจ๊ณผ:** React์˜ ๋™์‹œ์„ฑ ๊ธฐ๋Šฅ์€ ํƒ€์ดํ•‘์ด๋‚˜ ํด๋ฆญ ๊ฐ™์€ '๊ธด๊ธ‰ํ•œ ์ƒํ˜ธ์ž‘์šฉ'๊ณผ ๋Œ€๊ทœ๋ชจ ๋ฆฌ์ŠคํŠธ ํ•„ํ„ฐ๋ง์ด๋‚˜ ์ฐจํŠธ ์žฌ๊ณ„์‚ฐ ๊ฐ™์€ '๋น„๊ธด๊ธ‰ ์—…๋ฐ์ดํŠธ'๋ฅผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค [1]. ์ด ๊ธฐ๋Šฅ์€ React์˜ ์šฐ์„ ์ˆœ์œ„ ์‹œ์Šคํ…œ์ธ 'Lane ๋ชจ๋ธ'์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ํŠน์ • ์—…๋ฐ์ดํŠธ๋ฅผ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋กœ ํ‘œ์‹œํ•˜์—ฌ UI์˜ ์‘๋‹ต์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค [4]. ์ด ํ›…๋“ค์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ธด๊ธ‰ํ•œ ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ์— ์ฆ‰์‹œ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, INP ์ ์ˆ˜๋ฅผ ๋‚ฎ์ถ”๋Š” ๋ฐ ์ง์ ‘์ ์œผ๋กœ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค [3]. * **useTransition (๋น„์ฐจ๋‹จ ์ƒํƒœ ์—…๋ฐ์ดํŠธ):** `useTransition`์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ƒํƒœ ์—…๋ฐ์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์„ ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [3]. ์ƒํƒœ ๋ณ€๊ฒฝ ํ•จ์ˆ˜(`set[[State]]` ๋“ฑ)๋ฅผ `[[startTransition]]`์œผ๋กœ ๊ฐ์‹ธ๋ฉด, ํ•ด๋‹น ์—…๋ฐ์ดํŠธ๋ฅผ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ ์—ฌ์œ ๋กœ์›Œ์งˆ ๋•Œ๊นŒ์ง€ ์—ฐ์‚ฐ์„ ์ง€์—ฐ์‹œํ‚ต๋‹ˆ๋‹ค [1, 3]. * ์ฃผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ํƒ€์ดํ•‘ํ•  ๋•Œ๋งˆ๋‹ค ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ํŒจํ„ด์ด๋‚˜, ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ์˜ ํƒญ ์ „ํ™˜ ๋“ฑ์— ๋งค์šฐ ํšจ๊ณผ์ ์ž…๋‹ˆ๋‹ค [1]. * `isPending`์ด๋ผ๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ํ•จ๊ป˜ ์ œ๊ณตํ•˜์—ฌ, ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ฆ‰๊ฐ์ ์ธ ์‹œ๊ฐ์  ํ”ผ๋“œ๋ฐฑ(์˜ˆ: ๋กœ๋”ฉ ์ƒํƒœ)์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5]. * **useDeferredValue (๋ฌด๊ฑฐ์šด ๋ Œ๋”๋ง ์ง€์—ฐ):** `useDeferredValue`๋Š” ์™ธ๋ถ€ ์Šคํ† ์–ด๋‚˜ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ props๋กœ ์ „๋‹ฌ๋ฐ›๋Š” ๋“ฑ ์ƒํƒœ ์—…๋ฐ์ดํŠธ ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ œ์–ดํ•  ์ˆ˜ ์—†์„ ๋•Œ ์ƒํƒœ ๊ฐ’ ์ž์ฒด๋ฅผ ๊ฐ์‹ธ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [3, 5]. * ๋ฌด๊ฑฐ์šด ๋ Œ๋”๋ง์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋™์•ˆ UI๊ฐ€ ๋ฉˆ์ถ”๋Š”(freezing) ํ˜„์ƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด, React๋Š” ์ƒˆ๋กœ์šด ๊ฒฐ๊ณผ๊ฐ€ ์ค€๋น„๋  ๋•Œ๊นŒ์ง€ ํ™”๋ฉด์— ์ด์ „ ๊ฒฐ๊ณผ๋ฅผ ๊ณ„์† ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค [3]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[React Fiber Architecture]], [[Lane Model]], INP (Interaction to Next Paint) - **Projects/Contexts:** ๊ฒ€์ƒ‰์–ด ์ž…๋ ฅ ํ•„ํ„ฐ๋ง ([[Search]]-as-you-type), ๋ฐ์ดํ„ฐ ์ง‘์•ฝ์  ๋Œ€์‹œ๋ณด๋“œ์˜ ํƒญ ์ „ํ™˜ - **Contradictions/Notes:** ๋™์‹œ์„ฑ ํ›…(`useTransition`)๊ณผ ๋””๋ฐ”์šด์‹ฑ(Debouncing)์€ ๋ถˆํ•„์š”ํ•œ ์ž‘์—…์„ ์ค„์—ฌ์ค€๋‹ค๋Š” ๊ณตํ†ต์ ์ด ์žˆ์ง€๋งŒ ๋ชฉ์ ์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ ์ˆ˜์ค€์—์„œ UI ์—…๋ฐ์ดํŠธ๋ฅผ ์ง€์—ฐ์‹œํ‚ค๋Š” ๋ฐ๋Š” React ๋„ค์ดํ‹ฐ๋ธŒ ๋ฐฉ์‹์ธ `useTransition`์ด ๋” ์ ํ•ฉํ•œ ๋ฐ˜๋ฉด, ์žฆ์€ API ํ˜ธ์ถœ ๋นˆ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ๋ฐ๋Š” ์—ฌ์ „ํžˆ ๋””๋ฐ”์šด์‹ฑ ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ตœ์„ ์ž…๋‹ˆ๋‹ค [6]. --- *Last updated: 2026-04-25*