Redux
์ ์ญ ์ํ ๊ด๋ฆฌ
JavaScript ๋ฑ์ ์ฒ์ ์ ํ ๋ ์ ์ญ ๋ณ์๋ฅผ ๋จ์ฉํ๋ ๊ฒ์ ์ข์ง ์๋ค๊ณ ๋ฐฐ์ ์ง๋ง, ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ ์ญ ์ํ๊ฐ ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋ค.
์๋ก ๋ค๋ฅธ ์ปดํฌ๋ํธ๊ฐ ์ฌ์ฉํ๋ ์ํ์ ์ข
๋ฅ๊ฐ ๋ค๋ฅธ ๊ฒฝ์ฐ, ๊ผญ ์ ์ญ ์ํ์ผ ํ์๋ ์๋ค, ์ถ์ฒ(source)๊ฐ ๋ฌ๋ผ๋ ๋๋ค๋ ๋ป์ด๋ค.
ํ์ง๋ง ์๋ก ๋ค๋ฅธ ์ปดํฌ๋ํธ๊ฐ ๋์ผํ ์ํ๋ฅผ ๋ค๋ฃฌ๋ค๋ฉด, ์ด ์ถ์ฒ๋ ์ค์ง ํ ๊ณณ์ด์ด์ผ ํ๋ค. ๋ง์ผ ์ฌ๋ณธ์ด ์์ ๊ฒฝ์ฐ, ๋ ๋ฐ์ดํฐ๋ ์๋ก ๋๊ธฐํ(sync) ํ๋ ๊ณผ์ ์ด ํ์ํ๋ฐ, ์ด๋ ๋ฌธ์ ๋ฅผ ์ด๋ ต๊ฒ ๋ง๋ค๊ธฐ์ ํ ๊ณณ์์๋ง ์ํ๋ฅผ ์ ์ฅํ๊ณ ์ ๊ทผํด์ผ ํ๋ค. ์ฌ๊ธฐ์ โํ๋์ ์ถ์ฒโ๋ ๋ค๋ฅธ ๋ง๋ก ์ด์ผ๊ธฐ ํ๋ฉด โ์ ์ญ ๊ณต๊ฐโ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ์ํด, ๋์ผํ ๋ฐ์ดํฐ๋ ํญ์ ๊ฐ์ ๊ณณ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์ค๋๋ก ํ์. Single source of truth(์ ๋ขฐํ ์ ์๋ ๋จ์ผ ์ถ์ฒ) ์์น์ ํ๋ก ํธ์๋ ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ๊ณณ์์ ์ธ๊ธ๋๋ ์์น์ด๋ค.
๊ทธ๋ ๋ค๋ฉด ์ ์ญ์ผ๋ก ์ํ๋ฅผ ๊ด๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์ด๋ค ๊ฒ์ด ์์๊น?
์ฌ๋ฌ ์ฌ์ดํธ์์ ์ ๊ณตํ๋ ๋คํฌ๋ชจ๋ ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ ๋ชจ๋ ํ์ด์ง, ๋ชจ๋ ์ปดํฌ๋ํธ์ ๋คํฌ ๋ชจ๋ ํน์ ๋ผ์ดํธ ๋ชจ๋๊ฐ ์ ์ฉ์ด ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ด๋ฌํ ํ
๋ง ์ค์ ์ ์ ์ญ์ผ๋ก ๊ด๋ฆฌํ ์๋ ์๋ค.
๊ตญ์ ํ(Globalization) ์ค์ ๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค. ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ๋ ๋ธ๋ผ์ฐ์ ๋ ์ด์์ฒด์ ๊ฐ ํน์ ์ธ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์์์ ์์๋ด์, UI์ ํ์ํ ํ ์คํธ ๋ฆฌ์์ค๋ฅผ ๋ฐ๋ก ์ ์ฅํ ํ, ์ ์ญ ์ํ๋ก ๊ด๋ฆฌํ๊ธฐ๋ ํ๋ค. ์ด ๊ธฐ๋ฅ์ ๊ฒฝ์ฐ ๋ชจ๋ ์ปดํฌ๋ํธ์์ ์ฌ์ฉ์ ์ธ์ด๋ก ํํ์ด ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ ์ญ์์ ์ํ ๊ด๋ฆฌ๊ฐ ํ์ํ๋ค.
Props Drilling
Props Drilling
์ ์์ ์ปดํฌ๋ํธ์ state๋ฅผ prop๋ฅผ ํตํด ์ ๋ฌํ๊ณ ์ ํ๋ ์ปดํฌ๋ํธ๋ก ์ ๋ฌํ๊ธฐ ์ํด ๊ทธ ์ฌ์ด๋ props๋ฅผ ์ ๋ฌํ๋ ์ฉ๋๋ก๋ง ์ฐ์ด๋ ์ปดํฌ๋ํธ๋ค์ ๊ฑฐ์น๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๋ ํ์์ ์๋ฏธํ๋ค.
Props Drilling์ ๋ฌธ์ ์
Props์ ์ ๋ฌ ํ์๊ฐ 5ํ ์ด๋ด๋ก ๋ง์ง ์๋ค๋ฉด Props Drilling์ ํฐ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค. ํ์ง๋ง ๊ท๋ชจ๊ฐ ์ปค์ง๊ณ ๊ตฌ์กฐ๊ฐ ๋ณต์กํด์ง๋ฉด์ Props์ ์ ๋ฌ ๊ณผ์ ์ด ๋์ด๋๋ค๋ฉด ์๋์ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
- ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋งค์ฐ ๋๋น ์ง๊ฒ ๋๋ค.
- ์ฝ๋์ ์ ์ง๋ณด์ ๋ํ ํ๋ค์ด์ง๋ค.
- state ๋ณ๊ฒฝ์ Props ์ ๋ฌ ๊ณผ์ ์์ ๋ถํ์ํ๊ฒ ๊ด์ฌ๋ ์ปดํฌ๋ํธ๋ค ๋ํ ๋ฆฌ๋ ๋๋ง์ด ๋ฐ์ํ๋ค. ๋ฐ๋ผ์, ์น ์ฑ๋ฅ์ ์ ์ํฅ์ ์ค ์ ์๋ค.
ํด๊ฒฐ ๋ฐฉ๋ฒ
๊ณผ๋ํ Props Drilling
์ ๋ฐฉ์งํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ปดํฌ๋ํธ์ ๊ด๋ จ ์๋ state๋ ๋ ์ ์์ผ๋ฉด ๊ฐ๊น์ด ์ ์งํ๋ ๋ฐฉ๋ฒ๊ณผ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์๋ค. ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ ์ญ์ผ๋ก ๊ด๋ฆฌํ๋ ์ ์ฅ์์์ ์ง์ state๋ฅผ ๊บผ๋ด์ธ ์ ์๊ธฐ ๋๋ฌธ์ Props Drilling
์ ๋ฐฉ์งํ๊ธฐ์ ๋งค์ฐ ํจ๊ณผ์ ์ด๋ค. ๋ค์ํ ์ํ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Redux, Context api, Mobx, Recoil ๋ฑ)์ด ์กด์ฌํ๋ค.
Leave a comment