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