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

Frontend Dev/๐Ÿฅ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE ๋ถ€ํŠธ์บ ํ”„

Section3 Unit4 [React] ์ƒํƒœ ๊ด€๋ฆฌ - Redux

๋ฐ˜์‘ํ˜•


Section3 Unit4 [React] ์ƒํƒœ ๊ด€๋ฆฌ - Redux

 

๐Ÿ“Œ Chapter2. Redux

 Redux๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

 React์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์— ๋”ฐ๋ฅด๋ฉด ์ƒํƒœ๋Š” ์ƒํƒœ๊ฐ€ ์‚ฌ์šฉ๋˜๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ๊ณตํ†ต๋œ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์— ์œ„์น˜์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ ์ ˆํ•˜๋‹ค. 

์•„๋ž˜์™€ ๊ฐ™์ด ์ปดํฌ๋„ŒํŠธ3๊ณผ ์ปดํฌ๋„ŒํŠธ6์—์„œ ์ƒํƒœ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋ฉด ์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์— ์ƒํƒœ๋ฅผ ์œ„์น˜์‹œ์ผœ์•ผ ํ•œ๋‹ค.

 

React ์—์„œ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„

 

ํ•˜์ง€๋งŒ ์ด๋Ÿฐ ์ƒํƒœ ๋ฐฐ์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ๋กœ ๋‹ค์†Œ ๋น„ํšจ์œจ์ ์ด๋ผ๊ณ  ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ๋‹ค.

  1. ํ•ด๋‹น ์ƒํƒœ๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ, ์ปดํฌ๋„ŒํŠธ1, ์ปดํฌ๋„ŒํŠธ2๋„ ์ƒํƒœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง
  2. ์ƒํƒœ ๋Œ์–ด์˜ฌ๋ฆฌ๊ธฐ, Props ๋‚ด๋ ค์ฃผ๊ธฐ๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๊ฑฐ์ณ์•ผ ํ•จ
  3. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก ๋ฐ์ดํ„ฐ ํ๋ฆ„๋„ ๋ณต์žกํ•ด์ง
  4. ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐ๊ฐ€ ๋ฐ”๋€๋‹ค๋ฉด, ์ง€๊ธˆ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์™„์ „ํžˆ ๋ฐ”๊ฟ”์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Œ

 

Redux ์—์„œ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„

 

 

 Redux๋Š” ์ „์—ญ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ์†Œ์ธ Store๋ฅผ ์ œ๊ณตํ•จ์œผ๋กœ์จ React๊ฐ€ ์—ฌ๋Ÿฌ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฑฐ์ณ ์ƒํƒœ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 ๊ธฐ์กด React์—์„œ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„๊ณผ, Redux๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๋น„๊ตํ•ด ๋ณด๋ฉด, Redux๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„์ด ๋ณด๋‹ค ๋” ๊น”๋”ํ•ด์ง€๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.


 

 ์ด๋ฒˆ์— Redux๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์„ธ๋ฒˆ์ด๋‚˜ ๊ฐ์ž ๋‹ค๋ฅธ ๋ถ„๋“ค์—๊ฒŒ์„œ ์ถ”์ฒœ๋ฐ›์€ ๊ฐ™์€ ์˜์ƒ... ๐Ÿ˜‚

 ๋ฆฌ๋•์Šค๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ํ™•์‹คํžˆ ์ข‹์€ ์˜์ƒ์ธ ๊ฒƒ ๊ฐ™๋‹ค..! 

 


