๐Ÿšค ์„ฑ์žฅ์ผ์ง€ 6.0

์ฑ… ํ–‰๋ณตํ•œ ์ด๊ธฐ์ฃผ์˜์ž(์›จ์ธ ๋‹ค์ด์–ด)์˜ ๋‚ด์šฉ์— ์ž๊ทน๋ฐ›์•„ ์‹œ์ž‘ํ•˜๋Š” ์†Œ๋ฐ•ํ•œ ์„ฑ์žฅ๊ธฐ๋ก

์‚ด์•„์žˆ๋Š” ๊ฝƒ๊ณผ ์ฃฝ์€ ๊ฝƒ์€ ์–ด๋–ป๊ฒŒ ๊ตฌ๋ณ„ํ•˜๋Š”๊ฐ€?
์„ฑ์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ์‚ด์•„ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.
์ƒ๋ช…์˜ ์œ ์ผํ•œ ์ฆ๊ฑฐ๋Š” ์„ฑ์žฅ์ด๋‹ค!

๐ŸŒพ (4.0)ํ•™์Šต ํ‚ค์›Œ๋“œ์—์„œ ์ตœ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์ •๋ณด ์ œ๊ณต, ๊ณ ๋ฏผ์—์„œ ๋‚ด ๊ฒฝํ—˜์„ ์ž์„ธํžˆ ์ ์ž!
๐ŸฅŠ (5.0)ํ•™์Šต ํ‚ค์›Œ๋“œ๋Š” ํ•œ์ค„์˜ ํ•ต์‹ฌ์œผ๋กœ๋งŒ ์ •๋ฆฌ, ์„ฑ๊ณต/์‹คํŒจ ์ผ์ง€ ์ž‘์„ฑํ•˜๊ธฐ! ์ด ๋•Œ, ์‹คํŒจ์˜ ๊ฒฝํ—˜์€ ์ž์„ธํžˆ ์ ๊ธฐ!
๐Ÿ‰ (6.0)<์™„์ „ ๊ฐœํŽธ!!!> ๋งค์ผ ์Šต๊ด€์ ์œผ๋กœ ํ•ต์‹ฌ๋งŒ ์ ์„ ์ˆ˜ ์žˆ๊ฒŒ ํ”„๋ ˆ์ž„ ๋ณ€๊ฒฝ. ์„ฑ๊ณต๋ณด๋‹จ ์‹คํŒจ์— ์ดˆ์ ์„ ๋งž์ถ”๊ธฐ.

  • ๐Ÿ‰ (6.1)<์ˆ˜์ •> ๋งค๋ฒˆ ์„ฑ๊ณต, ์‹คํŒจ๋ฅผ ๋”ฐ๋กœ ์ ๋Š” ๊ฒƒ๋ณด๋‹จ ๊ฒฝํ—˜์œผ๋กœ ํ‘œํ˜„ํ•˜์ž

๐ŸŒˆ ์˜ค๋Š˜์˜ ๊ฐ์ •

์ง„์งœ ์—ด์‹ฌํžˆ ์‚ด๊ณ  ์žˆ๋‹ค. ๋ฟŒ๋“ฏํ•˜๊ณ  ๋ณด๋žŒ์ฐจ๋‹ค. ๋” ๊ณ„์† ๋‚˜์•„๊ฐ€๊ณ  ์‹ถ๊ณ  ๋” ๋งŽ์ด ๋ฐฐ์šฐ๊ณ  ์‹ถ๋‹ค. ์ด๋Ÿฐ ๊ฐ์ •์„ ๋Š๋ผ๊ณ  ์ ์„ ์ˆ˜ ์žˆ์Œ์— ๊ฐ์‚ฌํ•œ ํ•˜๋ฃจ๋‹ค.

๐Ÿซง ์˜ค๋Š˜์˜ ๊ณ ๋ฏผ

๊ฐ๊ฐ์˜ reducer์—์„œ ์ดˆ๊ธฐ ์ƒํƒœ๊ฐ’์„ ์ „๋‹ฌํ•˜์ง€ ์•Š๊ณ , combineReducers ํ›„์— createStoreํ•  ๋•Œ ์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์—†์„๊นŒ?

