# [[Prop Drilling|Prop Drilling]] ## ๐Ÿ“Œ Brief Summary Prop Drilling(ํ”„๋กญ ๋“œ๋ฆด๋ง)์€ React ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ค‘๊ฐ„ ๋‹จ๊ณ„์˜ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฑฐ์ณ prop์„ ํ•˜์œ„๋กœ ๊ณ„์† ๋‚ด๋ ค๋ณด๋‚ด๋Š” ํ˜„์ƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ปดํฌ๋„ŒํŠธ์— ์ˆ˜๋งŽ์€ prop์ด ์ƒ์„ฑ๋˜๊ณ  '๊ตฌ์„ฑ ์ง€์˜ฅ(configuration hell)'์ด ๋ฐœ์ƒํ•˜์—ฌ UI์˜ ์œ ์—ฐ์„ฑ์ด ๋–จ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค [1, 2]. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด React์—์„œ๋Š” [[Context API|Context API]]๋‚˜ [[Compound Components|Compound Components]] ๊ฐ™์€ ํŒจํ„ด์„ ํ™œ์šฉํ•˜์—ฌ ํ”„๋กญ ๋“œ๋ฆด๋ง์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค [2, 3]. ## ๐Ÿ“– Core 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]. ## ๐Ÿ”— Knowledge Connections - **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*