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