๊ฒฐ๋ก ๋งŒ ๋งํ•˜๋ฉด ์•ˆ๋˜๋Š” ๊ฑธ๋กœ! rootReducer๋ฅผ ์ƒ์„ฑํ•  ๋•Œ, combineReducers์— ๊ฐ reducer๋“ค์„ ๋‹ด์•„ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ด ๋•Œ, ๋ฆฌ๋•์Šค๊ฐ€ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฐ reducer๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ๊ฐ’์„ ๋ฐ›๋Š”๋‹ค. ์ฆ‰, ์ดˆ๊ธฐ๊ฐ’์ด ์—†์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ฐ๊ฐ์˜ reducer์— ์ดˆ๊ธฐ ์ƒํƒœ๊ฐ’์„ ์ „๋‹ฌํ•ด์ค˜์•ผ ํ•œ๋‹ค.

HTTP์˜ stateless ๋ฉด์—์„œ ๋ดค์„ ๋•Œ, session ๊ธฐ๋ฐ˜์˜ ๋ฐฉ์‹์€ ์ ์ ˆํ•˜์ง€ ๋ชปํ•œ ๊ฑฐ ์•„๋‹Œ๊ฐ€?

stateless์˜ ์˜๋ฏธ๋งŒ์„ ์‚ดํŽด๋ณด๋ฉด ์„ธ์…˜์€ statelessํ•˜์ง€ ์•Š๊ธฐ์— ์ ์ ˆํ•˜์ง€ ์•Š๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๊ทธ์ธ ํ›„ ํšŒ์›์˜ ๋กœ๊ทธ์ธ ์œ ๋ฌด๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๋•Œ, HTTP์˜ statelessํ•œ ์„ฑ์งˆ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋งค ์š”์ฒญ๋งˆ๋‹ค ํšŒ์›์˜ ๋กœ๊ทธ์ธ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์€ ํšจ์œจ์ ์ด์ง€ ์•Š๋‹ค. ์ด๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด ์„ธ์…˜๊ณผ ๊ฐ™์€ state๋ฅผ ๋ถ€์—ฌํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ๊ธฐ๋Šฅ์˜ ํšจ์œจ๋ฉด์—์„œ๋Š” ์ ์ ˆํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

โ˜€๏ธ ์˜ค๋Š˜์˜ ๊ฒฝํ—˜

Redux์˜ Action, Action Creator, Reducer ๊ทธ๋ฆฌ๊ณ  combineReducers

๋ฆฌ๋•์Šค๋ฅผ Flux ์•„ํ‚คํ…์ฒ˜์˜ ๊ตฌํ˜„์ฒด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์™œ ๊ทธ๋Ÿฐ์ง€ ์กฐ๊ธˆ์€ ์•Œ ๊ฒƒ ๊ฐ™๋‹ค. state๋ฅผ ๋ณ€๊ฒฝํ•˜๊ธฐ ์œ„ํ•ด action์„ createํ•˜๊ณ  ํ•ด๋‹น action์„ dispatch๋ฅผ ํ†ตํ•ด reducer์—๊ฒŒ ๋ฐœ์†กํ•œ๋‹ค. ์ด๋ฅผ ๋ฐ›์€ reducer๋Š” action์— ๋”ฐ๋ผ ์—…๋ฐ์ดํŠธ๋œ state๋ฅผ ๋‚ด๋†“๊ฒŒ ๋˜๊ณ  ์ด๋ฅผ ํ†ตํ•ด UI๋ฅผ ๊ทธ๋ฆฐ๋‹ค. ์ด๋ ‡๊ฒŒ ๋‹จ๋ฐฉํ–ฅ ํ๋ฆ„์ธ Flux ์•„ํ‚คํ…์ฒ˜๊ฐ€ ๊ตฌํ˜„๋œ๋‹ค. ์ฒ˜์Œ์—” ์™œ ์ด๋Ÿฐ ํ๋ฆ„์„ ๊ฐ€์ ธ๊ฐ€์•ผํ•˜๋‚˜ ํ–ˆ๋Š”๋ฐ ์•„์ง ์ฝ”๋“œ๊ฐ€ ์งง์•„์„œ ๊ทธ๋Ÿฐ๊ฐ€โ€ฆ ๊ต‰์žฅํžˆ ํŽธํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ์ด์ „์— ์ง„ํ–‰ํ–ˆ๋˜ ๋ฆฌ์•กํŠธ ํ”„๋กœ์ ํŠธ๋“ค์€ ๋„๋Œ€์ฒด ์ƒํƒœ๊ฐ€ ์–ด๋–ป๊ฒŒ ํ˜๋Ÿฌ๊ฐ€๋Š”์ง€ ์•Œ๊ธฐ๊ฐ€ ์–ด๋ ค์›Œ์„œ ์ถ”ํ›„์— ๋ฆฌํŒฉํ† ๋ง์ด๋‚˜ ๋””๋ฒ„๊น…ํ•˜๋ ค๋ฉด ํ•œ์ฐธ cmd + ํด๋ฆญ์œผ๋กœ ํƒ€๊ณ ํƒ€๊ณ  ๊ฐ€์•ผํ–ˆ๋Š”๋ฐโ€ฆ ๋‹จ๋ฐฉํ–ฅ ํ๋ฆ„์„ ์ž˜ ์œ ์ง€ํ•ด์ฃผ๋ฉด ์ฐธ ํŽธ๋ฆฌํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ์–ด๋–ค ๋ฉด์—์„œ๋Š” TS๋ฅผ ์ฒ˜์Œ ์ผ์„ ๋•Œ ๋Š๋‚Œ์ด๋‹ค. ์•ž์— ์ค€๋น„ํ•  ๊ฒŒ ๋งŽ์ง€๋งŒ ์ž˜ ์ค€๋น„ํ•˜๋ฉด ๊ทธ ๋’ค์—๋Š” ์ •๋ง ํŽธํ•œ ๋Š๋‚Œ..?!

