็„ก์ œ

reducer / Redux / Redux Toolkit ๋ณธ๋ฌธ

<React>

reducer / Redux / Redux Toolkit

yo-u-loo 2026. 7. 20. 12:35

 

๐ŸŸก reducer / Redux / Redux Toolkit์˜ ๊ด€๊ณ„

reducer, Redux, Redux Toolkit์€ ๋ชจ๋‘ ์ƒํƒœ ๊ด€๋ฆฌ์™€ ๊ด€๋ จ๋˜์–ด ์žˆ์ง€๋งŒ ๊ฐ๊ฐ์˜ ์—ญํ• ์ด ๋‹ค๋ฅด๋‹ค.

  • reducer: ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ํ•จ์ˆ˜.
  • Redux: ์ „์—ญ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.
  • Redux Toolkit: Redux๋ฅผ ์‰ฝ๊ณ  ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  ๊ณต์‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ.

 

โ—ผ๏ธ reducer

reducer๋Š” ํ˜„์žฌ State์™€ Action์„ ๋ฐ›์•„ ์ƒˆ๋กœ์šด State๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

์ƒํƒœ๋ฅผ ์–ด๋–ป๊ฒŒ ๋ณ€๊ฒฝํ• ์ง€ ์ •์˜ํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋ฉฐ, Redux๋ฟ๋งŒ ์•„๋‹ˆ๋ผ React์˜ useReducer์—์„œ๋„ ์‚ฌ์šฉ๋œ๋‹ค.

(state, action) => newState

 

โ—ผ๏ธ Redux

Redux๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ „์—ญ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

Store๋ฅผ ์ค‘์‹ฌ์œผ๋กœ State๋ฅผ ๊ด€๋ฆฌํ•˜๋ฉฐ, Action → Dispatch → Reducer ๊ณผ์ •์„ ํ†ตํ•ด ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

์ฆ‰, reducer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „์—ญ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

โ—ผ๏ธ Redux Toolkit

Redux Toolkit(RTK)์€ Redux๋ฅผ ์‰ฝ๊ณ  ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“  Redux ๊ณต์‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋‹ค.

๊ธฐ์กด Redux์—์„œ ๋ฐ˜๋ณต์ ์œผ๋กœ ์ž‘์„ฑํ•ด์•ผ ํ–ˆ๋˜ Action, Reducer, Store ์„ค์ • ๋“ฑ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ API๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

๋Œ€ํ‘œ์ ์ธ API

  • configureStore()
  • createSlice()

ํ˜„์žฌ๋Š” Redux๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ Redux Toolkit ์‚ฌ์šฉ์ด ๊ณต์‹ ๊ถŒ์žฅ๋œ๋‹ค.

 

 

๐Ÿ“‹ reducer vs Redux vs Redux Toolkit ๐Ÿ“‹

๊ตฌ๋ถ„ reducer Redux Redux Toolkit
์ข…๋ฅ˜ ํ•จ์ˆ˜ ์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ Redux ๊ณต์‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
์—ญํ•  State ๋ณ€๊ฒฝ ์ „์—ญ State ๊ด€๋ฆฌ Redux๋ฅผ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉ
์‚ฌ์šฉ ์œ„์น˜ useReducer, Redux ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด Redux ํ”„๋กœ์ ํŠธ
๋Œ€ํ‘œ ๊ธฐ๋Šฅ State ๋ณ€๊ฒฝ ๋กœ์ง Store, Action, Dispatch ๊ด€๋ฆฌ configureStore(), createSlice()