--- id: wiki-2026-0508-prop-drilling title: Prop Drilling category: Frontend status: needs_review canonical_id: self aliases: [] duplicate_of: none source_trust_level: A confidence_score: 0.92 tags: [auto-wikified, technical-documentation, merged, frontend] raw_sources: [] last_reinforced: 2026-05-08 github_commit: pending inferred_by: Claude Opus 4.7 (auto-normalize 2026-05-08) tech_stack: language: unspecified framework: unspecified --- # Prop Drilling ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) Prop Drilling์€ React๋‚˜ Vue์™€ ๊ฐ™์€ ์ปดํฌ๋„ŒํŠธ ๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ, ํŠน์ • ์ƒํƒœ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์ œ๋กœ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์—ฌ๋Ÿฌ ์ค‘๊ฐ„ ๊ณ„์ธต์˜ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๊ฑฐ์ณ ํ”„๋กœํ”„(Props)๋กœ ๊ณ„์† ๋‚ด๋ ค๋ณด๋‚ด๋Š” ํ˜„์ƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค [1, 2]. ์ด๋Š” ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ๊ฐ€ ๊นŠ์–ด์งˆ์ˆ˜๋ก ์ฝ”๋“œ๋ฅผ ๋ฒˆ๊ฑฐ๋กญ๊ณ  ์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์–ด๋ ต๊ฒŒ ๋งŒ๋“œ๋Š” ์ฃผ์š” ์›์ธ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค [2]. ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์€ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Context API, Provide/Inject, ๋ณตํ•ฉ ์ปดํฌ๋„ŒํŠธ(Compound Components) ํŒจํ„ด ๋ฐ ์ค‘์•™ ์ง‘์ค‘์‹ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ ๋„๊ตฌ ๋“ฑ์„ ํ™œ์šฉํ•ฉ๋‹ˆ๋‹ค [1, 3-6]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) * **๋ฐœ์ƒ ์›์ธ๊ณผ ๊ตฌ์กฐ์  ํ•œ๊ณ„** ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋™์ผํ•œ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•ด์•ผ ํ•  ๋•Œ, ๊ณตํ†ต ์กฐ์ƒ ์ปดํฌ๋„ŒํŠธ๋กœ ์ƒํƒœ๋ฅผ ๋Œ์–ด์˜ฌ๋ฆฐ(Lifting state up) ํ›„ ํ”„๋กœํ”„(Props)๋ฅผ ํ†ตํ•ด ํ•˜์œ„๋กœ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์„ ์ทจํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค [2]. ๊ทธ๋Ÿฌ๋‚˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ ๊ทœ๋ชจ๊ฐ€ ์ปค์ ธ 5~6๊ณ„์ธต ์ด์ƒ์˜ ๊นŠ์€ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ๊ฐ€ ํ˜•์„ฑ๋˜๋ฉด, ์ค‘๊ฐ„ ์ปดํฌ๋„ŒํŠธ๋“ค์€ ์ž์‹ ์—๊ฒŒ ํ•„์š” ์—†๋Š” ๋ฐ์ดํ„ฐ๊นŒ์ง€ ์ „๋‹ฌ๋ฐ›์•„ ํ•˜์œ„๋กœ ๋„˜๊ฒจ์•ผ๋งŒ ํ•˜๋Š” Prop Drilling ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค [1, 2]. ์ด๋Š” ๋‹จ์ผ ๋ชจ๋†€๋ฆฌ์‹ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ํ”„๋กœํ”„๋ฅผ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋Š” 'API ์Šคํ”„๋กค(Sprawl)' ํ˜„์ƒ๊ณผ๋„ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค [3]. * **React ์ƒํƒœ๊ณ„์˜ ํ•ด๊ฒฐ ํŒจํ„ด** * **Context API:** ๋ฐ์ดํ„ฐ๋ฅผ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ๋ ˆ๋ฒจ์—์„œ ์ˆ˜๋™์œผ๋กœ ํ”„๋กœํ”„๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•  ํ•„์š” ์—†์ด, ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ง์ ‘ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ Prop Drilling ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค [5]. * **๋ณตํ•ฉ ์ปดํฌ๋„ŒํŠธ(Compound Components) ํŒจํ„ด:** ๋‹ค์ˆ˜์˜ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ Context๋ฅผ ํ†ตํ•ด ์•”์‹œ์ ์œผ๋กœ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜์—ฌ ํ•˜๋‚˜์˜ ์‘์ง‘๋œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค [3, 6]. ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์— ๋ฌด์ˆ˜ํžˆ ๋งŽ์€ ํ”„๋กœํ”„๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋Œ€์‹ , ์กฐ๋ฆฝ ๊ฐ€๋Šฅํ•œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์œ ์—ฐํ•˜๊ฒŒ ์ œ๊ณตํ•จ์œผ๋กœ์จ Prop Drilling์„ ํšจ๊ณผ์ ์œผ๋กœ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [3, 6]. * **Vue ์ƒํƒœ๊ณ„์˜ ํ•ด๊ฒฐ ํŒจํ„ด** * **Provide / Inject:** ์˜์กด์„ฑ ์ฃผ์ž… ์‹œ์Šคํ…œ์„ ํ™œ์šฉํ•˜์—ฌ ์ƒ์œ„ ์ œ๊ณต์ž(Provider)์—์„œ ๊นŠ์ด ์ค‘์ฒฉ๋œ ์†Œ๋น„์ž(Consumer) ์ปดํฌ๋„ŒํŠธ๋กœ ๋ฐ์ดํ„ฐ๋‚˜ ์„œ๋น„์Šค๋ฅผ '์ˆœ๊ฐ„์ด๋™(Teleport)' ์‹œํ‚ค๋“ฏ ์ง์ ‘ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค [1]. ์ด๋ฅผ ํ†ตํ•ด ์ค‘๊ฐ„ ์ปดํฌ๋„ŒํŠธ๋“ค์˜ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๊น”๋”ํ•˜๊ณ  ๊ธฐ๋Šฅ์— ์ง‘์ค‘๋œ ์ƒํƒœ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1]. * **์ค‘์•™ ์ง‘์ค‘์‹ ์ƒํƒœ ๊ด€๋ฆฌ:** ๊ณต์œ  ์ƒํƒœ๋ฅผ ์ปดํฌ๋„ŒํŠธ ์™ธ๋ถ€๋กœ ์ถ”์ถœํ•˜์—ฌ ์ „์—ญ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๊ด€๋ฆฌํ•จ์œผ๋กœ์จ, ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ์˜ ์œ„์น˜์™€ ์ƒ๊ด€์—†์ด ์ƒํƒœ์— ์ ‘๊ทผํ•˜๊ฑฐ๋‚˜ ์•ก์…˜์„ ํŠธ๋ฆฌ๊ฑฐํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ Prop Drilling์„ ๊ทผ๋ณธ์ ์œผ๋กœ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [7]. ํ˜„์žฌ Vue ์ƒํƒœ๊ณ„์—์„œ๋Š” ํƒ€์ž… ์ถ”๋ก ์ด ๋›ฐ์–ด๋‚˜๊ณ  ๋ณด์ผ๋Ÿฌํ”Œ๋ ˆ์ดํŠธ๊ฐ€ ์ ์€ Pinia๊ฐ€ ์ด๋ฅผ ์œ„ํ•ด ์ ๊ทน ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค [4, 8, 9]. ## โš ๏ธ ๋ชจ์ˆœ ๋ฐ ์—…๋ฐ์ดํŠธ (Contradictions & Updates) * **๋ณตํ•ฉ ์ปดํฌ๋„ŒํŠธ ๋ฐ Context ํŒจํ„ด์˜ ์ œ์•ฝ์‚ฌํ•ญ** Prop Drilling์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋ณตํ•ฉ ์ปดํฌ๋„ŒํŠธ ํŒจํ„ด์ด๋‚˜ Context๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ, ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ถ€๋ชจ Context ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ณณ์—์„œ ์‚ฌ์šฉ๋˜๋ฉด ์กฐ์šฉํ•œ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋‚˜ ํ˜ผ๋ž€์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [10]. ๋”ฐ๋ผ์„œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ถ€๋ชจ ์™ธ๋ถ€์—์„œ ์‚ฌ์šฉ๋  ๋•Œ๋ฅผ ๋Œ€๋น„ํ•ด ๋ช…ํ™•ํ•œ ์—๋Ÿฌ๋ฅผ ๋˜์ง€๋„๋ก ๊ฐ€๋“œ(Guard) ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [10, 11]. ๋˜ํ•œ, ํ”„๋กœํ”„๋ฅผ ๋‹จ์ˆœํžˆ ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹๊ณผ ๋น„๊ตํ•˜์—ฌ ์ƒํƒœ ์ฒ˜๋ฆฌ ๋ฐ ์ถ”์  ๋‚œ์ด๋„๊ฐ€ ์ƒ์Šนํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค [12, 13]. * **์˜์กด์„ฑ ์ฃผ์ž…(Provide/Inject) ํŒจํ„ด์˜ ์ด๋ฆ„ ์ถฉ๋Œ ๋ฐ ์ƒํƒœ ํ๋ฆ„ ๊ด€๋ฆฌ** ๋Œ€๊ทœ๋ชจ ํŒ€์—์„œ Provide/Inject๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์ฃผ์ž… ํ‚ค(Injection key)๋กœ ๋‹จ์ˆœ ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ๋ชจ๋“ˆ์— ์˜ํ•ด ์‹ค์ˆ˜๋กœ ๋ฎ์–ด์”Œ์›Œ์ง€๋Š” ์ด๋ฆ„ ์ถฉ๋Œ(Naming collisions)์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [14]. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ๊ณ ์œ ํ•œ `Symbol`์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ชจ๋ฒ” ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค [14]. ๋˜ํ•œ, ๋ฐ์ดํ„ฐ ํ๋ฆ„์˜ ์˜ˆ์ธก ๊ฐ€๋Šฅ์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ œ๊ณต๋œ ๊ฐ’์„ ์ž„์˜๋กœ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋‘์ง€ ๋ง๊ณ , ์ƒํƒœ์™€ ํ•จ๊ป˜ '์„ค์ •์ž(Setter)' ํ•จ์ˆ˜๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ณ€๊ฒฝ ๋กœ์ง์„ ์ค‘์•™ํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [14]. * **์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ ์‚ฌ์šฉ ์‹œ์˜ ์„ค๊ณ„์  ๋ถ€๋‹ด๊ณผ SSR ์ด์Šˆ** Prop Drilling์„ ํ”ผํ•˜๊ณ ์ž ์ „์—ญ ์ƒํƒœ(Store)๋ฅผ ๋„์ž…ํ•  ๋•Œ, ์ž„์˜์˜ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ „์—ญ ์ƒํƒœ๋ฅผ ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•˜๊ฒŒ ๋ฐฉ์น˜ํ•˜๋ฉด ์žฅ๊ธฐ์ ์ธ ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ์‹ฌ๊ฐํ•˜๊ฒŒ ์ €ํ•˜๋ฉ๋‹ˆ๋‹ค [15]. ์ƒํƒœ ๋ณ€๊ฒฝ ๋กœ์ง์€ ๋ช…ํ™•ํ•œ ์˜๋„๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ์•ก์…˜(Action) ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ค‘์•™ ์ง‘์ค‘ํ™”๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [15]. ํŠนํžˆ SSR(์„œ๋ฒ„ ์‚ฌ์ด๋“œ ๋ Œ๋”๋ง) ํ™˜๊ฒฝ์—์„œ๋Š” ์ƒํƒœ๊ฐ€ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ์ฒ˜๋ฆฌ๋  ๊ฒฝ์šฐ ์—ฌ๋Ÿฌ ์š”์ฒญ ๊ฐ„์— ์ƒํƒœ๊ฐ€ ๊ณต์œ ๋˜์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ถœ๋˜๋Š” ํฌ๋กœ์Šค ๋ฆฌํ€˜์ŠคํŠธ(Cross-request) ์˜ค์—ผ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, Pinia์™€ ๊ฐ™์ด ์š”์ฒญ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค [9, 16]. --- *Last updated: 2026-05-03* ## ๐Ÿ“š Legacy Insights & Additional Context > [!NOTE] > Below is content merged from previous versions of this documentation. ## ๐Ÿ“Œ ํ•œ ์ค„ ํ†ต์ฐฐ (The Karpathy Summary) Prop Drilling(ํ”„๋กญ ๋“œ๋ฆด๋ง)์€ React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ค‘๊ฐ„ ๋‹จ๊ณ„์˜ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฑฐ์ณ prop์„ ํ•˜์œ„๋กœ ๊ณ„์† ๋‚ด๋ ค๋ณด๋‚ด๋Š” ํ˜„์ƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ปดํฌ๋„ŒํŠธ์— ์ˆ˜๋งŽ์€ prop์ด ์ƒ์„ฑ๋˜๊ณ  '๊ตฌ์„ฑ ์ง€์˜ฅ(configuration hell)'์ด ๋ฐœ์ƒํ•˜์—ฌ UI์˜ ์œ ์—ฐ์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 2]. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด React์—์„œ๋Š” [[Context API|Context API]]๋‚˜ [[Compound Components|Compound Components]] ๊ฐ™์€ ํŒจํ„ด์„ ํ™œ์šฉํ•˜์—ฌ ํ”„๋กญ ๋“œ๋ฆด๋ง์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [2, 3]. ## ๐Ÿ“– ๊ตฌ์กฐํ™”๋œ ์ง€์‹ (Synthesized Content) - **Prop-Driven API์˜ ํ•œ๊ณ„**: ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ ์ดˆ๊ธฐ์—๋Š” prop์„ ํ†ตํ•œ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ์ด ๋ฌธ์ œ๊ฐ€ ์—†์–ด ๋ณด์ผ ์ˆ˜ ์žˆ์œผ๋‚˜, ๋ ˆ์ด์•„์›ƒ ๋ณ€๊ฒฝ์ด๋‚˜ ์กฐ๊ฑด๋ถ€ ๋™์ž‘ ๋“ฑ ์š”๊ตฌ์‚ฌํ•ญ์ด ๋Š˜์–ด๋‚  ๋•Œ๋งˆ๋‹ค prop์ด ํญ๋ฐœ์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค [1]. ์ด๋ ‡๊ฒŒ ๋ ˆ์ด์•„์›ƒ๊ณผ ๋™์ž‘์„ prop์— ํ•˜๋“œ์ฝ”๋”ฉํ•˜๊ฒŒ ๋˜๋ฉด, ์ž‘์€ ๋ณ€๊ฒฝ์—๋„ ์‹œ์Šคํ…œ์ด ๋ฌด๋„ˆ์ง€๊ธฐ ์‰ฌ์šด ๊ฐ•ํ•œ ๊ฒฐํ•ฉ(coupling)์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค [4]. - **ํ”„๋กญ ๋“œ๋ฆด๋ง ํšŒํ”ผ๋ฅผ ์œ„ํ•œ Compound Components ํŒจํ„ด**: Compound Components ํŒจํ„ด์€ ๊ด€๋ จ๋œ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๊ทธ๋ฃน์œผ๋กœ ์ œ๊ณตํ•˜์—ฌ, ๋ช…์‹œ์ ์ธ ํ”„๋กญ ๋“œ๋ฆด๋ง ์—†์ด ์•”์‹œ์ ์œผ๋กœ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค [2]. ์˜ˆ๋ฅผ ๋“ค์–ด Accordion ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ๋•Œ, ๊ฐ ํ•˜์œ„ ์š”์†Œ์— ์ƒํƒœ๋ฅผ prop์œผ๋กœ ๋‚ด๋ฆฌ์ง€ ์•Š์•„๋„ ๊ตฌ์กฐ ์ž์ฒด๊ฐ€ ์ง๊ด€์ ์ธ API ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค [2]. - **[[React Context|React Context]]์˜ ํ™œ์šฉ**: ์ปดํฌ๋„ŒํŠธ ๊ฐ„์˜ ๊นŠ์€ ํ”„๋กญ ๋“œ๋ฆด๋ง์„ ํ”ผํ•˜๊ณ  ๋ณตํ•ฉ UI(Compound UIs) ์ „์ฒด์—์„œ ๊ณต์œ  ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ React์˜ Context๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค [3, 5]. ์ด ๋•Œ Context๋Š” ๊ณต๊ฐœ API๊ฐ€ ์•„๋‹Œ ๋‚ด๋ถ€์ ์ธ ๊ทœ์•ฝ(Internal Contract)์œผ๋กœ ์‚ฌ์šฉ๋˜๋ฉฐ, ์†Œ๋น„์ž๋Š” ํ”„๋กญ์„ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š” ์—†์ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ์กฐํ•ฉ(Composition)ํ•˜๋Š” ๋ฐ ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [5-7]. - **์กฐํ•ฉ(Composition) ์ค‘์‹ฌ ์„ค๊ณ„**: ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณด์—ฌ์•ผ ํ•˜๋Š”์ง€ prop์œผ๋กœ ์ „๋ถ€ ์ง€์‹œํ•˜๋Š” ๋Œ€์‹ , ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ์ƒํƒœ์™€ ๊ทœ์น™๋งŒ ๋ถ€์—ฌํ•˜๊ณ  ์†Œ๋น„์ž๊ฐ€ ์œ ์—ฐํ•˜๊ฒŒ ๋ ˆ์ด์•„์›ƒ ๊ตฌ์กฐ๋ฅผ ์งค ์ˆ˜ ์žˆ๋„๋ก ํ•จ์œผ๋กœ์จ ํ”„๋กญ ๋“œ๋ฆด๋ง ๋ฌธ์ œ๋ฅผ ๊ทผ๋ณธ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [6]. ## ๐Ÿ”— ์ง€์‹ ์—ฐ๊ฒฐ (Graph) - **Related Topics:** [[Compound Components|Compound Components]], [[React Context|React Context]], Component Composition - **Projects/Contexts:** ๊ณต์œ  UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ๋””์ž์ธ ์‹œ์Šคํ…œ ๊ตฌ์ถ•, ํ™•์žฅ ๊ฐ€๋Šฅํ•œ React ์ปดํฌ๋„ŒํŠธ ์„ค๊ณ„ - **Contradictions/Notes:** ์ œ๊ณต๋œ ์†Œ์Šค์—๋Š” Prop Drilling์ด ๋ฐœ์ƒํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ์•ˆํ‹ฐ ํŒจํ„ด ์ฝ”๋“œ๋‚˜ ๊นŠ์€ ๊ธฐ์ˆ ์  ์›๋ฆฌ์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ๋‹ค์†Œ ๋ถ€์กฑํ•˜๋ฉฐ, ์ฃผ๋กœ Compound Components์™€ Context๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ”„๋กญ ๋“œ๋ฆด๋ง์„ 'ํšŒํ”ผ'ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ๊ทธ ์žฅ์  ์œ„์ฃผ๋กœ ์„ค๋ช…๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. --- *Last updated: 2026-04-26* ## ๐Ÿค– LLM ํ™œ์šฉ ํžŒํŠธ (How to Use This Knowledge) **์–ธ์ œ ์ด ์ง€์‹์„ ์“ฐ๋Š”๊ฐ€:** - *(TODO)* **์–ธ์ œ ์“ฐ๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€:** - *(TODO)* ## ๐Ÿงช ๊ฒ€์ฆ ์ƒํƒœ (Validation) - **์ •๋ณด ์ƒํƒœ:** needs_review - **์ถœ์ฒ˜ ์‹ ๋ขฐ๋„:** A - **๊ฒ€ํ†  ์ด์œ :** *(P-Reinforce Phase 1 ์ž๋™ ์ •๊ทœํ™”. ๋ณธ๋ฌธ ๊ฒ€์ฆ ํ•„์š”.)* ## ๐Ÿงฌ ์ค‘๋ณต ๊ฒ€์‚ฌ (Duplicate Check) - **๊ธฐ์กด ์œ ์‚ฌ ๋ฌธ์„œ:** *(TODO: ์ธ๋ฑ์„œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฆฌํฌํŠธ ์ฐธ์กฐ)* - **์ฒ˜๋ฆฌ ๋ฐฉ์‹:** UPDATE (์ž๋™ ์ •๊ทœํ™”) - **์ฒ˜๋ฆฌ ์ด์œ :** Phase 1 ์ •๊ทœํ™” โ€” ์˜› ํ…œํ”Œ๋ฆฟ/๋ˆ„๋ฝ ํ•„๋“œ ๋ณด๊ฐ•. ## ๐Ÿ•“ ๋ณ€๊ฒฝ ์ด๋ ฅ (Changelog) | ๋‚ ์งœ | ๋ณ€๊ฒฝ ๋‚ด์šฉ | ์ฒ˜๋ฆฌ ๋ฐฉ์‹ | ์‹ ๋ขฐ๋„ | |------|-----------|-----------|--------| | 2026-05-08 | P-Reinforce Phase 1 ์ •๊ทœํ™” (frontmatter + ํ—ค๋” ํ‘œ์ค€ํ™”) | UPDATE | A | ## ๐Ÿ’ป ์ฝ”๋“œ ํŒจํ„ด (Code Patterns) **ํŒจํ„ด 1:** *(TODO: ์ด ํ”„๋กœ์ ํŠธ ์ปจ๋ฒค์…˜ ๋ฐ˜์˜ํ•œ ๊ตฌ์กฐ ์Šค์ผˆ๋ ˆํ†ค)* ```text # TODO ``` ## ๐Ÿค” ์˜์‚ฌ๊ฒฐ์ • ๊ธฐ์ค€ (Decision Criteria) **์„ ํƒ A๋ฅผ ์จ์•ผ ํ•  ๋•Œ:** - *(TODO)* **์„ ํƒ B๋ฅผ ์จ์•ผ ํ•  ๋•Œ:** - *(TODO)* **๊ธฐ๋ณธ๊ฐ’:** > *(TODO)* ## โŒ ์•ˆํ‹ฐํŒจํ„ด (Anti-Patterns) - **[์•ˆํ‹ฐํŒจํ„ด]:** *(TODO: ๋ฌด์—‡์„ ํ•˜๋ฉด ์•ˆ ๋˜๋Š”๊ฐ€ + ์ด์œ  + ๋Œ€์‹  ๋ฌด์—‡์„)*