# [[Client Components]] ## ๐Ÿ“Œ Brief ์‹ Summary ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ(Client Components)๋Š” React Server Components (RSC) ํŒจ๋Ÿฌ๋‹ค์ž„์—์„œ ์ƒํƒœ(State), ์ƒ๋ช…์ฃผ๊ธฐ(Lifecycle), ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ ๋ฐ ๋ธŒ๋ผ์šฐ์ € ์ „์šฉ API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ „ํ†ต์ ์ธ React ์ปดํฌ๋„ŒํŠธ๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค [1-3]. ํŒŒ์ผ ์ƒ๋‹จ์— `'use client'` ์ง€์‹œ์–ด(directive)๋ฅผ ์„ ์–ธํ•˜์—ฌ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•˜๋ฉฐ, ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์™€ ๋‹ฌ๋ฆฌ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒˆ๋“ค์— ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ•˜์ด๋“œ๋ ˆ์ด์…˜(Hydration) ๊ณผ์ •์„ ๊ฑฐ์ณ ์ƒํ˜ธ์ž‘์šฉ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค [3-5]. ## ๐Ÿ“– Core Content * **์ •์˜ ๋ฐ ์‹คํ–‰ ํ™˜๊ฒฝ** ๋ช…์นญ๊ณผ ๋‹ฌ๋ฆฌ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ๋งŒ ๋ Œ๋”๋ง๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ดˆ๊ธฐ์—๋Š” ์„œ๋ฒ„์—์„œ ๋ Œ๋”๋ง๋œ ํ›„ ํด๋ผ์ด์–ธํŠธ์—์„œ ๋‹ค์‹œ ๋ Œ๋”๋ง(ํ•˜์ด๋“œ๋ ˆ์ด์…˜)๋˜๋Š” ํŠน์ง•์„ ๊ฐ–์Šต๋‹ˆ๋‹ค [2, 6, 7]. ์ด๋Š” ๊ณผ๊ฑฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ 'ํ‘œ์ค€(standard)' React ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด ๋ช…์นญ์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [2]. * **์„œ๋ฒ„-ํด๋ผ์ด์–ธํŠธ ๊ฒฝ๊ณ„ ๋ฐ ์ง๋ ฌํ™”(Serialization)** ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์—์„œ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌ๋˜๋Š” Prop์€ ๋ฐ˜๋“œ์‹œ ์ง๋ ฌํ™” ๊ฐ€๋Šฅํ•œ(serializable) ๊ฐ’(์˜ˆ: ๋ฌธ์ž์—ด, ์ˆซ์ž, ๊ฐ์ฒด, ๋ฐฐ์—ด, React ์š”์†Œ ๋“ฑ)์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [8]. ํ•จ์ˆ˜๋Š” ์ง๋ ฌํ™”ํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ํ”„๋กœํผํ‹ฐ ํ˜•ํƒœ์˜ ํ•จ์ˆ˜ ์ „๋‹ฌ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค [8]. ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ์˜ ์ฝ”๋“œ๋Š” ๋ฒˆ๋“ค์— ๋‚จ์•„ ์žˆ์œผ๋ฉฐ, ๋ Œ๋”๋ง ์‹œ RSC ํŽ˜์ด๋กœ๋“œ(Payload)์—๋Š” ํ•ด๋‹น ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ๋ชจ๋“ˆ ์ฐธ์กฐ(module ID, `react.client.reference`)์™€ ์ง๋ ฌํ™”๋œ Prop๋งŒ์ด ํฌํ•จ๋˜์–ด ํด๋ผ์ด์–ธํŠธ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค [9, 10]. * **์ปดํฌ๋„ŒํŠธ ์ค‘์ฒฉ ๋ฐ ๊ตฌ์กฐํ™” (Interleaving)** ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋Š” ๋‚ด๋ถ€์—์„œ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ง์ ‘ ์ž„ํฌํŠธ(Import)ํ•˜์—ฌ ๋ Œ๋”๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ž„ํฌํŠธํ•˜๋Š” ๋ชจ๋“  ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋Š” ์•”์‹œ์ ์œผ๋กœ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋กœ ๋ณ€ํ™˜๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค [11, 12]. ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ€๋ชจ ์˜์—ญ์—์„œ ์ƒ์„ฑํ•œ ๋’ค ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ์˜ `children`๊ณผ ๊ฐ™์€ Prop ํ˜•ํƒœ๋กœ ์ „๋‹ฌํ•˜๋Š” ์ค‘์ฒฉ(Interleaving) ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [13-15]. Prop์€ ์ง๋ ฌํ™” ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ๋ฒˆ๋“ค๋Ÿฌ๊ฐ€ ์ด ๊ตฌ์กฐ๋ฅผ ๋ฌธ์ œ์—†์ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [15]. ## โš–๏ธ Trade-offs & Caveats * **์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒˆ๋“ค ํฌ๊ธฐ ์ฆ๊ฐ€:** ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋Š” ๋ฒˆ๋“ค์— ํฌํ•จ๋˜์ง€ ์•Š์•„ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ์ฃผ์ง€๋งŒ, ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ์˜ ์ฝ”๋“œ๋Š” ์—ฌ์ „ํžˆ ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €๋กœ ์ „์†ก๋˜์–ด์•ผ ํ•˜๋ฏ€๋กœ ๋„ˆ๋ฌด ๋งŽ์€ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค [3, 16]. * **ํ•˜์ด๋“œ๋ ˆ์ด์…˜ ๊ฐ„๊ทน(Hydration Gap):** ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋Š” ์„œ๋ฒ„์—์„œ HTML ํ˜•ํƒœ๋กœ ๋จผ์ € ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ผ ์ˆ˜ ์žˆ์œผ๋‚˜, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ์—ฐ๊ฒฐ(ํ•˜์ด๋“œ๋ ˆ์ด์…˜)ํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” ๋ฒ„ํŠผ ๋“ฑ UI๊ฐ€ ์‚ฌ์šฉ์ž์˜ ์กฐ์ž‘์— ๋ฐ˜์‘ํ•˜์ง€ ์•Š๋Š” ๊ฐ„๊ทน์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค [17, 18]. * **๊ด€์Šต์  ์ ์šฉ์˜ ํ•จ์ • (Vibe Coding Trap):** ํŠœํ† ๋ฆฌ์–ผ์„ ๋”ฐ๋ผ ํ•˜๊ฑฐ๋‚˜ ๋‹จ์ˆœํžˆ ์—๋Ÿฌ๋ฅผ ํ”ผํ•  ๋ชฉ์ ์œผ๋กœ ๋ถˆํ•„์š”ํ•œ ๊ณณ๊นŒ์ง€ ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ `'use client'`๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์€ ์•ˆํ‹ฐ ํŒจํ„ด์ž…๋‹ˆ๋‹ค [19, 20]. ์ด๋Š” ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์˜ ์žฅ์ (๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ ๊ฐ์†Œ)์„ ๋ฌดํšจํ™”ํ•˜๊ณ  ๋ถˆํ•„์š”ํ•œ ์•„ํ‚คํ…์ฒ˜์  ๋ณต์žก์„ฑ๋งŒ ๊ฐ€์ค‘์‹œํ‚ค๋ฏ€๋กœ, ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์ด๋‚˜ ์ƒํƒœ ๊ด€๋ฆฌ ๋“ฑ ํด๋ผ์ด์–ธํŠธ ๊ธฐ๋Šฅ์ด ๋ช…ํ™•ํžˆ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋กœ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [20]. ## ๐Ÿ”— Knowledge Connections ### Related Concepts #### [๊ด€๊ณ„ ์œ ํ˜• A: ์•„ํ‚คํ…์ฒ˜/๊ธฐ๋ฐ˜ ๊ธฐ์ˆ ] - [[React Server Components]] - ์—ฐ๊ฒฐ ์ด์œ : ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋Š” React Server Components (RSC) ํŒจ๋Ÿฌ๋‹ค์ž„์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ˜์ชฝ์ด๋ฉฐ, ์ด ๋‘˜์€ ์„œ๋กœ ํ˜‘๋ ฅํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ-์„œ๋ฒ„ ๊ฐ„์˜ ๋ Œ๋”๋ง ๊ฒฝ๊ณ„๋ฅผ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค [2, 3, 21]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ๋ฒˆ๋“ค ์‚ฌ์ด์ฆˆ ์ตœ์ ํ™” ์›๋ฆฌ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์ง๋ ฌํ™”ํ•˜์—ฌ ์ „๋‹ฌํ•˜๋Š” ์ „์ฒด์ ์ธ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์•„ํ‚คํ…์ฒ˜. - [[Hydration]] - ์—ฐ๊ฒฐ ์ด์œ : ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— ๋„๋‹ฌํ•˜์—ฌ ๋งˆ์นจ๋‚ด ์ƒํ˜ธ์ž‘์šฉ์„ฑ์„ ํš๋“ํ•˜๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์ž…๋‹ˆ๋‹ค [17, 22]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: SSR(Server-Side Rendering) ํ™˜๊ฒฝ์—์„œ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ธฐ์กด HTML DOM ๋…ธ๋“œ์— ์ด๋ฒคํŠธ ๋ฆฌ์Šค๋„ˆ๋ฅผ ๋ถ€์ฐฉํ•˜๊ณ  ์ƒํƒœ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋‚ด๋ถ€ ๋งค์ปค๋‹ˆ์ฆ˜ [18, 22]. #### [๊ด€๊ณ„ ์œ ํ˜• B: ๊ตฌํ˜„/ํ™œ์šฉ ๋„๊ตฌ] - [[use client]] - ์—ฐ๊ฒฐ ์ด์œ : ํ•ด๋‹น ํŒŒ์ผ๊ณผ ๊ทธ ํŒŒ์ผ์ด ์ž„ํฌํŠธํ•˜๋Š” ๋ชจ๋“  ์ข…์†์„ฑ์ด ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜์–ด์•ผ ํ•จ์„ React์™€ ๋ฒˆ๋“ค๋Ÿฌ์— ๋ช…์‹œํ•˜๋Š” ์ง€์‹œ์–ด(Directive)์ž…๋‹ˆ๋‹ค [3-5]. - ์ด ๊ฐœ๋…์„ ํ†ตํ•ด ๋” ๊นŠ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„: ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์—์„œ 'ํด๋ผ์ด์–ธํŠธ ๊ฒฝ๊ณ„(Client Boundary)'๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ์„ฑ๋˜๊ณ  ํŒŒ์ผ ๋‹จ์œ„๋กœ ์ „ํŒŒ๋˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ตฌ์กฐ์  ์›๋ฆฌ [12, 23]. ### Deeper Research Questions - ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ์˜ ํ•˜์ด๋“œ๋ ˆ์ด์…˜ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ React 18์˜ 'Selective Hydration'์€ ๋‚ด๋ถ€์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ์ž‘๋™ํ•˜๋Š”๊ฐ€? - ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ์˜ `children` prop์œผ๋กœ ์ „๋‹ฌํ•  ๋•Œ, ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ(State)๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด ๋ฆฌ๋ Œ๋”๋ง์ด ๋ฐœ์ƒํ•˜๋ฉด ๋‚ด๋ถ€์˜ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ๊ฒฐ๊ณผ๋ฌผ์€ ์–ด๋–ป๊ฒŒ ์œ ์ง€๋˜๋Š”๊ฐ€? - ๋Œ€๊ทœ๋ชจ React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ํ™•์žฅ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ ํŠธ๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌ์กฐํ™”ํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํšจ๊ณผ์ ์ธ๊ฐ€? - React-Query๋‚˜ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ ์ตœ์ƒ๋‹จ ๊ณ„์ธต(Providers)์— ์ ์šฉํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์„ฑ๋Šฅ ์ €ํ•˜์™€ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ํ™œ์šฉ์˜ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„๋Š” ๋ฌด์—‡์ธ๊ฐ€? - ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ์—์„œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ ๋ฒˆ๋“ค์˜ ํฌ๊ธฐ๋ฅผ ํ‰๊ฐ€ํ•˜๊ณ  ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ๋„๊ตฌ์™€ ์ง€ํ‘œ(Metrics)๋ฅผ ํ™œ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€? ### Practical Application Contexts - **Implementation:** React๋กœ ๋ฒ„ํŠผ, ํผ(Form), ํ† ๊ธ€(Toggle)๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ์ž์˜ ์ง์ ‘์ ์ธ ์ƒํ˜ธ์ž‘์šฉ์ด๋‚˜ ์ƒํƒœ(`useState`), ์‚ฌ์ด๋“œ ์ดํŽ™ํŠธ(`useEffect`)๊ฐ€ ํ•„์š”ํ•œ UI ์กฐ๊ฐ์„ ๊ตฌํ˜„ํ•  ๋•Œ ์ƒ๋‹จ์— `'use client'`๋ฅผ ์„ ์–ธํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐœ๋ฐœํ•ฉ๋‹ˆ๋‹ค [1, 5]. - **System Design:** ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ์‹œ ์ „์ฒด ๋ ˆ์ด์•„์›ƒ๊ณผ ๋ฐ์ดํ„ฐ ํŽ˜์นญ ๊ณ„์ธต์€ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑํ•˜๊ณ , ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๋ง๋‹จ์˜ ๋ฆฌํ”„ ๋…ธ๋“œ(Leaf Node)๋‚˜ ํŠน์ • ์ƒํ˜ธ์ž‘์šฉ ์˜์—ญ๋งŒ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ฐ์‹ธ๋Š”(Boundary) ์บก์Аํ™” ์ „๋žต์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค [13, 24]. - **Operation / Maintenance:** ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ฐ ์œ ์ง€๋ณด์ˆ˜ ๊ณผ์ •์—์„œ ์ •์ ์ธ ํ…์ŠคํŠธ๋งŒ ๋ณด์—ฌ์ฃผ๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋กœ ์ง€์ •๋˜์ง€ ์•Š์•˜๋Š”์ง€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๊ฒ€์ˆ˜ํ•˜์—ฌ, ๋ถˆํ•„์š”ํ•œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ „์†ก๊ณผ ์„ฑ๋Šฅ ํ•˜๋ฝ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [19, 20]. - **Learning Path:** ์ „ํ†ต์ ์ธ React์˜ ์ƒ๋ช…์ฃผ๊ธฐ์™€ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ๋จผ์ € ํ•™์Šตํ•œ ํ›„, SSR๊ณผ Hydration์˜ ํ•œ๊ณ„๋ฅผ ํŒŒ์•…ํ•˜๊ณ , React 19 ๋ฐ Next.js ์•ฑ ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•ด RSC ๋ฐ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ ๋ถ„๋ฆฌ ์›๋ฆฌ๋ฅผ ์ตํž™๋‹ˆ๋‹ค. - **My Project Relevance:** ์ฐจ์„ธ๋Œ€ ์›น ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ, ์œ ์ € ์ธํ„ฐ๋ž™์…˜์ด ์žฆ์€ ์žฅ๋ฐ”๊ตฌ๋‹ˆ/์ฑ„ํŒ… ๊ธฐ๋Šฅ์€ ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๋กœ ๋งŒ๋“ค๊ณ , ์ œํ’ˆ ๋ชฉ๋ก ๋“ฑ์€ ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์ถ•ํ•˜์—ฌ ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•˜๋Š” ๋ฐ ํ™œ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### Adjacent Topics - [[Server Actions]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ ๋‚ด์—์„œ ๋ฐœ์ƒํ•œ ์ด๋ฒคํŠธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ์˜ ๊ธฐ๋Šฅ(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—…๋ฐ์ดํŠธ ๋“ฑ)์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์•ˆ์ „ํ•˜๊ฒŒ ํ˜ธ์ถœํ•˜๋Š” ์ตœ์‹  ํŒจํ„ด์œผ๋กœ ํ™•์žฅํ•˜์—ฌ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [25-27]. - [[Suspense]] - ํ™•์žฅ ๋ฐฉํ–ฅ: ํด๋ผ์ด์–ธํŠธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์•„์ง ๋กœ๋”ฉ ์ค‘์ด๊ฑฐ๋‚˜ ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ ์ŠคํŠธ๋ฆฌ๋ฐ์ด ์ง„ํ–‰ ์ค‘์ผ ๋•Œ, ์‚ฌ์šฉ์ž์˜ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๋กœ๋”ฉ ์Šค์ผˆ๋ ˆํ†ค(UI) ๊ตฌํ˜„ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ํ•™์Šต์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค [28-30]. --- *Last updated: 2026-05-03*