# [[React Server Components (RSC)|React Server Components (RSC]] ## ๐Ÿ“Œ Brief Summary [[React Server Components|React Server Components]](RSC)๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ์„œ๋ฒ„์—์„œ ๋ฐฐํƒ€์ ์œผ๋กœ ์‹คํ–‰๋˜๋ฉฐ(๋นŒ๋“œ ํƒ€์ž„ ๋˜๋Š” ์š”์ฒญ ์‹œ) ํด๋ผ์ด์–ธํŠธ๋กœ JavaScript๋ฅผ ์ „์†กํ•˜์ง€ ์•Š๊ณ  HTML์„ ์ŠคํŠธ๋ฆฌ๋ฐํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ์ž…๋‹ˆ๋‹ค [1, 2]. ๋ธŒ๋ผ์šฐ์ € API ๋ฐ React Context์— ๋Œ€ํ•œ ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ธฐ์กด ๋Ÿฐํƒ€์ž„ [[CSS-in-JS|CSS-in-JS]] ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋ฉฐ ํ”„๋ก ํŠธ์—”๋“œ ์Šคํƒ€์ผ๋ง ๋ฐ ์ปดํฌ๋„ŒํŠธ ์•„ํ‚คํ…์ฒ˜์— ๊ทผ๋ณธ์ ์ธ ๋ณ€ํ™”๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค [1-4]. ## ๐Ÿ“– Core Content - **์„œ๋ฒ„ ์ „์šฉ ์‹คํ–‰ ๋ฐ ์„ฑ๋Šฅ ์ตœ์ ํ™”:** RSC๋Š” ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋˜๋ฏ€๋กœ ํด๋ผ์ด์–ธํŠธ๋กœ JavaScript ๋ฒˆ๋“ค์„ ๋ณด๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค [2]. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ์™€ ๊ฐ™์€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ธŒ๋ผ์šฐ์ €์— ๋…ธ์ถœํ•˜์ง€ ์•Š๊ณ  ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜์—ฌ ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๋ฉฐ, ํด๋ผ์ด์–ธํŠธ์˜ ์ž์› ๋ถ€๋‹ด์„ ์ตœ์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค [2]. - **์Šคํƒ€์ผ๋ง ์•„ํ‚คํ…์ฒ˜์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ:** RSC ํ™˜๊ฒฝ์—์„œ๋Š” React Context๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์—, `ThemeProvider`์™€ ๊ฐ™์ด Context์— ์˜์กดํ•˜๋Š” ๊ธฐ์กด์˜ ๋Ÿฐํƒ€์ž„ CSS-in-JS(์˜ˆ: [[styled-components|styled-components]], Emotion)๋Š” ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ํ™˜๊ฒฝ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค [1, 3-5]. ์ด๋กœ ์ธํ•ด ๋Ÿฐํƒ€์ž„ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์—†๋Š” Tailwind CSS๋‚˜ ๋นŒ๋“œ ํƒ€์ž„์— ์ •์  CSS๋ฅผ ์ƒ์„ฑํ•˜๋Š” [[vanilla-extract|vanilla-extract]] ๊ฐ™์€ ์ ‘๊ทผ ๋ฐฉ์‹์ด ํ˜„๋Œ€ ํ”„๋ก ํŠธ์—”๋“œ ์•„ํ‚คํ…์ฒ˜์—์„œ ์„ ํ˜ธ๋˜๋Š” ์ถ”์„ธ์ž…๋‹ˆ๋‹ค [1]. - **styled-components์˜ RSC ์ง€์› ๋ฐ [[Style Registry|Style Registry]]:** ์ด๋Ÿฌํ•œ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด [[Next.js 15|Next.js 15]]์—์„œ๋Š” ๋ Œ๋”๋ง ์ค‘ CSS ๊ทœ์น™์„ ์ˆ˜์ง‘ํ•˜์—ฌ ์ฃผ์ž…ํ•˜๋Š” 'Style Registry' ํŒจํ„ด์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค [6]. ๋˜ํ•œ `styled-components`๋Š” v6.3.0๋ถ€ํ„ฐ RSC ํ™˜๊ฒฝ์„ ์ž๋™ ๊ฐ์ง€ํ•˜์—ฌ `'use client'` ์ง€์‹œ์–ด ์—†์ด๋„ ์ธ๋ผ์ธ `