๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

22.02.18 TIL

by ___Jin 2022. 2. 18.

Redux

Achievement Goals

์ƒํƒœ ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์™œ ํ•„์š”ํ•œ์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

-๋งŽ์€ ์ปดํฌ๋„ŒํŠธ ์‚ฌ์ด์—์„œ ํ”„๋กญ์Šค๋ฅผ ๋‚ด๋ ค์ฃผ๊ธฐ ๊ฐ„ํŽธํ•˜๋‹ค.

-์Šคํ…Œ์ดํŠธ๋ฅผ ํ•œ๊ตฐ๋ฐ์—์„œ ๊ด€๋ฆฌํ•˜๋‹ˆ ์—๋Ÿฌ ํ•ธ๋“ค๋ง์ด ์‰ฝ๋‹ค.

Redux (ํ˜น์€ Flux Pattern)์—์„œ ์‚ฌ์šฉํ•˜๋Š” Action, Reducer ๊ทธ๋ฆฌ๊ณ  Store์˜ ์˜๋ฏธ์™€ ํŠน์ง•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

-Action: ์–ด๋–ค์•ก์…˜์„ ์ทจํ• ์ง€ ์ •์˜ํ•ด๋†“์€ ๊ฐ์ฒด

-Reducer: ํ˜„์žฌ์˜ state์™€ Action์„ ์ด์šฉํ•ด์„œ ์ƒˆ๋กœ์šด state๋ฅผ ๋งŒ๋“ค์–ด ๋‚ด๋Š” pure function

-Store: state๊ฐ€ ๊ด€๋ฆฌ๋˜๋Š” ์˜ค์ง ํ•˜๋‚˜๋ฟ์ธ ์ €์žฅ์†Œ

Redux์˜ 3๊ฐ€์ง€ ์›์น™์ด ๋ฌด์—‡์ด๋ฉฐ, ์ฃผ์š” ๊ฐœ๋…๊ณผ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐ๋˜๋Š”์ง€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

-๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋Š” ๊ฐ™์€๊ณณ์—์„œ ๊ฐ€์ ธ์˜จ๋‹ค.

-์ƒํƒœ๋Š” ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ๋‘๊ณ , action๊ฐ์ฒด๋กœ๋งŒ ๋ณ€๊ฒฝํ•œ๋‹ค.

-reducer ๋ณ€๊ฒฝ์€ ์ˆœ์ˆ˜ํ•จ์ˆ˜๋กœ๋งŒ ํ•œ๋‹ค.

Presentational ์ปดํฌ๋„ŒํŠธ์™€ Container ์ปดํฌ๋„ŒํŠธ์˜ ๊ฐœ๋…์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค.

-Presentation component: ์˜ค์ง ๋ทฐ๋งŒ์„ ๋‹ด๋‹นํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ(์Šคํƒ€์ผ์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ณ , ์Šคํ† ์–ด ์ ‘๊ทผ ๊ถŒํ•œ์ด ์—†๊ณ , props๋กœ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.state๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๋Š” ๊ฒฝ์šฐ์—” ๋ณดํ†ต ui์— ๊ด€๋ จ๋œ ๊ฒƒ์ด์–ด์•ผํ•œ๋‹ค.)

-Container component: ์Šคํƒ€์ผ์ด ์—†์œผ๋ฉฐ, ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ์ปดํฌ๋„ŒํŠธ์™€ ์ปจํ…Œ์ด๋„ˆ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š”๊ฒƒ์„ ๋‹ด๋‹นํ•œ๋‹ค.(๋ฆฌ๋•์Šค์— ์ง์ ‘์ ‘๊ทผํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ) 

 

์ด๊ตฌ์กฐ๋กœ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜๋ฉด ํ”„๋กœ์ ํŠธ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›Œ์ง€๊ณ , ์ปดํฌ๋„ŒํŠธ์˜ ์žฌ์‚ฌ์šฉ๋ฅ ๋„ ์˜ฌ๋ผ๊ฐ„๋‹ค.

Redux hooks(useSelector, useDispatch)๋ฅผ ์‚ฌ์šฉํ•ด store ๋ฅผ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.

useSelector()๋Š” ์ปดํฌ๋„ŒํŠธ์™€ state๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ์—์„œ useSelector ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด store์˜ state์— ์ ‘๊ทผ

useDispatch()๋Š” Action ๊ฐ์ฒด๋ฅผ Reducer๋กœ ์ „๋‹ฌํ•ด ์ฃผ๋Š” ๋ฉ”์„œ๋“œ.Action์€ ํด๋ฆญ ๋“ฑ์˜ ์ด๋ฒคํŠธ๊ฐ€ ์ผ์–ด๋‚˜๋Š” ์ปดํฌ๋„ŒํŠธ์— ์žˆ๋‹ค.

 

-์‰ฝ์ง€ ์•Š์ง€๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค... ใ… 

-๋ฒ„ํŠผ์ด ํด๋ฆญ๋˜๋ฉด, 

1.์ด๋ฒคํŠธ ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ๋ถˆ๋ ค์ง€๋ฉด Dispatch์— action๊ฐ์ฒด๊ฐ€ ์ „๋‹ฌ๋˜๊ณ ,

2. ์•ก์…˜์€ reducer๋ฅผ ํ˜ธ์ถœํ•ด์„œ reducer๋Š” ์•ก์…˜์˜ ํƒ€์ž…๊ฐ’๊ณผ ๊ฐ™์€ ๋ถ€๋ถ„์„ ์ฐพ์•„ ์‹คํ–‰(์ˆœ์ˆ˜ํ•จ์ˆ˜๋กœ)ํ•˜์—ฌ store์˜ state๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค.

  

๋Š๋‚€์ .

props ๊ตฌ๋ฉ์ด์—์„œ ๋ˆ„๊ฐ€ ์†๋‚ด๋ฐ€๊ธธ๋ž˜ ๋ดค๋”๋‹ˆ ๋ฆฌ๋•์Šค์˜€๋‹ค.

ํ•˜์ง€๋งŒ ํ˜ธ๋ฝํ˜ธ๋ฝ ํ•˜์ง€์•Š์€ ์ฐฉํ•œ์นœ๊ตฌ.

 
 
์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€~

๋Œ“๊ธ€