--- id: P-REINFORCE-AUTO-DBD8A4 category: "10_Wiki/๐Ÿ’ก Topics/Software Engineering" confidence_score: 0.95 tags: [auto-reinforced] last_reinforced: 2026-05-03 github_commit: "[P-Reinforce] Continuous Worker - React Suspense" --- # [[React Suspense|React Suspense]] ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) React Suspense๋Š” ๋น„๋™๊ธฐ ์ž‘์—…(๋ฐ์ดํ„ฐ ํŽ˜์นญ, ์ปดํฌ๋„ŒํŠธ ์ง€์—ฐ ๋กœ๋”ฉ ๋“ฑ)์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๋ฉฐ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋กœ๋”ฉ ์Šคํ”ผ๋„ˆ์™€ ๊ฐ™์€ ๋Œ€์ฒด(Fallback) UI๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์„ ์–ธ์  ์„ค๊ณ„ ํŒจํ„ด์ด๋‹ค [1, 2]. ํŠนํžˆ React Server Components(RSC) ๋ฐ Streaming SSR๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ, ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  HTML ์…ธ(Shell)์„ ์ฆ‰์‹œ ๋ Œ๋”๋งํ•œ ๋’ค ์™„๋ฃŒ๋˜๋Š” ๊ฒฝ๊ณ„๋ณ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋Š” ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค [3, 4]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **์•„์›ƒ ์˜ค๋ธŒ ์˜ค๋”(Out-of-order) ์ŠคํŠธ๋ฆฌ๋ฐ ๋ฐ ์ ์ง„์  ํ•˜์ด๋“œ๋ ˆ์ด์…˜:** Suspense๋Š” Next.js ๋“ฑ์—์„œ RSC์™€ ๊ฒฐํ•ฉํ•  ๋•Œ ํŽ˜์ด์ง€ ๋ Œ๋”๋ง ๋ฐฉ์‹์„ ํ˜์‹ ํ•œ๋‹ค [1, 5]. Suspense ๊ฒฝ๊ณ„ ์œ„์— ์žˆ๋Š” ๋ชจ๋“  ์š”์†Œ๋Š” ์ฆ‰์‹œ ๋ Œ๋”๋ง๋˜์–ด ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก๋˜๋ฉฐ, ๊ฒฝ๊ณ„ ์•„๋ž˜์˜ ์ปดํฌ๋„ŒํŠธ๋“ค์€ ๋ฐ์ดํ„ฐ ๋กœ๋”ฉ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ `Loading...` ๋ฉ”์‹œ์ง€ ๋“ฑ์„ ํ‘œ์‹œํ•œ๋‹ค [1, 3]. ์„œ๋ฒ„๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํ•ด๊ฒฐ(resolve)๋˜๋Š” ๋Œ€๋กœ ํ•ด๋‹น Suspense ๊ฒฝ๊ณ„์˜ ์ฒญํฌ๋ฅผ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๊ณ , ํด๋ผ์ด์–ธํŠธ๋Š” ๋„์ฐฉํ•œ ์ฒญํฌ๋ถ€ํ„ฐ ์ ์ง„์  ํ•˜์ด๋“œ๋ ˆ์ด์…˜(Progressive Hydration)์„ ์‹œ์ž‘ํ•œ๋‹ค [3]. * **์ปดํฌ๋„ŒํŠธ ์ง€์—ฐ ๋กœ๋”ฉ(Lazy Loading) ๊ตฌํ˜„:** React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ดˆ๊ธฐ ๋กœ๋“œ ์‹œ๊ฐ„์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด `React.lazy()`์™€ ํ•จ๊ป˜ ํ™œ์šฉ๋œ๋‹ค [2]. ํ•„์š”ํ•œ ์‹œ์ ์—๋งŒ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ฒญํฌ๋กœ ๋‚˜๋ˆ„์–ด ๋™์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ค๋ฉฐ, ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋™์•ˆ์—๋Š” `Loading...}>`๋ฅผ ํ†ตํ•ด ์—๋Ÿฌ๋‚˜ ๋นˆ ํ™”๋ฉด ๋Œ€์‹  ๋Œ€๊ธฐ UI๋ฅผ ์ œ๊ณตํ•œ๋‹ค [2]. * **๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ํŽ˜์นญ์˜ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ:** React๋Š” `await` ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์–ด๋–ค ๋น„๋™๊ธฐ ์ž‘์—…์ด ๋Œ€๊ธฐ ์ค‘์ธ์ง€ ํŒŒ์•…ํ•œ๋‹ค [1]. ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์˜ ํ˜•์ œ ๋…ธ๋“œ(Sibling nodes)๋“ค์ด ๊ฐ๊ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๊ฒฝ์šฐ, React๋Š” ์ด๋“ค์„ ๋ณ‘๋ ฌ๋กœ ๋กœ๋“œํ•˜์—ฌ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•œ๋‹ค [1]. * **ํด๋ผ์ด์–ธํŠธ ๋ฐ์ดํ„ฐ ํŽ˜์นญ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€์˜ ํ†ตํ•ฉ:** `react-query`์˜ `useSuspenseQuery` ํ›…๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ์—์„œ๋„ ๋น„๋™๊ธฐ ๋ฐ์ดํ„ฐ ์ฟผ๋ฆฌ ์ƒํƒœ๋ฅผ ์„ ์–ธ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค [6]. * **๋‚ด๋ถ€ ๋™์ž‘ ๋ฉ”์ปค๋‹ˆ์ฆ˜:** Progressive Hydration์˜ ๋‚ด๋ถ€ ์ž‘๋™์—์„œ Suspense๋Š” ์ฃผ์„ ๋…ธ๋“œ ๋งˆ์ปค(Comment node markers, ์˜ˆ: ``, ``)๋ฅผ ํ†ตํ•ด HTML ์ฒญํฌ๋ฅผ ์‹๋ณ„ํ•˜๊ณ , ์žฌ์‹œ๋„ ์ฝœ๋ฐฑ(Retry callback) ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ DOM์— ์•ˆ์ „ํ•˜๊ฒŒ ํ†ตํ•ฉ๋œ๋‹ค [7]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & RL Update) * **๋ผ์šฐํŒ… ์—…๋ฐ์ดํŠธ์— ๋”ฐ๋ฅธ UI ๊นœ๋นก์ž„ ํ˜„์ƒ:** ํด๋ผ์ด์–ธํŠธ์—์„œ `react-query` ๋“ฑ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ, URL ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ณ€๊ฒฝ(์˜ˆ: `window.history.pushState`)์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ ํŽ˜์นญ์ด ๋‹ค์‹œ ๋ฐœ์ƒํ•˜๋ฉด, ๊ธฐ์กด UI๊ฐ€ ๊ฐ‘์ž๊ธฐ ์‚ฌ๋ผ์ง€๊ณ  Suspense์˜ Fallback(๋กœ๋”ฉ ํ™”๋ฉด) UI๊ฐ€ ๋‚˜ํƒ€๋‚˜๋Š” ๋งค์šฐ ๋‚˜์œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค [8, 9]. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ƒํƒœ ๋ณ€๊ฒฝ์ด๋‚˜ ๋ผ์šฐํŒ…์„ `startTransition` ํ›…์œผ๋กœ ๊ฐ์‹ธ, ์ƒˆ ๋ฐ์ดํ„ฐ๊ฐ€ ์ค€๋น„๋  ๋•Œ๊นŒ์ง€ ๊ธฐ์กด UI๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค [6]. * **ํŽ˜์นญ ํญํฌ์ˆ˜(Waterfall)๋กœ ์ธํ•œ ๋ณ‘๋ชฉ ํ˜„์ƒ:** ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์™€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํŽ˜์นญํ•  ๋•Œ ๋ถ€๋ชจ-์ž์‹ ๊ฐ„์— ์ข…์†์„ฑ์ด ์žˆ๋‹ค๋ฉด, ๋ถ€๋ชจ ๋ฐ์ดํ„ฐ ํŽ˜์นญ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์ž์‹ ์ปดํฌ๋„ŒํŠธ์˜ ํŽ˜์นญ์€ ์‹œ์ž‘์กฐ์ฐจ ํ•  ์ˆ˜ ์—†๋‹ค [10]. ์ด ํญํฌ์ˆ˜ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ ๋” ๋†’์€ ๊ณณ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ๋“œํ•œ ๋’ค ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค [10]. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) ### Related Concepts #### [๊ด€๊ณ„ ์œ ํ˜• A (์•„ํ‚คํ…์ฒ˜/๊ธฐ๋ฐ˜ ๊ธฐ์ˆ )] - [[React Server Components (RSC)]] - ์—ฐ๊ฒฐ ์ด์œ : Suspense๋Š” RSC ์•„ํ‚คํ…์ฒ˜์—์„œ ๋น„๋™๊ธฐ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ๋ Œ๋”๋ง ์‹œ ์•„์›ƒ ์˜ค๋ธŒ ์˜ค๋”(Out-of-order) ์ŠคํŠธ๋ฆฌ๋ฐ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ ๊ฒฝ๊ณ„๋กœ ์‚ฌ์šฉ๋œ๋‹ค [1, 11]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์„œ๋ฒ„์—์„œ ๋น„๋™๊ธฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋ฉด์„œ๋„ ์ดˆ๊ธฐ ๋ Œ๋”๋ง์ด ๋ธ”๋กœํ‚น๋˜์ง€ ์•Š๊ณ  ํด๋ผ์ด์–ธํŠธ๋กœ ํ™”๋ฉด์„ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜. - [[Streaming SSR]] - ์—ฐ๊ฒฐ ์ด์œ : SSR ํ™˜๊ฒฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋Œ€์‹ , Suspense ๊ฒฝ๊ณ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ HTML ์…ธ(Shell)์„ ์šฐ์„  ์ „์†กํ•˜๊ณ  ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„์€ ์ฒญํฌ ๋‹จ์œ„๋กœ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๊ฒŒ ํ•ด์ค€๋‹ค [3, 4]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: 'Two-trip problem'์„ ์™„ํ™”ํ•˜๊ณ  Time to Interactive (TTI)์™€ First Paint ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์›๋ฆฌ. #### [๊ด€๊ณ„ ์œ ํ˜• B (๊ตฌํ˜„/ํ™œ์šฉ ๋„๊ตฌ)] - [[React.lazy()]] - ์—ฐ๊ฒฐ ์ด์œ : ๋ฆฌ์•กํŠธ ์•ฑ์˜ ์ฝ”๋“œ๋ฅผ ๋ถ„ํ• ํ•˜๊ณ  ์ง€์—ฐ ๋กœ๋“œํ•  ๋•Œ Suspense์™€ ํ•จ๊ป˜ ํ•„์ˆ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” API์ด๋‹ค [2]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด๋“œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ตœ์ ํ™”๋ฅผ ์ด๋ฃจ๋Š” ๊ธฐ๋ฒ•. - [[useSuspenseQuery]] - ์—ฐ๊ฒฐ ์ด์œ : `react-query` ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ Suspense์™€ ํ˜ธํ™˜๋˜๋„๋ก ์„ค๊ณ„๋œ ํ›…์œผ๋กœ, ๋ฐ์ดํ„ฐ ํŽ˜์นญ ์‹œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ ์–ธ์ ์œผ๋กœ Suspend(์ผ์‹œ ์ค‘์ง€)์‹œํ‚จ๋‹ค [6]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ๋น„๋™๊ธฐ ์ƒํƒœ๋ฅผ ์„ ์–ธ์ ์ด๊ณ  ์šฐ์•„ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ์‹ค์ „ ํŒจํ„ด. ### Deeper Research Questions - React์˜ ๋‚ด๋ถ€ ์—”์ง„(Reconciler ๋ฐ Fiber)์€ ๋น„๋™๊ธฐ ์ž‘์—… ๋ฐœ์ƒ ์‹œ Suspense ๊ฒฝ๊ณ„๋กœ ๋ Œ๋”๋ง์„ ์ผ์‹œ ์ค‘์ง€ํ•˜๊ณ  ์–ด๋–ป๊ฒŒ ์žฌ๊ฐœํ•˜๋Š”๊ฐ€? - Progressive Hydration ์ƒํ™ฉ์—์„œ React๋Š” ``์™€ ๊ฐ™์€ ์ฃผ์„ ๋…ธ๋“œ ๋งˆ์ปค๋ฅผ ํ™œ์šฉํ•ด ์–ด๋–ป๊ฒŒ ์„œ๋ฒ„ ์ฒญํฌ๋ฅผ ๊ธฐ์กด DOM ํŠธ๋ฆฌ์— ๋ณ‘ํ•ฉํ•˜๋Š”๊ฐ€? - ์ค‘์ฒฉ๋œ Suspense ์ปดํฌ๋„ŒํŠธ ํ™˜๊ฒฝ์—์„œ `startTransition` API๋Š” UI Fallback ํ‘œ์‹œ๋ฅผ ์–ด๋–ป๊ฒŒ ์–ต์ œํ•˜๊ณ  ์ด์ „ ์ƒํƒœ๋ฅผ ํ™”๋ฉด์— ์œ ์ง€ํ•˜๋Š”๊ฐ€? - ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์š”์ฒญํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” 'Data Fetching Waterfall'์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜ ๋ ˆ๋ฒจ์˜ ํ•ด๊ฒฐ์ฑ…์€ ๋ฌด์—‡์ธ๊ฐ€? - RSC ํ™˜๊ฒฝ์—์„œ Suspense๋ฅผ ๋‚จ์šฉํ•  ๊ฒฝ์šฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒˆ๋“ค๋ง ๋ฐ ์ฒญํฌ ์ „์†ก ๊ณผ์ •์— ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๋‚˜ ๋ถ€์ž‘์šฉ์€ ์—†๋Š”๊ฐ€? ### Practical Application Contexts - **Implementation:** `React.lazy()`๋ฅผ ์‚ฌ์šฉํ•ด ๋ฌด๊ฑฐ์šด UI ์ปดํฌ๋„ŒํŠธ๋‚˜ ๋ผ์šฐํŠธ๋ฅผ ๋ถ„ํ• ํ•  ๋•Œ ``๋กœ ๊ฐ์‹ธ๊ณ , ๋กœ๋”ฉ ์Šคํ”ผ๋„ˆ๋‚˜ ์Šค์ผˆ๋ ˆํ†ค UI๋ฅผ `fallback`์œผ๋กœ ์ „๋‹ฌํ•˜์—ฌ ์‚ฌ์šฉ์„ฑ์„ ๋†’์ธ๋‹ค [2]. - **System Design:** ๋Œ€์‹œ๋ณด๋“œ๋‚˜ ์ด์ปค๋จธ์Šค ์ƒ์„ธ ํŽ˜์ด์ง€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๋ฐฑ์—”๋“œ API ํ˜ธ์ถœ์ด ํ•„์š”ํ•œ ํ™”๋ฉด์„ ์„ค๊ณ„ํ•  ๋•Œ, ์ „์ฒด ํŽ˜์ด์ง€ ๋กœ๋”ฉ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ๊ฐ ์ปดํฌ๋„ŒํŠธ ๋ธ”๋ก์„ Suspense๋กœ ๊ฐ์‹ธ ๋ณ‘๋ ฌ ๋ฐ ์ ์ง„์  ๋ Œ๋”๋ง ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค [1, 4]. - **Operation / Maintenance:** `react-query`์˜ `useSuspenseQuery` ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํŽ˜์นญ ๋กœ์ง์˜ ๋กœ๋”ฉ ์ƒํƒœ(isLoading ๋“ฑ)๋ฅผ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์˜ if๋ฌธ์—์„œ ์ œ๊ฑฐํ•˜๊ณ , ๋ถ€๋ชจ ๋ ˆ๋ฒจ๋กœ ์œ„์ž„ํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ์œ ์ง€๋ณด์ˆ˜ํ•œ๋‹ค [6]. - **Learning Path:** ๋ฆฌ์•กํŠธ์˜ ๊ธฐ๋ณธ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฐ ํ›… ๊ทœ์น™ -> `React.lazy`๋ฅผ ์ด์šฉํ•œ ์ฝ”๋“œ ๋ถ„ํ•  -> `Suspense`์˜ ์„ ์–ธ์  ๋กœ๋”ฉ ์ƒํƒœ ๊ด€๋ฆฌ -> React 18์˜ ๋™์‹œ์„ฑ ๋ชจ๋“œ(`startTransition`) -> Next.js์˜ RSC์™€ Streaming SSR ์ˆœ์„œ๋กœ ํ•™์Šต์„ ํ™•์žฅํ•œ๋‹ค. - **My Project Relevance:** ๋ฌด๊ฑฐ์šด ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ๋Šฆ๊ฒŒ ์‘๋‹ตํ•˜๋Š” API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ํŽ˜์ด์ง€ ์˜์—ญ์— Suspense๋ฅผ ๋„์ž…ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋นˆ ํฐ ํ™”๋ฉด(Blank Screen)์„ ๋ณด๋Š” ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๊ณ , ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„ ์ง€ํ‘œ(First Paint)๋ฅผ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ### Adjacent Topics - [[Progressive Hydration (์ ์ง„์  ํ•˜์ด๋“œ๋ ˆ์ด์…˜)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ์ „์ฒด ํŽ˜์ด์ง€๊ฐ€ ํ•œ ๋ฒˆ์— ์ƒํ˜ธ์ž‘์šฉ ๊ฐ€๋Šฅํ•ด์ง€๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ , ๋„์ฐฉํ•œ HTML ์ฒญํฌ๋ถ€ํ„ฐ ์ ์ง„์ ์œผ๋กœ ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๊ฒฐํ•ฉํ•ด ๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹๊ณผ ๊ทธ ์„ฑ๋Šฅ์  ์ด์ ์„ ํƒ๊ตฌ. - [[React Fiber & Concurrent Mode (๋™์‹œ์„ฑ ๋ชจ๋“œ)]] - ํ™•์žฅ ๋ฐฉํ–ฅ: Suspense๊ฐ€ ๋‹จ์ˆœํžˆ ๋กœ๋”ฉ UI๋ฅผ ๋„์šฐ๋Š” ๊ฒƒ์„ ๋„˜์–ด, React๊ฐ€ ๋ Œ๋”๋ง์˜ ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•˜๊ณ  ์ธํ„ฐ๋ŸฝํŠธ ๊ฐ€๋Šฅํ•œ ๋ Œ๋”๋ง์„ ์ˆ˜ํ–‰ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์—”์ง„ ๋ ˆ๋ฒจ์˜ ์›๋ฆฌ ๋ถ„์„. --- *Last updated: 2026-05-03* --- *Last updated: 2026-05-03* - Raw Source: 00_Raw/2026-05-03/React Suspense.md ---