์„ธ์…˜๊ณผ ์ฟ ํ‚ค

๊ทธ ๋™์•ˆ ๊ทธ๋ƒฅ ๋‹จ์ˆœํ•˜๊ฒŒ ์ฟ ํ‚ค๋Š” ํด๋ผ, ์„ธ์…˜์€ ์„œ๋ฒ„์— ์ €์žฅํ•˜๋Š” ์‚ฌ์šฉ์ž ์ •๋ณด ๋Š๋‚Œ์œผ๋กœ๋งŒ ์•Œ์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋Œ€์ถฉ ํด๋ผ์—์„œ ๊ด€๋ฆฌํ•˜๋‹ˆ๊นŒ ๋ณด์•ˆ ์ƒ ์ข‹์ง€ ์•Š์„ ๊ฑฐ ๊ฐ™๊ณ  ์„œ๋ฒ„์—์„œ ๊ด€๋ฆฌํ•˜๋‹ˆ๊นŒ ๊ทธ๋‚˜๋งˆ ๋ณด์•ˆ์— ์œ ๋ฆฌํ•˜๊ณ โ€ฆ ๊ทธ๋Ÿฐ๋ฐ ์ด๋Ÿฐ ๋ถ€๋ถ„๋“ค๋ง๊ณ ๋„ ์ฟ ํ‚ค์™€ ์„ธ์…˜์˜ ๋ผ์ดํ”„์‚ฌ์ดํด์ด๋ผ๋“ ์ง€, ์ „๋‹ฌ ๋ฐฉ๋ฒ•, ๋“ฑ์žฅ ์ด์œ (HTTP๊ฐ€ statelessํ•˜๋‹ˆ๊นŒ), ์„ธ์…˜๋„ ๋ณดํ†ต ์ฟ ํ‚ค๋ฅผ ๊ฐ™์ด ์“ด๋‹ค๋Š” ๊ฒƒ ๋“ฑ๋“ฑ์„ ์•Œ๊ฒŒ ๋œ ๊ฒŒ ์ฐธ ์ข‹์•˜๋‹ค.

๐Ÿพ ์˜ค๋Š˜์˜ ๊ตํ›ˆ

๋ฐฐ์›Œ๋ณด์ž. ์ฒ˜์Œ์—” ๋‘๋ ค์šด ๊ฒƒ๋“ค๋„ ๋ง‰์ƒ ๋ฐฐ์›Œ๋ณด๋ฉด ๊ทธ๋ฆฌ ์–ด๋ ต์ง€ ์•Š๋”๋ผ.

๐Ÿชต ์ฐธ๊ณ