# [[React Server Components]] ## ๐Ÿ“Œ Brief Summary React Server Components(RSC)๋Š” ์˜ค์ง ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ๋งŒ ์‹คํ–‰๋˜๊ณ  ํด๋ผ์ด์–ธํŠธ๋กœ JavaScript ์ฝ”๋“œ๋ฅผ ์ „ํ˜€ ์ „์†กํ•˜์ง€ ์•Š๋Š” React์˜ ๋ Œ๋”๋ง ์•„ํ‚คํ…์ฒ˜์ž…๋‹ˆ๋‹ค [1-3]. ๊ธฐ์กด์˜ SSR(Server-Side Rendering)๊ณผ ๋‹ฌ๋ฆฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ์˜ ํ•˜์ด๋“œ๋ ˆ์ด์…˜(Hydration) ๊ณผ์ •์ด ํ•„์š” ์—†์œผ๋ฉฐ, ๋ Œ๋”๋ง๋œ HTML๊ณผ ์ง๋ ฌํ™”๋œ UI ๋ช…๋ น์–ด๋งŒ์„ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•˜์—ฌ ๋ฒˆ๋“ค ํฌ๊ธฐ๋ฅผ 0๋ฐ”์ดํŠธ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค [1-4]. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋ฒ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ํŒŒ์ผ ์‹œ์Šคํ…œ์— ์ง์ ‘ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉด์„œ๋„ ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ์‚ฐ ๋ถ€๋‹ด์„ ํš๊ธฐ์ ์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5, 6]. ## ๐Ÿ“– Core Content * **๋“ฑ์žฅ ๋ฐฐ๊ฒฝ ๋ฐ ๋ Œ๋”๋ง ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ๋ณ€ํ™”:** ๊ธฐ์กด์˜ ํด๋ผ์ด์–ธํŠธ ์ธก ๋ Œ๋”๋ง(CSR)๊ณผ ์„œ๋ฒ„ ์ธก ๋ Œ๋”๋ง(SSR)์€ ์ตœ์ข…์ ์œผ๋กœ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋ฐฉ๋Œ€ํ•œ JavaScript ๋ฒˆ๋“ค์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ณ  ์ด๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ•˜์ด๋“œ๋ ˆ์ด์…˜์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ตฌ์กฐ์  ๋ณ‘๋ชฉ ํ˜„์ƒ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค [7-10]. RSC๋Š” ์ƒํ˜ธ์ž‘์šฉ์ด ํ•„์š” ์—†๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„œ๋ฒ„์—์„œ ์ „์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ํ•จ์œผ๋กœ์จ ํด๋ผ์ด์–ธํŠธ ์ธก JavaScript๋ฅผ 40~60%๊ฐ€๋Ÿ‰ ๊ฐ์†Œ์‹œํ‚ค๊ณ  INP(Interaction to Next Paint) ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค [1, 10]. * **์ž‘๋™ ๋ฐฉ์‹ ๋ฐ React Flight ํ”„๋กœํ† ์ฝœ:** ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ JavaScript ์ฝ”๋“œ๋ฅผ ๋ณด๋‚ด์ง€ ์•Š๊ณ , ์ •์  HTML๊ณผ ํ•จ๊ป˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ UI๋ฅผ ์กฐํ•ฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š” ์ง๋ ฌํ™”๋œ React ๋ช…๋ น์–ด(React Flight ํ”„๋กœํ† ์ฝœ)๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค [2, 3, 11]. ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด๋ฅผ ๋ฐ›์•„ ์ถ”๊ฐ€์ ์ธ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰์ด๋‚˜ ํ•˜์ด๋“œ๋ ˆ์ด์…˜ ์—†์ด ํ™”๋ฉด์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [4]. * **๋ฐ์ดํ„ฐ ํŽ˜์นญ(Data Fetching) ๋ฐ ๋ณด์•ˆ:** ์„œ๋ฒ„ ํ™˜๊ฒฝ์—์„œ๋งŒ ์‹คํ–‰๋˜๋ฏ€๋กœ API ์—”๋“œํฌ์ธํŠธ๋ฅผ ๊ฑฐ์น  ํ•„์š” ์—†์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ๋ฅผ ์ง์ ‘ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜ ํŒŒ์ผ ์‹œ์Šคํ…œ ๋ฐ ์„œ๋ฒ„ ํ™˜๊ฒฝ ๋ณ€์ˆ˜(๋น„๋ฐ€ํ‚ค ๋“ฑ)์— ์•ˆ์ „ํ•˜๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5, 6, 12]. ๋˜ํ•œ ๋ณ„๋„์˜ Hook ์—†์ด ์ปดํฌ๋„ŒํŠธ ๋‚ด๋ถ€์—์„œ `async/await`๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์–ด ๋ถˆํ•„์š”ํ•œ ๋„คํŠธ์›Œํฌ ์™•๋ณต์„ ์ค„์—ฌ์ค๋‹ˆ๋‹ค [13, 14]. * **Client Component์™€์˜ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•„ํ‚คํ…์ฒ˜:** React 19๋ถ€ํ„ฐ๋Š” ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ Server Component๋กœ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค [15]. `onClick`, `useState` ๋“ฑ์˜ ๋ธŒ๋ผ์šฐ์ € ์ƒํ˜ธ์ž‘์šฉ์ด๋‚˜ ์ƒํƒœ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ํŒŒ์ผ ์ตœ์ƒ๋‹จ์— `"use client"` ์ง€์‹œ์–ด๋ฅผ ์„ ์–ธํ•˜์—ฌ Client Component๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [5, 15, 16]. ์ด๋•Œ **Server Component๋Š” Client Component๋ฅผ ๋ Œ๋”๋งํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, Client Component๋Š” Server Component๋ฅผ ์ง์ ‘ ์ž„ํฌํŠธํ•  ์ˆ˜ ์—†๋‹ค**๋Š” ์—„๊ฒฉํ•œ ๋‹จ๋ฐฉํ–ฅ ์˜์กด์„ฑ ๊ทœ์น™์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค [15, 17, 18]. * **ํ•œ๊ณ„์  (Limitations):** ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ์ž์ฒด๋Š” ์–ด๋– ํ•œ ๋ธŒ๋ผ์šฐ์ € ์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๋‚˜ ๋ธŒ๋ผ์šฐ์ € ์ „์šฉ API(`window`, `document` ๋“ฑ)๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค [6, 16, 19]. ๋˜ํ•œ ์—ฌ์ „ํžˆ ๋ธŒ๋ผ์šฐ์ € ํ™˜๊ฒฝ์„ ๊ฐ€์ •ํ•˜๋Š” ์ผ๋ถ€ ์„œ๋“œํŒŒํ‹ฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€๋Š” ํ˜ธํ™˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณต์žกํ•œ ์ŠคํŠธ๋ฆฌ๋ฐ ์ธํ”„๋ผ๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ๊ทœ๋ชจ๊ฐ€ ์ž‘๊ณ  ๋‹จ์ˆœํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ๋„์ž…์œผ๋กœ ์ธํ•œ ๋ณต์žก์„ฑ์ด ์„ฑ๋Šฅ ์ด์ ์„ ๋Šฅ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [19-21]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Server-Side Rendering (SSR)]], [[Client Components]], [[Hydration]], [[React Flight]], [[Concurrent Rendering]] - **Projects/Contexts:** [[Next.js App Router]], [[React 19]] - **Contradictions/Notes:** SSR์€ ์ดˆ๊ธฐ HTML์„ ์„œ๋ฒ„์—์„œ ์ƒ์„ฑํ•˜์—ฌ ๋น ๋ฅด๊ฒŒ ๋ณด์—ฌ์ฃผ์ง€๋งŒ ๊ฒฐ๊ตญ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋™์ž‘์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์ „์ฒด JS ๋ฒˆ๋“ค์„ ํด๋ผ์ด์–ธํŠธ์— ๋ณด๋‚ด๊ณ  ํ•˜์ด๋“œ๋ ˆ์ด์…˜(Hydration)ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด, React Server Components๋Š” ๋ธŒ๋ผ์šฐ์ €์— JS ์ฝ”๋“œ๋ฅผ ์ „ํ˜€ ๋ณด๋‚ด์ง€ ์•Š๊ณ  ํ•˜์ด๋“œ๋ ˆ์ด์…˜ ๊ณผ์ • ์ž์ฒด๋ฅผ ์ƒ๋žตํ•œ๋‹ค๋Š” ์ ์—์„œ SSR๊ณผ ๊ทผ๋ณธ์ ์œผ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค [3, 12, 22, 23]. ๋˜ํ•œ ๋ชจ๋“  ๊ฒฝ์šฐ์— ๋ฌด์กฐ๊ฑด์ ์œผ๋กœ ๋” ๋น ๋ฅธ ๊ฒƒ์€ ์•„๋‹ˆ๋ฉฐ, ๋†’์€ ์ƒํ˜ธ์ž‘์šฉ์ด ํ•„์š”ํ•œ ํด๋ผ์ด์–ธํŠธ ์ค‘์‹ฌ์˜ ์•ฑ์—์„œ๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [20, 24]. --- *Last updated: 2026-04-25*