์ ๋ Egghead์ ๋ํ Dan์ Redux ์์ต์๋ฅผ๋ณด๊ณ ์์๊ณ ๋ถ๋ชจ ๊ตฌ์ฑ ์์๊ฐ ์ผ๋ถ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ง ์์ง๋ง ์์์๊ฒ ์ ๋ฌํ๊ธฐ ์ํด ๋ฐ์ดํฐ๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ํ์ง ๋ง์ญ์์ค. ์ด ๋ฐ์ดํฐ๊ฐ ํ์ํ ํ์ ๊ตฌ์ฑ ์์๋ณด๋ค connect
์ ์ฌ์ฉํฉ๋๋ค.
๋๋ ์ํ์ ํตํด ์๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ ์ซ์ดํ๊ธฐ ๋๋ฌธ์์ด ์กฐ์ธ์ ์ข์ํฉ๋๋ค. ๋๋ ์ด๊ฒ์ด ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ ๊ทผ ๋ฐฉ์์ด๋ผ๊ณ ์๊ฐํ์ง๋ง ์ต๊ทผ์ ํ๋ก์ ํธ์์ redux๋ฅผ ์ฌ์ฉํ๋ ํ์ฌ์ ํ ์คํธ ๊ณผ์ ๋ก "mini twitter"ํ๋ก์ ํธ๋ฅผ ๊ตฌํํ๊ณ ์์๊ธฐ ๋๋ฌธ์ ๊ทธ๊ณณ์์ ์ผํ๊ณ ์ถ์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ด ์ฝ๋๋ "React-way๊ฐ ๋๋ฌด ๋ง์ ๋ฉ์ฒญํ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์"๊ฑฐ๋ถ๋์์ต๋๋ค. ์ฌ์ค์ธ๊ฐ์?
๋๊ตฐ๊ฐ๊ฐ ์ดํด๋ณด๊ณ ์ถ๋ค๋ฉด ์ฌ๊ธฐ ๋ด ์ฝ๋๊ฐ ์์ต๋๋ค https://bitbucket.org/amorphius/minitwitter/overview
๋ฐ๋ผ์ ์๋ชป๋ ์ฝ๋๋ก ์ธ์ ๋ ์ด์ ๋ ์ฝ๋์ connect
๊ฐ ๋๋ฌด ๋ง๊ธฐ ๋๋ฌธ์
๋๋ค.
ํดํผ ๋ฏธ๋์์ ์ด๋์?
์ฐ๋ฆฌ๋ ์ด์ ๋ฒ์ ์ ๋ฌธ์์์ ๋ ์ฐ๊ฒฐ๋ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ๋งํ์ง๋งํ๋ฌผ ์ปฌํธ๊ฐ ์ผ๋ง๋ ๋ ์ง ์์ํ์ง ๋ชปํ์ต๋๋ค. ๐ ์, ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฒ์ ์ข
์ข
๊ณผ์์ด์ง๋ง ๋ชจ๋ ๊ฒ์ ๋งจ ์์ ๋๋ ๊ฒ์
๋๋ค! dispatch
๋ฅผ ์ป๊ธฐ ์ํด ์ฐ๊ฒฐํ๋ ๊ฒ์ ํนํ ๋ฌดํดํ๋ฏ๋ก์ด ์์
์ ์์ฃผ ์ํํ๋ ๊ฒ์ ๋ํด ๋์์ง ์์์ผํฉ๋๋ค.
๊ทํ์ ์ฝ๋๋ ๋์๊ฒ ์ ๋์ ์ผ๋ก ๊ด์ฐฎ์ ๋ณด์ ๋๋ค. ๐
๊ฐ์ฌํฉ๋๋ค. ์ ์ด๋ ๋๋ ๋ด ์ฝ๋๊ฐ ๊ด์ฐฎ๊ณ ์๋ง๋ ๋ ๋์ ํ์ฌ์์ ์ผํ ๊ฒ์ด๋ผ๋ ๊ฐ๋ ฅํ ์ฃผ์ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. :)
ํ์ง๋ง ์ฌ์ ํ connect
์ด (๊ฐ) ๊ณผ๋ํ ์๋๋ฆฌ์ค๋ฅผ ์ด๋ฏธ์ง ํ ์ ์์ต๋๋ค. ์ด ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋ถ๋ชจ ์ปจํธ๋กค์์ ์์ ์ปจํธ๋กค๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ฑฐ๋ ์ฝ๋์ connect
๋ฅผ ์ถ๊ฐํด์ผํ๋ ๊ท์น์ ํ์
ํ๊ธฐ ์ํด์ด ๊ธฐ์ ์ ๊ฐ๋ฐํ๋ ๋ฐฉ๋ฒ (ํนํ ์์ ๋ฐ์ดํฐ ๋ฉ์ด๋ฆฌ๋ฅผ ์ฝ๋ ๊ฒฝ์ฐ) ์์ ์์)?
์ฑ์์ ๋ง์ connect
์์ ์ด๋ค ์ข
๋ฅ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๊น?
Redux์ ๊ตฌ๋ ์ ์๋ฆผ ํ๋ก์ธ์ค๋ ๋ชจ๋ ๊ตฌ๋ ์ ์ฝ๋ฐฑ์ ์คํํ๋ ๊ฐ๋จํ ๋ฃจํ์ด๋ฏ๋ก ๋ถ๋ช ํ O (n)์ ๋๋ค. ์ด๋ก ์ ์ผ๋ก ๊ตฌ๋ ์ ์ฝ๋ฐฑ์ด ๋ณต์กํ ์์ ์ ์ํํ๊ฑฐ๋ ๊ตฌ๋ ์ ์๊ฐ _ ๋งค์ฐ _ ํฌ๊ฒ ์ฆ๊ฐํ๋ฉด ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค.
์ค์ ๋ก๋ ๋ณ ๋ฌธ์ ๊ฐ๋์ง ์์ ๊ฒ์ ๋๋ค. ํ์ค์ ์ผ๋ก ๋ฌธ์ ๊ฐ๋๊ธฐ ์ ์ ๋ง์ ์์ ์ด 1 ์ด์ ๋ฐ์ก๋๋ ์์ฒ ๊ฐ์ ํ์ฑ ๊ตฌ๋ ์ด ์์ด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. (์๋ง๋ ์ต๊ทผ์ MobX / Redux ๋น๊ต๊ฐ ๊ด๋ จ์ด ์์ง ์๋ ํ) ๋๋ ๊ทธ๊ฒ์ ๊ฒ์ฆํ๊ธฐ ์ํด ์ง์ ํ ์์๋ ํน์ ๋ฒค์น ๋งํฌ๋ฅผ ํ์ฌ๋ก์๋ ์์ง ๋ชปํฉ๋๋ค.
์ ๋ฐ์ ์ผ๋ก, ๋๋ ๋น์ ์ด ๊ณ ์ ์ ์ธ "์๋ํ๊ณ , ์ฌ๋ฐ๋ฅด๊ฒ ๋ง๋ค๊ณ , ๋นจ๋ฆฌ ๋ง๋ค๊ธฐ"์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ฅด๋ ๊ฒ์ด ์์ ํด์ผํ๋ค๊ณ ์๊ฐํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฅ์ด ์ ๋๋ก ์๋ํ๋๋กํ๋ ์ฝ๋๋ฅผ ์์ฑํ์ญ์์ค. ์์ฑํ ๋ด์ฉ์๋ณด๊ณ ํ์ํ ๊ฒฝ์ฐ ๊ตฌ์กฐ๋ฅผ ์กฐ์ ํ์ฌ ๋ ์ดํดํ๊ธฐ ์ฝ์ต๋๋ค. ๋๋ฆฌ๊ฒ ๋๊ปด์ง๋ฉด ์ค์ ๋ก ๋๋ฆฐ ๋ถ๋ถ์ ์ธก์ ํ๊ณ ๋ฒค์น๋งํนํ๊ณ ์์ ํฉ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ฐ๋ฆฌ๋ ์ด์ ๋ฒ์ ์ ๋ฌธ์์์ ๋ ์ฐ๊ฒฐ๋ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ๋ ๊ฒ์ด ๋ ๋ซ๋ค๊ณ ๋งํ์ง๋งํ๋ฌผ ์ปฌํธ๊ฐ ์ผ๋ง๋ ๋ ์ง ์์ํ์ง ๋ชปํ์ต๋๋ค. ๐ ์, ๋ชจ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฒ์ ์ข ์ข ๊ณผ์์ด์ง๋ง ๋ชจ๋ ๊ฒ์ ๋งจ ์์ ๋๋ ๊ฒ์ ๋๋ค!
dispatch
๋ฅผ ์ป๊ธฐ ์ํด ์ฐ๊ฒฐํ๋ ๊ฒ์ ํนํ ๋ฌดํดํ๋ฏ๋ก์ด ์์ ์ ์์ฃผ ์ํํ๋ ๊ฒ์ ๋ํด ๋์์ง ์์์ผํฉ๋๋ค.๊ทํ์ ์ฝ๋๋ ๋์๊ฒ ์ ๋์ ์ผ๋ก ๊ด์ฐฎ์ ๋ณด์ ๋๋ค. ๐