header-img
Info :
728x90

๋ฆฌ์•กํŠธ๋กœ ์›น์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜๋ฉด, Redux dev tool์„ ์„ค์น˜ํ•˜๊ฒŒ ๋œ๋‹ค.

 

๊ฒŒ์‹œ๊ธ€์— ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ Redux์— ๋Œ€ํ•œ ๊ฐœ๋…๋ถ€ํ„ฐ ์งš๊ณ  ๊ฐ€๋„๋ก ํ•˜๊ฒ ๋‹ค.

 


โœจ Redux(๋ฆฌ๋•์Šค๋ž€)?

JavaScript(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ) ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๋ฉฐ, ๋ณธ์งˆ์€ Node.js ๋ชจ๋“ˆ์ด๋‹ค.

 

โœจ Redux์˜ 3๊ฐ€์ง€ ์›์น™

1. Single Source of Truth

- ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋Š” ํ•ญ์ƒ ๊ฐ™์€ ๊ณณ์—์„œ ๊ฐ€์ง€๊ณ  ์˜จ๋‹ค. ์ฆ‰, ์Šคํ† ์–ด๋ผ๋Š” ํ•˜๋‚˜๋ฟ์ธ ๋ฐ์ดํ„ฐ ๊ณต๊ฐ„์ด ์žˆ๋‹ค๋Š” ์˜๋ฏธ.

2. State is read-only

- ๋ฆฌ์•กํŠธ์—์„œ๋Š” setState ๋ฉ”์†Œ๋“œ๋ฅผ ํ™œ์šฉํ•ด์•ผ๋งŒ ์ƒํƒœ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅ.

- ๊ฐ™์€ ๋งฅ๋ฝ์œผ๋กœ, ๋ฆฌ๋•์Šค์—์„œ๋„ ์•ก์…˜(action) ์ด๋ผ๋Š” ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋งŒ ์ƒํƒœ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅ.

3. Changes are made with pure functions

- ๋ณ€๊ฒฝ์€ ์ˆœ์ˆ˜ํ•จ์ˆ˜๋กœ๋งŒ ๊ฐ€๋Šฅ. Reducer์™€ ์—ฐ๊ด€๋˜๋Š” ๊ฐœ๋….

- Store(์Šคํ† ์–ด) - Action(์•ก์…˜) - Reducer(๋ฆฌ๋“€์„œ)

 

โœจ Redux์˜ ์ƒํƒœ ๊ด€๋ฆฌ๋ฅผ ๋„์‹ํ™”ํ•ด๋ณด์ž.

๋ฐ์ดํ„ฐ๋Š” ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ํ˜๋Ÿฌ์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋Ÿฐ ๋ชจ์–‘์„ ๋„๊ฒŒ ๋œ๋‹ค.

โœจ Redux์—์„œ ์œ„์˜ ๊ฐœ๋…์„ ๊ตฌํ˜„ํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•

1. mapStateToProps()
2. Redux hooks

- ๋น„๊ต์  ์ตœ๊ทผ์— ๋‚˜์˜จ ๊ธฐ์ˆ .

- useSelector / useDispatch

 

โœจ Redux์˜ ์žฅ์ 

1. ์ˆœ์ˆ˜ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒํƒœ๋ฅผ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๋„๋ก ๋งŒ๋“ค์–ด์ค€๋‹ค.
2. ๋ณต์žกํ•œ ์ƒํƒœ๊ด€๋ฆฌ๋“ค๊ณผ ๋น„๊ตํ•˜๋ฉด, ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ๋น„๊ต์  ์‰ฌ์šด ํŽธ์ด๋‹ค.
3. ํฌ๋กฌ ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ์ธ Redux Dev Tool ์„ ์‚ฌ์šฉํ•˜์—ฌ action๊ณผ state log ๊ธฐ๋ก ์‹œ ๋””๋ฒ„๊น…์— ์œ ๋ฆฌํ•˜๋‹ค. 
4. ์ˆœ์ˆ˜ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— test(ํ…Œ์ŠคํŠธ)๋ฅผ ๋ถ™์ด๊ธฐ๊ฐ€ ์šฉ์ดํ•ด์ง„๋‹ค.

๐Ÿฑ‍๐Ÿ’ป Redux Dev Tool ์„ค์น˜๋ฐฉ๋ฒ•

 

1. ํฌ๋กฌ์„ ์ผ  ๋’ค, ๊ตฌ๊ธ€์—์„œ redux dev tools ๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค.

์ œ์ผ ์ƒ๋‹จ์˜ chrome.google.com ์˜ Redux DevTools ๋ฅผ ํด๋ฆญํ•˜๋„๋ก ํ•˜์ž.

ํ˜น์€ link ํด๋ฆญ > https://chrome.google.com/webstore/detail/redux-devtools/lmhkpmbekcpmknklioeibfkpmmfibljd 

 

Redux DevTools

Redux DevTools for debugging application's state changes.

chrome.google.com

 

2. ์„ค์น˜๋ฅผ ํ•˜๋ฉด ๋˜๋Š”๋ฐ, ํ•„์ž์˜ ๊ฒฝ์šฐ ์ด๋ฏธ ๊น”๋ ค์žˆ๊ธฐ ๋•Œ๋ฌธ์— 'Chrome์—์„œ ์‚ญ์ œ'๋ผ๋Š” ๊ธ€์˜ ๋ฒ„ํŠผ์ด ๋œฌ๋‹ค.

3. ์„ค์น˜๊ฐ€ ์™„๋ฃŒ ๋˜๋ฉด, redux dev tools ๋ฅผ ์‚ฌ์šฉํ•  ํ”„๋กœ์ ํŠธ์—์„œ store์„ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ์— Redux Devtools Extension์„ ์ถ”๊ฐ€ํ•ด์ฃผ๋ฉด ์™„๋ฃŒ.

const store = createStore(
	rootReducer,
	compose(
    	applyMiddleware(sagaMiddleware),
        window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
    )
);

4. ์‚ฌ์šฉ๋ฒ•: ๊ตฌํ˜„๋œ react app ํ™”๋ฉด์—์„œ F12(๊ฐœ๋ฐœ์ž๋„๊ตฌ) ๋ฅผ ๋ˆŒ๋Ÿฌ redux ๋ฅผ ํด๋ฆญํ•˜๊ณ  State, Action ๋“ฑ์„ ํ™•์ธํ•ด์ฃผ๋ฉด ๋œ๋‹ค.


์ด๋ ‡๊ฒŒ Redux Devtools ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด.. ์žฅ์ !

์ค‘๋ณต ๋ Œ๋”๋ง๋„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๊ณ 

ํšจ์œจ์ ์œผ๋กœ State๊ฐ’๋„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ 

๋” ์˜ˆ์˜๊ณ , ๋” ์•„๋ฆ„๋‹ค์šด Redux ์ฝ”๋“œ๋„ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋œ๋‹ค

 

 

 

 

 

 

 

 

 

 


์ฐธ๊ณ ๋ฌธํ—Œ

https://bigstar-vlog.tistory.com/47 

https://hanamon.kr/redux%EB%9E%80-%EB%A6%AC%EB%8D%95%EC%8A%A4-%EC%83%81%ED%83%9C-%EA%B4%80%EB%A6%AC-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC/

 

๋”๋ณด๊ธฐ
FRONTEND/React