# [[React Component Patterns|React Component Patterns]] ## ๐Ÿ“Œ Brief Summary React Component Patterns(๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ ํŒจํ„ด)์€ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•œ ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์„ค๊ณ„ํ•˜๋Š” ๊ตฌ์กฐ์  ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค [1, 2]. ๋‹จ์ˆœํ•œ ์†์„ฑ(Prop) ๊ธฐ๋ฐ˜์˜ ๊ฒฝ์ง๋œ ์„ค์ •์—์„œ ๋ฒ—์–ด๋‚˜ ์กฐํ•ฉ(Composition) ์ค‘์‹ฌ์˜ API๋กœ ์ „ํ™˜ํ•จ์œผ๋กœ์จ [[Prop Drilling|Prop Drilling]]์„ ์ค„์ด๊ณ , ๋†’์€ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์—ฐํ•œ UI๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ๋ชฉ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค [1, 3, 4]. ๋Œ€ํ‘œ์ ์ธ ํŒจํ„ด์œผ๋กœ๋Š” ์•„ํ† ๋ฏน ๋””์ž์ธ, ์ปดํŒŒ์šด๋“œ ์ปดํฌ๋„ŒํŠธ, ํ—ค๋“œ๋ฆฌ์Šค ์ปดํฌ๋„ŒํŠธ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค [2, 5, 6]. ## ๐Ÿ“– Core Content * **์†์„ฑ ๊ธฐ๋ฐ˜(Prop-Driven)์—์„œ ์กฐํ•ฉ ์ค‘์‹ฌ(Composition-Driven)์œผ๋กœ์˜ ์ „ํ™˜** ์ดˆ๊ธฐ ์ปดํฌ๋„ŒํŠธ๋Š” ๋ชจ๋“  ๋ ˆ์ด์•„์›ƒ๊ณผ ๋™์ž‘์˜ ๋ณ€์ˆ˜๋ฅผ ์†์„ฑ(Prop)์œผ๋กœ ์ „๋‹ฌ๋ฐ›์ง€๋งŒ, ์š”๊ตฌ์‚ฌํ•ญ์ด ๋Š˜์–ด๋‚ ์ˆ˜๋ก Prop์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ•˜๋ฉฐ ๋‚ด๋ถ€ ๋กœ์ง์ด ๊ฐ•ํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋˜๋Š” '๋ธ”๋ž™๋ฐ•์Šค' ํ˜•ํƒœ๊ฐ€ ๋˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค [7-9]. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, ์ƒํƒœ์™€ ๋™์ž‘ ๊ทœ์น™๋งŒ์„ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ œ๊ณตํ•˜๊ณ  ์‹ค์ œ ๋ ˆ์ด์•„์›ƒ๊ณผ ๊ตฌ์กฐ ๊ฒฐ์ •๊ถŒ์€ ์‚ฌ์šฉ์ž(Consumer)์—๊ฒŒ ๋„˜๊ธฐ๋Š” ์กฐํ•ฉ ์ค‘์‹ฌ ํŒจํ„ด์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค [4]. * **์•„ํ† ๋ฏน ๋””์ž์ธ ([[Atomic Design|Atomic Design]])** UI๋ฅผ ์›์ž(Atoms), ๋ถ„์ž(Molecules), ์œ ๊ธฐ์ฒด(Organisms), ํ…œํ”Œ๋ฆฟ(Templates), ํŽ˜์ด์ง€(Pages) ๋“ฑ 5๋‹จ๊ณ„์˜ ์ž…์ž์„ฑ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์ž…๋‹ˆ๋‹ค [2, 10-12]. ๋ฒ ์ด์Šค ์Šคํƒ€์ผ์„ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์–ด ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ํ™•์žฅ์— ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค [5, 13]. * **์ปดํŒŒ์šด๋“œ ์ปดํฌ๋„ŒํŠธ ([[Compound Components|Compound Components]])** ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ „์—ญ ์ƒํƒœ๋ฅผ ์†Œ์œ ํ•˜๊ณ , ์ž์‹ ์ปดํฌ๋„ŒํŠธ๋“ค์ด [[React Context|React Context]]๋ฅผ ํ†ตํ•ด ์•”์‹œ์ ์œผ๋กœ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜๋ฉฐ ํ•˜๋‚˜์˜ ๋‹จ์œ„๋กœ ํ˜‘๋ ฅํ•˜๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค [5, 14-16]. HTML์˜ `