๐ŸŒ™  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

 ์˜ค๋Š˜ ํ•œ์ค„ ์š”์•ฝ : ๋ฆฌ๋•์Šค์— ๋Œ€ํ•œ ๊ธฐ๋Œ€๊ฐ์— ๊ฐ€๋“์ฐฌ ์ฑ„๋กœ ์˜ค๋Š˜ ํ•˜๋ฃจ๋ฅผ ์‹œ์ž‘ํ–ˆ์ง€๋งŒ ๋‚จ๋Š”๊ฑด ์ƒ์ฒ˜๋ฟ์ด์—ˆ๋‹ค๋Š”…

 ๋ฆฌ๋•์Šค, ๋งค์šฐ ํŽธํ•˜๊ณ  ์ข‹์„ ์ค„ ์•Œ์•˜๋Š”๋ฐ ์ฒ˜์Œ(?) ์‚ฌ์šฉํ•˜๋‹ˆ ๋„ˆ๋ฌด ์–ด๋ ต๊ณ  ํ—ท๊ฐˆ๋ ธ๋‹ค. porps drilling์€ ๋‹จ์ˆœํžˆ prop์„ ๊ณ„์†ํ•ด์„œ ์ „๋‹ฌํ•ด์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์ด ์žˆ์—ˆ๋˜ ๊ฒƒ์ด์ง€๋งŒ, ๋ฆฌ๋•์Šค๋Š” ๋ฐ์ดํ„ฐ์˜ ํ๋ฆ„๋„ ํ—ท๊ฐˆ๋ ธ๊ณ , ์ƒˆ๋กœ์šด ์šฉ์–ด๋“ค์˜ ๋“ฑ์žฅ๊ณผ redux์˜ ์ž‘๋™ ๋ฐฉ์‹ ์ž์ฒด๋ฅผ ์ดํ•ดํ•ด์•ผ ์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ ๋˜ํ•œ ์‰ฝ์ง€ ์•Š์•˜๋‹ค. ๊ทธ๋ž˜์„œ ์˜ค๋Š˜ ๊ณผ์ œ๋Š” ๊ฑฐ์˜ ์งœ์ง‘๊ธฐ๋กœ ๊ตฌํ˜„์„ ํ–ˆ๋Š”๋ฐ, ๊ทธ๋Ÿฌ๊ณ  ๋‚˜๋‹ˆ ๋ญ”๊ฐ€ ํ—ˆํƒˆํ–ˆ๋˜ ๊ธฐ๋ถ„.. ๐Ÿ˜ฎ‍๐Ÿ’จ ํŽ˜์–ด์™€ ๊ฐ™์ด ๋Œ€ํ™”๋ฅผ ํ•˜๋ฉด์„œ ๊ตฌํ˜„์„ ํ•˜๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ, ๋‚ด๊ฐ€ ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๋˜๋Š” ์ƒํƒœ๋กœ ํŽ˜์–ด ํ™œ๋™์„ ํ•˜๋‹ˆ ๊ทธ๊ฒŒ ์‰ฝ์ง€ ์•Š์•˜๋‹ค..ใ… 

 ์—ฌํŠผ ๊ทธ๋Ÿฌํ•˜์—ฌ ์Šคํ„ฐ๋””์—์„œ ๊ณต์œ ํ•ด์ค€ ๋…ธ๋งˆ๋“œ์ฝ”๋”์˜ Redux ๊ฐ•์˜(๋…ธ๋งˆ๋“œ ์ฝ”๋”์— ๋ฆฌ๋•์Šค ๊ฐ•์˜๋„ ์žˆ์—ˆ๊ตฐ?!)๋ฅผ ๋ณด๋ฉฐ ๋‹ค์‹œ ๊ณต๋ถ€๋ฅผ ํ•ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์œ ์–ดํด๋ž˜์Šค์—์„œ ์ œ๊ณตํ•ด์ค€ ๊ธ€๋กœ ๋œ ํ•™์Šต์ž๋ฃŒ๋ฅผ ๋ณด๋ฉฐ ์ •๋ฆฌ๋ฅผ ํ•œ ๋ฒˆ ํ–ˆ๋˜ ํ„ฐ๋ผ ์˜์ƒ์„ ๋ณด๋‹ˆ ์ดํ•ด๊ฐ€ ํ™•์‹คํžˆ ๋” ์ž˜ ๋˜๋Š” ๋“ฏ ํ–ˆ๊ณ , vanilla JS์™€ React์—์„œ์˜ Redux ํ™œ์šฉ์„ ๊ฐ๊ฐ ๋ณด์—ฌ์ค€๋‹ค๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๊ธฐ๋Œ€๊ฐ๋„ ์žˆ์—ˆ๋‹ค. ์ง€๊ธˆ์€ vanilla JS + Redux ํ•™์Šต์œผ๋กœ ๋ฆฌ๋•์Šค ํ™œ์šฉ์— ์กฐ๊ธˆ ์ต์ˆ™ํ•ด์กŒ๊ณ , ๋‚ด์ผ React + Redux ์กฐํ•ฉ์œผ๋กœ ๊ณต๋ถ€๋ฅผ ํ•˜๊ณ , ์ด๋ฒˆ ๊ณผ์ œ๋ฅผ ๋‹ค์‹œ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.

 ๋ฒŒ์จ ํ•œ ์ฃผ๊ฐ€ ์ง€๋‚˜๊ฐ„๋‹ค. ์ถœ๊ทผ์„ ์•ˆํ•˜๋Š”๋ฐ๋„ ์ฃผ๋ง์ด ๊ธฐ๋‹ค๋ ค์ง„๋‹ค. ํ•œ ์ˆจ ๋Œ๋ฆฌ๊ณ , ํ•œ ์ฃผ ๋™์•ˆ ๋ชปํ–ˆ๋˜ ๊ณต๋ถ€๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์ด ์ƒ๊ธด๋‹ค๋Š” ๊ฒƒ์— ์กฐ๊ธ‰ํ•จ์ด ์กฐ๊ธˆ ์ค„์–ด๋“œ๋Š” ๊ธฐ๋ถ„์ด๋‹ค.

๋ฐ˜์‘ํ˜•