Skip to content

Latest commit

ย 

History

History
32 lines (24 loc) ยท 2.62 KB

PropsDrillingSol.md

File metadata and controls

32 lines (24 loc) ยท 2.62 KB

Props Drilling?

  • props๋ฅผ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋กœ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฑฐ์น˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค.
  • ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ โ†’ ์ค‘๊ฐ„ ์ปดํฌ๋„ŒํŠธ1 โ†’ ์ค‘๊ฐ„ ์ปดํฌ๋„ŒํŠธ 2โ†’ โ€ฆ โ†’ ์ตœ์ข… ์ปดํฌ๋„ŒํŠธ
  • ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ตœ์ข… ์ปดํฌ๋„ŒํŠธ๋กœ props๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด ์ค‘๊ฐ„ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๊ฑฐ์นœ๋‹ค.
  • ์ด depth๊ฐ€ ๊นŠ์–ด์งˆ ์ˆ˜๋ก ์ƒํƒœ๋ฅผ ์ถ”์ ํ•˜๊ธฐ ์–ด๋ ค์›Œ์ง€๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด์กฐ๊ฑด Prop Drilling์œผ๋กœ props๋“ค์„ ๋ถˆํ•„์š”ํ•œ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๊ฑฐ์น˜๋„๋ก ํ•˜์ง€ ์•Š๊ณ  ๋ณ„๋„์˜ ์ƒํƒœ๊ด€๋ฆฌ๊ฐ€ ๊ผญ ํ•„์š”ํ•˜๋‹ค.

ํ•ด๊ฒฐ์ฑ…?

  1. Context API
    • ๋ฆฌ์•กํŠธ์˜ ์ปดํฌ๋„ŒํŠธ ํŠธ๋ฆฌ ๋‚ด์—์„œ ์ „์—ญ ์ƒํƒœ๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•
    • ์ค‘๊ฐ„ ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ props๋ฅผ ๋„˜๊ธฐ์ง€ ์•Š๊ณ ๋„ ์ตœ์ข… ์ปดํฌ๋„ŒํŠธ์—๊ฒŒ ์ƒํƒœ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋‹ค (prop drilling ๋ฐฉ์ง€)
  2. Redux
    • ์ค‘์•™ ์ง‘์ค‘์‹ Storage์™€ ์ƒํƒœ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•œ Reducer๋ฅผ ์‚ฌ์šฉํ•จ
    • ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๋”ฐ๋ผ์„œ Reducer ๋“ฑ์˜ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ๋น„๊ต์  ์‰ฌ์›€
    • Action, Reducer, Action Creator ๋“ฑ์˜ ์ฝ”๋“œ๋ฅผ ๋ชจ๋‘ ์ž‘์„ฑํ•ด์•ผ ํ•จ.
  3. Recoil
    • ๋น„๊ต์  ์ตœ๊ทผ์— ๋‚˜์˜จ ์ƒˆ๋กœ์šด ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    • Facebook์‚ฌ์—์„œ ๊ฐœ๋ฐœ
    • ๊ฐ€์žฅ React์Šค๋Ÿฌ์šด ์ƒํƒœ๊ด€๋ฆฌ๋ผ๋Š” ์ฒ ํ•™์„ ๊ฐ–๊ณ ์žˆ์Œ
  4. MobX
    • Redux์˜ ์—ฌ๋Ÿฌ ์ ์„ ๋ณด์™„ํ•˜์—ฌ ๋‚˜์˜จ ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
    • Redux๋ณด๋‹ค ์กฐ๊ธˆ ๋” ๊ฐ์ฒด ์ง€ํ–ฅ์ ์ด๋ฉฐ, Immutable.js ์™€ ๊ฐ™์€ ๋ถˆ๋ณ€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ตณ์ด ์‚ฌ์šฉํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ํŠน์ง•

๋‚˜๋Š” ์ด๊ฑธ ์จ๋ณด๊ณ  ์‹ถ๋‹ค!

์ €๋Š” Recoil์„ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค!

๋น„๊ต์  ์ตœ๊ทผ์— ๋‚˜์˜จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ€์žฅ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์‹ถ๊ณ , ๋˜ ์ดˆ์‹ฌ์ž๊ฐ€ ์‹œ์ž‘ํ•˜๊ฒŒ ์ ๋‹นํ•œ ์ , ์ž‘์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ์— ๊ณผ๋„ํ•œ ๋ณด์ผ๋Ÿฌ ํ”Œ๋ ˆ์ดํŠธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์—์„œ ํ˜„์žฌ ์ €์˜ ๊ฐœ๋ฐœ ์‹ค๋ ฅ๊ณผ ๋™์•„๋ฆฌ ํ˜‘์—… ํ”„๋กœ์ ํŠธ๋ผ๋Š” ๊ทœ๋ชจ์— ๊ฐ€์žฅ ์ ํ•ฉํ•œ ํˆด์ด ์•„๋‹๊นŒ ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค! ๋˜ React์™€๋„ ๊ฐ€์žฅ ์–ด์šธ๋ฆฌ๋Š” ๋„๊ตฌ๋ผ๋Š” ์ ์—์„œ๋„ ์ €ํฌ๊ฐ€ ์›น ๊ฐœ๋ฐœ์„ ๋ฆฌ์•กํŠธ๋กœ ํ•˜๋Š” ๋งŒํผ ์ƒํƒœ๊ด€๋ฆฌ๋Š” Rocoil๋กœ ์‚ฌ์šฉํ•ด๋ณด๋Š” ๊ฒƒ๋„ ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์š”!

์ถ”๊ฐ€๋กœ ๋‹ค๋ฅธ Redux๋‚˜ Context API๊ฐ™์ด ๊ธฐ์กด์— ์˜ค๋žซ๋™์•ˆ ์‚ฌ์šฉ๋˜์—ˆ๋˜ ์ข…๋ฅ˜๋“ค์€ ๊ทธ๋งŒํผ ๋ ˆํผ๋Ÿฐ์Šค๋„ ๋งŽ๊ณ  ํ˜ผ์ž ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ž˜ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™์ง€๋งŒ, Recoil์€ ์ตœ๊ทผ์— ๋‚˜์™€์„œ ํƒ€ ๋„๊ตฌ๋“ค์— ๋น„ํ•ด ๋ ˆํผ๋Ÿฐ์Šค๋‚˜ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๋ถ€์กฑํ•œ ๋งŒํผ SOPT์—์„œ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž ์นœ๊ตฌ๋“ค๊ณผ ํ•จ๊ป˜ ๊ณต๋ถ€ํ•˜๊ณ  ์‹ค์Šตํ•ด๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด ํฐ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹น.