[TIL] What is Redux ?

ํ˜ฑยท2023๋…„ 11์›” 10์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
29/85
post-thumbnail

Redux ๋ž€?

๐Ÿ‘‰ Javascript application๋“ค์˜ state(์ƒํƒœ)๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.
๐Ÿ‘‰ React์™€ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋ฉด์„œ ์œ ๋ช…ํ•ด์กŒ์œผ๋‚˜, React์— ์˜์กดํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์•„๋‹˜.
๐Ÿ‘‰ Angular, Vue.js, VanillaJS ๋“ฑ JavaScript ์–ธ์–ด ๋‚ด ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

https://ko.redux.js.org/

๋ฆฌ๋•์Šค๋ž€, "์ค‘์•™ state ๊ด€๋ฆฌ์†Œ" ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ฃผ๋Š” ํŒจํ‚ค์ง€(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)์ด๋‹ค.
๋ฆฌ๋•์Šค๋ฅผ "์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ" ๋ผ๊ณ  ์ฃผ๋กœ ํ‘œํ˜„ํ•œ๋‹ค.
์ „์—ญ ์ƒํƒœ (global state) ๋ฅผ ์ž˜ ๊ด€๋ฆฌํ•˜๋„๋ก ๋„์™€์ฃผ๋Š” ํŒจํ‚ค์ง€(๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ)์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

Redux ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

useState์˜ ๋ถˆํŽธํ•จ

์–ด๋–ค ์ปดํฌ๋„ŒํŠธ์—์„œ ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ๋กœ ์ƒ์„ฑํ•œ state๋ฅผ ๋ณด๋‚ด๊ณ ์ž ํ•  ๋•Œ props๋ฅผ ํ†ตํ•ด ๊ทธ ๊ฐ’์„ ๋ณด๋‚ด์ฃผ์—ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ props๋กœ state๋ฅผ ๊ณต์œ ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ถˆํŽธํ•œ ์ ์ด ์žˆ๋‹ค.

  1. ์ปดํฌ๋„ŒํŠธ์—์„œ ์ปดํฌ๋„ŒํŠธ๋กœ state๋ฅผ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„
  2. A ์ปดํฌ๋„ŒํŠธ์—์„œ C ์ปดํฌ๋„ŒํŠธ๋กœ ๊ฐ’์„ ๋ณด๋‚ผ ๋•Œ ๋ฐ˜๋“œ์‹œ B ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค. (A-B ๋ถ€๋ชจ ์ž์‹๊ด€๊ณ„, B-C ๋ถ€๋ชจ ์ž์‹๊ด€๊ณ„) => prop drilling
  3. ์ž์‹ ์ปดํฌ๋„ŒํŠธ์—์„œ ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ๋กœ ๊ฐ’์„ ๋ณด๋‚ผ ์ˆ˜ ์—†๋‹ค.

Redux๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

Local state & Global state

  • Local state (์ง€์—ญ ์ƒํƒœ) ๋ž€?
    • ์ปดํฌ๋„ŒํŠธ์—์„œ useState๋ฅผ ์ด์šฉํ•ด์„œ ์ƒ์„ฑํ•œ state
  • Global state (์ „์—ญ ์ƒํƒœ) ๋ž€?
    • ์ค‘์•™ state ๊ด€๋ฆฌ์†Œ์—์„œ ์ƒ์„ฑํ•œ state
    • ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒ์„ฑ๋˜์ง€ ์•Š๋Š”๋‹ค.

์ค‘์•™ state ๊ด€๋ฆฌ์†Œ์—์„œ state๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์–ด๋–ค ์ปดํฌ๋„ŒํŠธ์—์„œ state๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด, ์ปดํฌ๋„ŒํŠธ์˜ ์œ„์น˜์— ์ƒ๊ด€ ์—†์ด (๋ถ€๋ชจ ์ž์‹ ๊ด€๊ณ„์— ์ƒ๊ด€ ์—†์ด) state๋ฅผ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด๋ ‡๊ฒŒ ํŠน์ • ์ปดํฌ๋„ŒํŠธ์— ์ข…์†๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์ค‘์•™ state ๊ด€๋ฆฌ์†Œ์—์„œ ์ƒ์„ฑ๋œ state๋ฅผ Global state ๋ผ๊ณ  ํ•˜๊ณ , ์ด๋Ÿฌํ•œ ๊ฐ’๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ๊ณ  ํ‘œํ˜„ํ•œ๋‹ค.

์ •๋ฆฌ

  • Redux๋Š” ์ „์—ญ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ด๋‹ค.
  • Redux๋Š” useState๋ฅผ ํ†ตํ•ด ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๋ถˆํŽธํ•จ์„ ํ•ด์†Œํ•œ๋‹ค.
  • Redux๋Š” ์ค‘์•™ state ๊ด€๋ฆฌ์†Œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๊ณ , ๋ชจ๋“  state๋Š” ์ด ๊ณณ์—์„œ ์ƒ์„ฑ๋œ๋‹ค.
  • useState๋กœ ์ƒ์„ฑํ•œ state๋Š” Local State์ด๊ณ , Redux์—์„œ ์ƒ์„ฑํ•œ state๋Š” Global state์ด๋‹ค.
profile
๋Š๋ฆฌ๋”๋ผ๋„ ์กฐ๊ธˆ์”ฉ, ๊พธ์ค€ํžˆ

0๊ฐœ์˜ ๋Œ“๊ธ€