230714(๊ธ)
๐ค ์ฑ์ฅ์ผ์ง 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ํ๋๊น), ์ธ์ ๋ ๋ณดํต ์ฟ ํค๋ฅผ ๊ฐ์ด ์ด๋ค๋ ๊ฒ ๋ฑ๋ฑ์ ์๊ฒ ๋ ๊ฒ ์ฐธ ์ข์๋ค.
๐พ ์ค๋์ ๊ตํ
๋ฐฐ์๋ณด์. ์ฒ์์ ๋๋ ค์ด ๊ฒ๋ค๋ ๋ง์ ๋ฐฐ์๋ณด๋ฉด ๊ทธ๋ฆฌ ์ด๋ ต์ง ์๋๋ผ.
๐ชต ์ฐธ๊ณ
- ์ฟ ํค์ ์ธ์ ๊ฐ๋
- ๋ก๊ทธ์ธ ์ธ์ฆ ๋ฐฉ์ ์ด๋ค ๊ฒ ์ข์๊น? Session VS JWT
- Session ๊ทธ๋ฆฌ๊ณ Stateless
- ๋ค์ค ์๋ฒ ํ๊ฒฝ์์ Session์ ์ด๋ป๊ฒ ๊ณต์ ํ๊ณ ๊ด๋ฆฌํ ๊น?