# [[Lanes Model|Lanes Model]] ## ๐Ÿ“Œ Brief Summary Lanes Model์€ React์˜ Fiber ์•„ํ‚คํ…์ฒ˜์—์„œ ๋™์‹œ์„ฑ(Concurrent) ์ž‘์—…๊ณผ ๋ Œ๋”๋ง์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋„์ž…๋œ ์ •๊ตํ•œ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค [1]. 32๋น„ํŠธ ์ •์ˆ˜ ํ˜•ํƒœ์˜ ๋น„ํŠธ๋งˆ์Šคํฌ(bitmask)๋ฅผ ํ™œ์šฉํ•˜์—ฌ UI ์—…๋ฐ์ดํŠธ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ์šฐ์„ ์ˆœ์œ„ ๋ ˆ๋ฒจ(Lane)๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค [2]. ์ด๋ฅผ ํ†ตํ•ด ์ฆ‰๊ฐ์ ์ธ ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ๊ณผ ๊ฐ™์€ ๊ธด๊ธ‰ํ•œ ์—…๋ฐ์ดํŠธ๋ฅผ ์šฐ์„ ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ ์ค‘์—๋„ UI์˜ ๋ฐ˜์‘์„ฑ์„ ์œ ์ง€ํ•˜๋„๋ก ๋•์Šต๋‹ˆ๋‹ค [3, 4]. ## ๐Ÿ“– Core Content * **์ž‘๋™ ์›๋ฆฌ ๋ฐ ๋น„ํŠธ๋งˆ์Šคํฌ ์‹œ์Šคํ…œ:** React์˜ Lanes Model์€ ๊ฐ 'Lane'์ด ์ž‘์—…์˜ ์šฐ์„ ์ˆœ์œ„ ๋˜๋Š” ๋ฒ”์ฃผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” 32๋น„ํŠธ ์ •์ˆ˜ ๋น„ํŠธ๋งˆ์Šคํฌ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [2]. ๋น„ํŠธ ์—ฐ์‚ฐ(`lanes & otherLanes`)์„ ํ™œ์šฉํ•˜์—ฌ ์ž‘์—… ๊ฐ„์˜ ์šฐ์„ ์ˆœ์œ„ ์ค‘์ฒฉ ์—ฌ๋ถ€๋ฅผ ๋งค์šฐ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์œผ๋กœ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค [5]. ์ƒํƒœ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด React๋Š” ํ•ด๋‹น ์ž‘์—…์˜ ์ค‘์š”๋„์— ๋”ฐ๋ผ Lane์„ ํ• ๋‹นํ•˜๋ฉฐ, ๋ Œ๋”๋ง ๋‹จ๊ณ„(Render phase)์—์„œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ Lane๋ถ€ํ„ฐ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค [5]. * **์šฐ์„ ์ˆœ์œ„ ๋ ˆ๋ฒจ (Priority Lanes):** ์ž‘์—…์€ ์ค‘์š”๋„์— ๋”ฐ๋ผ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฃผ์š” Lane์œผ๋กœ ๋ถ„๋ฅ˜๋ฉ๋‹ˆ๋‹ค [3, 6]. * **Sync Lane:** ํƒ€์ดํ•‘์ด๋‚˜ ํด๋ฆญ๊ณผ ๊ฐ™์€ ์ด์‚ฐ์ ์ธ ์‚ฌ์šฉ์ž ์ž…๋ ฅ์ž…๋‹ˆ๋‹ค. ํ™”๋ฉด์ด ๋ฉˆ์ถ”๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ฆ‰์‹œ(๋™๊ธฐ์ ์œผ๋กœ) ์ฒ˜๋ฆฌ๋˜๋ฉฐ ๋‹ค๋ฅธ ์ž‘์—…์— ์˜ํ•ด ์ฐจ๋‹จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค [3, 6, 7]. * **InputContinuous Lane:** ์Šคํฌ๋กค์ด๋‚˜ ๋งˆ์šฐ์Šค ํ˜ธ๋ฒ„์ฒ˜๋Ÿผ ์—ฐ์†์ ์ธ ์ž…๋ ฅ์ž…๋‹ˆ๋‹ค. ์œ ๋™์ ์ธ ๋ชจ์…˜์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ–์Šต๋‹ˆ๋‹ค [3, 6, 7]. * **Default Lane:** ๋ฐ์ดํ„ฐ ํŽ˜์นญ ๊ฒฐ๊ณผ ์ฒ˜๋ฆฌ ๋“ฑ ๋Œ€๋ถ€๋ถ„์˜ ์ผ๋ฐ˜์ ์ธ ์ƒํƒœ ์—…๋ฐ์ดํŠธ์— ๋ถ€์—ฌ๋˜๋Š” ๊ธฐ๋ณธ ์šฐ์„ ์ˆœ์œ„์ž…๋‹ˆ๋‹ค [3, 6, 7]. * **Idle Lane:** ํ™”๋ฉด ๋ฐ–์˜ ๋ Œ๋”๋ง๊ณผ ๊ฐ™์ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์œ ํœด(Idle) ์ƒํƒœ์ผ ๋•Œ๋งŒ ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์ฒ˜๋ฆฌ๋˜๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค [3, 6, 7]. * **Lanes Model์˜ ํ•ต์‹ฌ ์ตœ์ ํ™” ๊ธฐ๋Šฅ:** * **์šฐ์„ ์ˆœ์œ„ ์„ ์  ๋ฐ ์ค‘๋‹จ:** ๋ Œ๋”๋ง ์ค‘ ๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„์˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋„์ฐฉํ•˜๋ฉด, ์ง„ํ–‰ ์ค‘์ด๋˜ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„์˜ ์ž‘์—…(WIP, Work-In-Progress)์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๊ณ  ๋†’์€ ์šฐ์„ ์ˆœ์œ„์˜ ์ž‘์—…์„ ๋จผ์ € ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5, 8]. * **๊ธฐ์•„ ํ˜„์ƒ ๋ฐฉ์ง€ (Starvation Prevention):** ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„์˜ ์ž‘์—…์ด ์˜ค๋žซ๋™์•ˆ ๋Œ€๊ธฐ ์ƒํƒœ์— ๋จธ๋ฌผ๋Ÿฌ ์ฒ˜๋ฆฌ๋˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์„ ๋ง‰๊ธฐ ์œ„ํ•ด, ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„ Lane์œผ๋กœ ์Šน๊ฒฉ(promote)์‹œ์ผœ ์‹คํ–‰์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค [5]. * **์ž‘์—… ์–ฝํž˜ (Ent[[ANGLE|ANGLE]]ment):** ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„์˜ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋†’์€ ์šฐ์„ ์ˆœ์œ„ ์—…๋ฐ์ดํŠธ์˜ ๊ฒฐ๊ณผ์— ์˜์กดํ•ด์•ผ ํ•  ๊ฒฝ์šฐ, ๋‘ Lane์„ ์„œ๋กœ ์–ฝํžˆ๊ฒŒ ๋งŒ๋“ค์–ด ํ•จ๊ป˜ ๋ Œ๋”๋ง๋˜๋„๋ก ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค [5]. * **๋™์‹œ์„ฑ ๊ธฐ๋Šฅ(Concurrent Features)์˜ ๊ธฐ๋ฐ˜:** Lanes Model์€ React์˜ `[[useTransition|useTransition]]` ๋ฐ `[[useDeferredValue|useDeferredValue]]`์™€ ๊ฐ™์€ ๋™์‹œ์„ฑ ํ›…(Hooks)์„ ๊ตฌ๋™ํ•˜๋Š” ํ•ต์‹ฌ ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค [4]. ์ด ๋ชจ๋ธ ๋•๋ถ„์— ๊ธด๊ธ‰ํ•˜์ง€ ์•Š์€ ๋ Œ๋”๋ง ์—…๋ฐ์ดํŠธ๋ฅผ ๋‚ฎ์€ ์šฐ์„ ์ˆœ์œ„๋กœ ๋ฏธ๋ค„๋‘์–ด, ๋ฌด๊ฑฐ์šด ์—ฐ์‚ฐ์ด ์ง„ํ–‰๋˜๋Š” ๋™์•ˆ์—๋„ UI๊ฐ€ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋ฐ˜์‘์„ฑ์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[React Fiber Architecture|React Fiber Architecture]], Concurrent Rendering, React Scheduler, [[Virtual DOM|Virtual DOM]] - **Projects/Contexts:** React์˜ ๋ Œ๋”๋ง ์ตœ์ ํ™” ๋ฐ ์šฐ์„ ์ˆœ์œ„ ๊ธฐ๋ฐ˜ ์Šค์ผ€์ค„๋ง ๋งฅ๋ฝ - **Contradictions/Notes:** ์†Œ์Šค ๊ฐ„์˜ ๋ชจ์ˆœ์ ์€ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ œ๊ณต๋œ ์†Œ์Šค๋“ค์€ ๊ณตํ†ต์ ์œผ๋กœ Lanes Model์ด React์˜ ์šฐ์„ ์ˆœ์œ„ ๊ด€๋ฆฌ์™€ ๋™์‹œ์„ฑ ๋ Œ๋”๋ง์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์ค‘์ถ”์ ์ธ ์•„ํ‚คํ…์ฒ˜์ž„์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค. --- *Last updated: 2026-04-25*