# [[React Context API|React Context API]] ## ๐Ÿ“Œ Brief Summary React [[Context API|Context API]]๋Š” ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ 'Prop Drilling(ํ”„๋กญ์Šค ๋‚ด๋ฆฌ๊ฝ‚๊ธฐ)' ๊ณผ์ • ์—†์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์†Œ๋น„ํ•˜๊ณ  ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค [1, 2]. ์ปดํŒŒ์šด๋“œ ์ปดํฌ๋„ŒํŠธ(Compound Components) ํŒจํ„ด์—์„œ ๋‚ด๋ถ€์ ์œผ๋กœ ์ƒํƒœ๋ฅผ ์•”์‹œ์ ์œผ๋กœ ๊ณต์œ ํ•˜๊ฑฐ๋‚˜, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ „์—ญ ์ƒํƒœ ๋ฐ ๋™์  ํ…Œ๋งˆ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [3-5]. ํ•˜์ง€๋งŒ ์„œ๋ฒ„ ์ „์šฉ ์‹คํ–‰ ํ™˜๊ฒฝ์ธ [[React Server Components|React Server Components]](RSC)์—์„œ๋Š” Context๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ์ด๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋Ÿฐํƒ€์ž„ [[CSS-in-JS|CSS-in-JS]] ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค๊ณผ ๊ตฌ์กฐ์ ์ธ ๋น„ํ˜ธํ™˜์„ฑ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค [6, 7]. ## ๐Ÿ“– Core Content - **์ƒํƒœ ๊ณต์œ  ๋ฐ Prop Drilling ๋ฐฉ์ง€:** Context API๋Š” ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ ๊นŠ์ˆ™ํ•œ ๊ณณ๊นŒ์ง€ ์ƒํƒœ์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ „๋‹ฌํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถฅ๋‹ˆ๋‹ค [1]. ์˜ˆ๋ฅผ ๋“ค์–ด, `[[styled-components|styled-components]]`์˜ `ThemeProvider`๋Š” ์ด API๋ฅผ ํ†ตํ•ด ํŠธ๋ฆฌ ํ•˜์œ„์˜ ๋ชจ๋“  ์Šคํƒ€์ผ๋“œ ์ปดํฌ๋„ŒํŠธ์— ํ…Œ๋งˆ ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…ํ•ฉ๋‹ˆ๋‹ค [8]. - **์ปดํŒŒ์šด๋“œ ์ปดํฌ๋„ŒํŠธ(Compound Components)์˜ ๋‚ด๋ถ€ ๊ณ„์•ฝ:** ์•„์ฝ”๋””์–ธ(Accordion)์ด๋‚˜ ๋ชจ๋‹ฌ(Modal) ๊ฐ™์€ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ Context๋Š” ๋‚ด๋ถ€ ๊ณ„์•ฝ(Internal Contract)์˜ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค [3]. ์ตœ์ƒ์œ„ ๋ฃจํŠธ ์ปดํฌ๋„ŒํŠธ๊ฐ€ 'Provider'๋กœ์„œ ๊ณต์œ  ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋“ค์€ ๊ฐ์ž ํ•„์š”ํ•œ Context๋งŒ์„ ๊ตฌ๋…ํ•˜์—ฌ ์œ ์—ฐํ•œ UI ๊ตฌ์„ฑ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค [9-11]. ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด Context๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง์„ ๋ฐฉ์ง€ํ•˜๋Š” ๊ธฐ๋ฒ•๋„ ์ž์ฃผ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค [12, 13]. - **๋Ÿฐํƒ€์ž„ ํ…Œ๋งˆ ์ ์šฉ:** ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋‹คํฌ ๋ชจ๋“œ๋‚˜ ๋‹ค์ค‘ ๋ธŒ๋žœ๋“œ ํ…Œ๋งˆ๋ฅผ ๋™์ ์œผ๋กœ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋Ÿฐํƒ€์ž„ Context ์ฃผ์ž… ๋ฐฉ์‹์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค [5]. `styled-components`๋‚˜ `Emotion` ๊ฐ™์€ CSS-in-JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ ์ด Context๋ฅผ ํ™œ์šฉํ•ด ํ…Œ๋งˆ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค [8, 14]. - **React [[Server Components|Server Components]](RSC) ํ™˜๊ฒฝ์—์„œ์˜ ํ•œ๊ณ„:** ๋ชจ๋˜ ํ”„๋ก ํŠธ์—”๋“œ ์•„ํ‚คํ…์ฒ˜(์˜ˆ: Next.js App Router)์—์„œ๋Š” ์„œ๋ฒ„ ์ปดํฌ๋„ŒํŠธ ๋‚ด์— React Context๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค [6]. ์ด๋กœ ์ธํ•ด Context ๊ธฐ๋ฐ˜์˜ ํ…Œ๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” CSS-in-JS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์€ RSC ํ™˜๊ฒฝ๊ณผ ๊ทผ๋ณธ์ ์œผ๋กœ ํ˜ธํ™˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค [7, 14]. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Context ๋Œ€์‹  CSS ๋ณ€์ˆ˜(CSS custom properties)๋ฅผ ํ™œ์šฉํ•˜๊ฑฐ๋‚˜, ๋Ÿฐํƒ€์ž„ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์—†๋Š” [[Tailwind CSS|Tailwind CSS]] ๋˜๋Š” `[[vanilla-extract|vanilla-extract]]` ๊ฐ™์€ ์ •์  ์ถ”์ถœ ๋ฐฉ์‹์˜ ์•„ํ‚คํ…์ฒ˜๋กœ ์ „ํ™˜ํ•˜๋Š” ์ถ”์„ธ์ž…๋‹ˆ๋‹ค [6, 15, 16]. ## ๐Ÿ”— Knowledge Connections - **Related Topics:** [[Compound Components|Compound Components]], React Server Components (RSC), Prop Drilling, [[CSS-in-JS|CSS-in-JS]], [[styled-components|styled-components]] - **Projects/Contexts:** [[Next.js App Router|Next.js App Router]], Shopify Polaris, [[Radix UI|Radix UI]] - **Contradictions/Notes:** ์†Œ์Šค์— ๋”ฐ๋ฅด๋ฉด, Context API๋Š” ๋ณต์žกํ•œ UI ๊ตฌ์„ฑ ์š”์†Œ ๊ฐ„์˜ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜๊ณ  ๋Ÿฐํƒ€์ž„ ํ…Œ๋งˆ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•œ ํŒจํ„ด์œผ๋กœ ๊ถŒ์žฅ๋˜์ง€๋งŒ [2, 17], ์ตœ์‹  ๋ Œ๋”๋ง ํŒจ๋Ÿฌ๋‹ค์ž„์ธ React Server Components(RSC)์—์„œ๋Š” ๋ธŒ๋ผ์šฐ์ € ์™ธ๋ถ€์—์„œ ์‹คํ–‰๋  ์ˆ˜ ์—†๋‹ค๋Š” ์—„๊ฒฉํ•œ ์ œ์•ฝ ๋•Œ๋ฌธ์— ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๊ตฌ์ถ• ์‹œ ์‚ฌ์šฉ์— ์ฃผ์˜๊ฐ€ ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค [6, 7]. --- *Last updated: 2026-04-26*