๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Frontend Dev/React

React์˜ Props Drilling๊ณผ ์ƒํƒœ๊ด€๋ฆฌ

๋ฐ˜์‘ํ˜•

๐Ÿ‘พ Props Drilling์ด๋ž€?

 

์ถœ์ฒ˜: https://shishirarora3.medium.com/best-method-for-props-drilling-in-react-485605f26b5c

 

 Props Drilling์€ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ state๋ฅผ props๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ ์‚ฌ์ด๋Š” props๋ฅผ ์ „๋‹ฌํ•˜๋Š” ์šฉ๋„๋กœ๋งŒ ์“ฐ์ด๋Š” ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๊ฑฐ์น˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ํ˜„์ƒ์„ ์˜๋ฏธํ•œ๋‹ค.

 

๐Ÿ‘พ Props Drilling์˜ ๋ฌธ์ œ์ 

• ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ๋‚˜๋น ์ง„๋‹ค.

• ์ฝ”๋“œ์˜ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์–ด๋ ต๊ฒŒ ๋œ๋‹ค.

• state ๋ณ€๊ฒฝ ์‹œ props ์ „๋‹ฌ ๊ณผ์ •์—์„œ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๊ด€์—ฌ๋œ ์ปดํฌ๋„ŒํŠธ๋“ค ๋˜ํ•œ ๋ฆฌ๋ Œ๋”๋ง์ด ๋ฐœ์ƒํ•œ๋‹ค. → ์›น ์„ฑ๋Šฅ์— ์•…์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ‘พ Props Drilling์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•

1. ์ปดํฌ๋„ŒํŠธ์™€ ๊ด€๋ จ ์žˆ๋Š” state๋Š” ๋  ์ˆ˜ ์žˆ์œผ๋ฉด ๊ฐ€๊นŒ์ด ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•

2. ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•
  → ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์ „์—ญ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ์ €์žฅ์†Œ์—์„œ ์ง์ ‘ state๋ฅผ ๊บผ๋‚ด์“ธ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— Props Drilling์„ ๋ฐฉ์ง€ํ•˜๊ธฐ์— ๋งค์šฐ ํšจ๊ณผ์ ์ด๋‹ค.

 

 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป example. Props Drilling ์˜ˆ์‹œ์™€ ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Redux ํ™œ์šฉ ์˜ˆ์‹œ

 example 1-1. props drilling

props๋ฅผ ์ œ์ผ ๊นŠ์€ ์ปดํฌ๋„ŒํŠธ๊นŒ์ง€ ๋‚ด๋ ค์ฃผ๊ธฐ

 

โฌ‡๏ธŽ

 example 1-2. Redux๋ฅผ ํ™œ์šฉํ•ด props drilling์„ ๊ฐœ์„ 

์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ props drilling ๊ฐœ์„ 

 

 

 

 

 example 2-1. Props Drilling์œผ๋กœ ์ธํ•œ ๋ถˆํ•„์š”ํ•œ ๋ฆฌ๋ Œ๋”๋ง ์˜ˆ์‹œ

Child6์— ์žˆ๋Š” ๐Ÿ‘‹ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด Child3์— ๋Š๋‚Œํ‘œ๊ฐ€ ํ•˜๋‚˜์”ฉ ์ถ”๊ฐ€๋˜๋Š” ๊ฐ„๋‹จํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜

Child3, Child6์ด ํ•˜๋‚˜์˜ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์ธ App์—์„œ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๊ณ , ์ด ๋•Œ๋ฌธ์— ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค App ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง ๋˜๋ฉด์„œ ๋ชจ๋“  ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฆฌ๋ Œ๋”๋ง ๋œ๋‹ค. ๋ณ€๊ฒฝ๋˜๋Š” ์ƒํƒœ์™€ ์—ฐ๊ด€์ด ์—†๋Š” ์ปดํฌ๋„ŒํŠธ๊นŒ์ง€ ๋ถˆํ•„์š”ํ•˜๊ฒŒ ๋ฆฌ๋ Œ๋”๋ง ๋˜๋Š” ๊ฒƒ์ด๋‹ค. (Console์„ ํ†ตํ•ด ํ™•์ธ ๊ฐ€๋Šฅ)

 

โฌ‡๏ธŽ

 example 2-2. Redux์˜ ๋ฆฌ๋ Œ๋”๋ง ์ตœ์ ํ™”

์œ„ ์˜ˆ์‹œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ Redux๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ค์ˆ˜ ์žˆ๋‹ค. ์ƒํƒœ์˜ ์˜ํ–ฅ์„ ๋ฐ›์•„ ํ™”๋ฉด์„ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ๋งŒ ๋ฆฌ๋ Œ๋”๋ง ๋œ๋‹ค. (Console์„ ํ†ตํ•ด ํ™•์ธ ๊ฐ€๋Šฅ)

 

 

 


์ถœ์ฒ˜: ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  SEB ์ˆ˜์—…์ž๋ฃŒ

โœ๏ธ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ์ •๋ณด๋‚˜ ๋” ๊ณต์œ ํ•  ๋‚ด์šฉ์ด ์žˆ์œผ๋ฉด ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์„ธ์š”!

์ฝ์–ด์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค ๐Ÿ˜Š

๋ฐ˜์‘ํ˜•