230713(๋ชฉ)
๐ค ์ฑ์ฅ์ผ์ง 6.0
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
๐พ (4.0)ํ์ต ํค์๋์์ ์ต๋ํ ๊ฐ๋จํ ์ ๋ณด ์ ๊ณต, ๊ณ ๋ฏผ์์ ๋ด ๊ฒฝํ์ ์์ธํ ์ ์!
๐ฅ (5.0)ํ์ต ํค์๋๋ ํ์ค์ ํต์ฌ์ผ๋ก๋ง ์ ๋ฆฌ, ์ฑ๊ณต/์คํจ ์ผ์ง ์์ฑํ๊ธฐ! ์ด ๋, ์คํจ์ ๊ฒฝํ์ ์์ธํ ์ ๊ธฐ!
๐ (6.0)<์์ ๊ฐํธ!!!> ๋งค์ผ ์ต๊ด์ ์ผ๋ก ํต์ฌ๋ง ์ ์ ์ ์๊ฒ ํ๋ ์ ๋ณ๊ฒฝ. ์ฑ๊ณต๋ณด๋จ ์คํจ์ ์ด์ ์ ๋ง์ถ๊ธฐ.
- ๐ (6.1)<์์ > ๋งค๋ฒ ์ฑ๊ณต, ์คํจ๋ฅผ ๋ฐ๋ก ์ ๋ ๊ฒ๋ณด๋จ ๊ฒฝํ์ผ๋ก ํํํ์
๐ ์ค๋์ ๊ฐ์
๋น๊ฐ ๋ง์ด ์ค๋ ๋ ์กฐ์ฉํ ๋ ธ๋ ํ์ด๋๊ณ ์ฝ๋ฉํ๋ ๊ฑด ์ฐธ ์ฆ๊ฒ๊ณ ํ๋ณตํ๊ตฌ๋~
๐ซง ์ค๋์ ๊ณ ๋ฏผ
- ReactDOM.createPortal๋ก ๋ง๋ component์ ์ด๋ป๊ฒ ๋ณต์กํ props๋ฅผ ์ ๋ฌํ ๊ฒ์ธ๊ฐ?
- ํ๋ก์ ํธ MVP๋ฅผ ์ด๋ป๊ฒ ์ก์ ๊ฒ์ธ๊ฐ?
- ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก props๋ฅผ ์ ๋ฌํ๊ณ ์์ ์ปดํฌ๋ํธ์์ ์ด๋ฅผ state๋ก ๋์ด ๋ณ๊ฒฝํ๋ ๊ฑด ์ข์ ๋ฐฉ๋ฒ์ธ๊ฐ?
- input์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด๋ ์์ํจ์์ ์๋ฐฐ๋๋ ๊ฒ ์๋๊ฐ?
โ๏ธ ์ค๋์ ๊ฒฝํ
ReactDOM.createPortal๋ก ๋ง๋ component์ ๋ณต์กํ props ์ ๋ฌํ๊ธฐ
portal์ ํตํด ๋ง๋ ๋ชจ๋ฌ ์ฐฝ์์ ์ญ์ ๋ฒํผ์ ๋๋ฅด๋ฉด ํน์ ๋๋ค๋ฅผ ์ง์ฐ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผํ๋ค. UI์ ์ผ๋ก๋ ๋ชจ๋ฌ ๊ตฌํ์ ์ด๋ ต์ง ์์๋ค. ํ๋ฐ ํน์ ๋๋ค๋ฅผ ์ง์ฐ๊ธฐ ์ํด ๊ทธ ๋๋ค์ id ๊ฐ์ ๊ฐ์ ธ์์ filter ์ฒ๋ฆฌํด์ผํ๋๋ฐ, ๋ชจ๋ฌ์ ์ํด ๊ตฌํ๋ portal ์ปดํฌ๋ํธ์ ๋๋ค id ๊ฐ์ ์ ๋ฌํ ๋ฐฉ๋ฒ์ด ์์๋ค. ๊ณ ๋ฏผํ๋ ๋์ ์ ํ๋(์ญ์ ํ ์ง๋ง์ง๋ฅผ ์ํด) ๋๋ค์ id๋ฅผ state๋ก ๋ด๊ณ ๊ทธ state๋ฅผ portal ์ปดํฌ๋ํธ์ ์ญ์ ๋ฒํผ์ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํํ๋ค. ๋ณ๊ฑฐ ์๋ ๊ฒ ๊ฐ์๋ฐ, ์ฒ์์ ์ ๊ทธ๋ ๊ฒ ํค๋งค๊ณ ๊ณ ๋ฏผํ๋์งโฆ๐
ํ๋ก์ ํธ MVP๋ฅผ ์ด๋ป๊ฒ ์ก์ ๊ฒ์ธ๊ฐ?
๊ธฐํ์ด ๋ฐ๋ก ์๋ค๋ณด๋ MVP๋ฅผ ์ด๋์๋ถํฐ ์ด๋ป๊ฒ ์ก์์ผํ ์ง ์ ์๊ฐ ์์๋ค. ๋๋ฌด ์ต์ํ์ ๊ธฐํ๋ง ํ์๋, ๋์ค์ ์ถ๊ฐ๋ ๊ฒ์ผ๋ก ์์ธก๋๋ ๊ธฐ๋ฅ ํ๋๋ฅผ ์ถ๊ฐํ๋ ๋ฐ์๋ ๊ฝค ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆด ๊ฒ ๊ฐ๊ณ โฆ ๊ทธ๋ ๋ค๊ณ ๊ท๋ชจ๋ฅผ ํค์ฐ์๋ ์ด๊ฒ MVP๊ฐ ๋ง๋..? ์ถ์๋ค. ๋ค์ ๋งํด ๋น์ฆ๋์ค ๋ก์ง์ ๊ดํ MVP๋ฅผ ์ก๋ ๊ฒ ์ฝ์ง ์์๋ค. ๊ทธ๋์ ๋๋ ์ผ๋จ ํ๋ก ํธ์๋ ๊ฐ๋ฐ์์ด๊ธฐ ๋๋ฌธ์ UI์ ๊ดํ MVP๋ฅผ ์ก๊ธฐ๋ก ํ๋ค. ํ๋ก์ ํธ์ UI๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐ์ ํ์ํ ์ปดํฌ๋ํธ๋ฅผ ๋จผ์ ๊ตฌํํ๋ ๋ฐฉํฅ์ผ๋ก ๊ฐ๊น ํ๋ค. ๊ทผ๋ฐโฆ ๋์์ด๋๋ ์์ด์ ์ผ๋จ ์ ๋ง ์ต์ํ์ ๋์์ธ์ผ๋ก ํผ๊ทธ๋ง๋ฅผ ๊ทธ๋ ธ๋ค.(ใ ใ ใ ใ ใ ใ ) ๊ฐ๋ฐํ๋ฉด์ ๋์์ธ์ ๋ณด์ํด๊ฐ๋ ๋ฐฉ์์ผ๋ก ํด๋ณด๋ คํ๋ค.
๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก props๋ฅผ ์ ๋ฌํ๊ณ ์์ ์ปดํฌ๋ํธ์์ ์ด๋ฅผ state๋ก ๋์ด ๋ณ๊ฒฝํ๋ ๊ฑด ์ข์ ๋ฐฉ๋ฒ์ธ๊ฐ?
์ฒ์์ ์ด๋ ๊ฒ ํ๋ ๊ฒ ๋๋ฌด ํํ์ง๋ง ์์ํจ์๋ฅผ ์๋ฐฐํ๋ ๊ฒ ๊ฐ์์ ์๋ชป๋ ๊ฒ์ด๋ผ ์๊ฐํ๋ค. ํ๋ฐ ์๊ฐํด๋ณด๋ props๋ก ์ ๋ฌ๋ฐ์ ๊ฐ์ state๋ก ๋๋ ๊ฑด ์์ํจ์๋ฅผ ์๋ฐฐํ๋ ๊ฒ ์๋๋ผ๋ ๊ฒ์ ๊นจ๋ฌ์๋ค. ์์ํจ์๋ฅผ ์๋ฐฐํ๋ ๊ฑด props๋ฅผ ์ง์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด๋ค. props๋ฅผ ์ง์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค. ํด์ props๋ฅผ state๋ก ๋๊ณ setState ํจ์๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ props ์์ฒด๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์๋๋ผ ์๋ก์ด state๋ฅผ ๋ง๋ค์ด์ ๋ณ๊ฒฝํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์์ํจ์๋ฅผ ์๋ฐฐํ์ง ์๋๋ค.
๐พ ์ค๋์ ๊ตํ
๋น ์ค๋ ๋ , ๋ ธ๋ ํ์ด๋๊ณ ๊ฐ๋ฐํ๋ฉด ์ ๋๋น.
๊ธฐํ์์ ๋์์ด๋ ์์ด ํ๋ก์ ํธ๋ฅผ ์์ํ๋ ๊ฑด ์ฐธ ์ฝ์ง ์๋ค. ๊ทธ๋๋ ์ด๋ ๊ฒ ์งํํ๋ ๋ฐฉ์๋ ์ฌ๋ฏธ์์ผ๋๊น..!
api ๋ช ์ธ๋ฅผ ๋ฐฑ์๋์ ์ ๋ง์ถฐ๋๋ ๊ฒ ์ผ๋ง๋ ์ค์ํ์ง ์๊ฒ ๋์๋ค. api ๋ช ์ธ๋ง ์ ๋ง์์ผ๋ฉด ๊ธ๋ฐฉ ํด๊ฒฐํ ๋ฌธ์ ์๋๋ฐ, ํ๋ก ํธ ๋ก์ง ๋ฌธ์ ์ธ ์ค ์๊ณ ํ์ฐธ์ ํค๋งธ๋คโฆ ์ ์ด์ ์ด๋ ๊ฒ ํ์ฐธ์ ํค๋งค์ผํ๋ ์ฝ๋์ธ ๊ฒ ๋ฌธ์ ์ผ์ง๋..? ๐ฅฒ
redux๋ฅผ ์์ข์ํ๋ ํธ์ด์๋๋ฐ(์ ๋๋ก ๋ฐฐ์ด ์ ๋ ์์ผ๋ฉด์ ๐คช), ๋ฐฐ์ฐ๋ฉด ๋ฐฐ์ธ์๋ก ๋ญ๊ฐ ๋งค๋ ฅ์ ์ด๋ค. ์กฐ๊ธ ํฌ๋ฐํ์ง๋ง ๋ญ๊ฐ ์ด์ฌํ ์ํ๊ด๋ฆฌํ๋ ค๊ณ ๋ ธ๋ ฅํ ํ์ ๋ค์ด ๋ณด์ธ๋ค๊ณ ํด์ผํ๋โฆใ ใ ใ ใ ใ
๐ชต ์ฐธ๊ณ
- ์์