230412(์)
๐ ์ฑ์ฅ์ผ์ง 4.0
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
๐ณ (1.0)ํค์๋
์ต๋ํ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌ, ์ถํ์ ๋ณด๋ฉด์ ์ค์ค๋ก ์ค๋ช
๐ (2.0)๊ฒฝํ ์์ฃผ๋ก
๋จ์ ์ ๋ณด๋ฅผ ์ ๋ฌํ๊ธฐ๋ณด๋ค ๋ฌด์์ ๋ฐฐ์ ๊ณ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์งง๊ณ ๊ฐ๋จํ๊ฒ ์์ฑ
โ๏ธ (3.0)์ ํด์ง ํ ํ๋ฆฟ์ ๋ง์ถฐ์
ํค์๋, ๊ฒฝํ ๋ชจ๋ ์ข๋ค. ๋ค๋ง ๋งค์ผ ์์ฑํ๊ธฐ๋ก ๋ง์ ๋จน์๋งํผ ํต์ฌ๋ง ๊ฐ๊ฒฐํ๊ฒ ์ ๋ฆฌํ ์ ์๊ฒ ํ ํ๋ฆฟ์ ์์ฑ
(3.1)230102๋ถํฐ ์์๋๋ ํ์ต์ ๊ดํ ๋ด์ฉ ์ถ๊ฐ
(3.2)230313๋ถํฐ ์ข๋ ๊ฒฝํ, ๊ฐ์ ์์ฃผ์ ๋ด์ฉ๋ ๋ด๊ธฐ!
๐พ (4.0)ํ์ต ํค์๋์์ ์ต๋ํ ๊ฐ๋จํ ์ ๋ณด ์ ๊ณต, ๊ณ ๋ฏผ์์ ๋ด ๊ฒฝํ์ ์์ธํ ์ ์!
๐ ์ค๋์ ํ์ต ํค์๋
๋ฐ๋ ธ๋ ๊ณ ๋ฏผ์ ํ์ ๋ค์ ํ๋ฒ์ ์ ๋ก๋ํด๋ณด๊ธฐ
4.10(์)
๊ณ ๋ฏผ ์ฌํญ
1. ์ ์ ๊น์ด์ง๋ ํด๋๊ตฌ์กฐโฆ ์ด๋ป๊ฒ ๊ด๋ฆฌํ ๊น..?
์์ ๊ฐ์ด ํด๋ ํ๋ ๋น MVC ํจํด์ผ๋ก ์ปดํฌ๋ํธ๋ฅผ ๊ตฌํํ๋ค๋ณด๋, ์ ์ ํด๋๊ฐ ๋๋ฌด ๊น์ด์ง๋ ๋จ์ ์ด ์๋ค. Model, View, Controller(์ฌ๊ธฐ์ Component)๋ง๋ค ํด๋๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ๋ ์๊ฒ ์ง๋ง, ์คํ๋ ค ์ปดํฌ๋ํธ ๋จ์์์๋ ์กฐ๊ธ ์ง์ ๋ถํ๋๋ผ๋ Component๋จ์๋ก ํ๋ ๊ฒ ์ผ๋จ์ ๋์ ๊ฒ ๊ฐ๋ค!
4.11(ํ)
๊ณ ๋ฏผ ์ฌํญ
1. ์ ๊ณ์ msw๊ฐ import ๋์ง ์๋ ์๋ฌ๊ฐ ๋ฐ์ํ ๊น..?!
์ ๋ง ๋ชจ๋ ์กฐ๊ฑด ๋ค ๊ฐ์ถ๊ณ ๊ณต์๋ฌธ์์์ ํ๋ผ๋๋๋ก ๋ค ํ๋๋ฐโฆ ๊ณ์ resolve failed msw
์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์ต๊ทผ release note(๊ฐ์ฅ ์ต์ ์ธ v1.2.1)๋ฅผ ๋ณด๋๊น ์ฝ 10์ผ ์ ์ import msw ์๋ฌ๊ฐ ์์ ๋์๋ค
๋ผ๋ ๋ฌธ๊ตฌ๊ฐ ์๋๋ฐโฆ
์ด ๋ฌธ์ ์ธ์ง ๊ณ์ ๋์ง ์๋๋ค. ๊ทธ๋ฌ๋ค ๋๋ถ๋ถ react์์ msw๋ฅผ ์ฌ์ฉํ๋ ์์ ๊ฐ ์๊ธธ๋ ํน์๋ ํด์ cra๋ก ํด๋๋ฅผ ๋ง๋ค๊ณ
๊ฑฐ๊ธฐ์ msw๋ฅผ ์ค์นํ๋, ์๋ฌด์ผ๋ ์๋ค๋ ๋ฏ์ด ์ mocking์ด ๋๋คโฆ ์ ํํ ์์ธ์ ๋ชจ๋ฅด๊ฒ ์ผ๋ ์ผ๋จ ๋ฒ๋ค๋ฌ์ ์ ๋ฌด๊ฐ ์ฐจ์ด๋ฅผ ๋ง๋ ๊ฒ ์๋๊น ์ถ๋ค..!
2. ์ด๋๊น์ง๊ฐ state๊ณ ์ด๋๊น์ง๊ฐ props์ธ๊ฐ
์ ๋ง ๋จ์ํ๊ฒ ์๊ฐํ๋ฉด ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธํํ
์ ๋ฌํ data๋ props
, ์ปดํฌ๋ํธ ์์ฒด๊ฐ ๊ฐ๊ณ ์์ผ๋ฉด์ ๋ณ๊ฒฝํ data๋ state
์ด๋ค. ๋ฌธ์ ๋ ์ข๋ ๊ทผ๋ณธ์ ์ผ๋ก ์ด data๋ฅผ ์ด๋ค ์ปดํฌ๋ํธ์์ ๊ด๋ฆฌํ๊ณ ์ฌ์ฉํ ๊ฑด๋ฐ?
์์ ์์๋๋ ๊ฒ ๊ฐ๋ค. ๊ทธ๋์ผ๋ง ์ด๊ฑธ props๋ก ์ ๋ฌํ ์ง, ํน์ state๋ก ์ค์ค๋ก ๊ด๋ฆฌํ๊ฒ ํ ์ง ์ ํ ์ ์๋ค. ๋, ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ๋ฐ์ดํฐ๋ง ๋ค๋ฅธ ๋์ผํ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด์ผํ ๋๋ ๋ฌด์กฐ๊ฑด props๋ก ์ ๋ฌํด์ผํ๋ค. ๊ทธ๋์ผ๋ง ๊ฐ์ ์ปดํฌ๋ํธ ํด๋์ค ํน์ ํจ์๊ฐ ๋ค๋ฅธ data๋ฅผ ์ธ์๋ก ๋ฐ์์ ์๊ธด ๊ฒ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ผ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค!
4.12(์)
๊ณ ๋ฏผ ์ฌํญ
1. ๊ฐ๊ฐ์ element์ event๋ ์ด๋ป๊ฒ ๋ฑ๋กํ ๊น..?
์ฒ์์ view์์ event ๋ฑ๋ก๋ถํฐ ํธ๋ค๋ฌ ๊ด๋ฆฌ๊น์ง ์ ๋ถํ๋ ค ํ๋ค. view๊ฐ ์ข ์ปค์ง๊ฒ ์ง๋ง, ๊ทธ๋ ๊ฒ ํ๋ ๊ฒ ์ข๋ ์ง๊ด์ ์ด๊ณ ํธํ ๋๋..? ๊ทธ๋ฌ๋ค ๋ฌธ๋ ๋ฆฌ์กํธ์์ onclick์ผ๋ก ์ ๋ฌํ๋ ํธ๋ค๋ฌ๋ ํ๋์ props ์ฆ, ์ํ๋ผ๋ ์๊ฐ์ด ๋ค์๋ค. ํด์ component ๋จ์์ ํธ๋ค๋ฌ๋ฅผ ๋ฉ์๋๋ก ๊ตฌํํ๊ณ ์ด๋ฅผ setState๋ฅผ ํตํด ์ ๋ฌํ๋ฉด ์ด ํธ๋ค๋ฌ๋ฅผ ๋ฐ์์ view์์ ์ด๋ฒคํธ๋ฅผ ๋ฑ๋กํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ง๊ธ ๋ด๊ฐ ๊ตฌํํ๋ ์ฝ๋์์ component๊ฐ ๋๋ฌด ์ปค์ง๋ ๋๋์ด์ง๋ง, ์ด๊ฒ ์ข๋ ๋ฆฌ์กํธ ์ปดํฌ๋ํธ์ค๋ฝ๊ฒ ๊ตฌํํ ๊ฒ ๊ฐ๋ค.
๐ ์์ฝ ๋ฐ ํ๋ฃจ ๊ฐ๋จ ํ๊ณ
MVC ํจํด์ผ๋ก ๋ง์ด ๊ณ ์ํ์ง๋งโฆ(์์งํ ์ด์ ๋ ์๋ณด๊ณ ์ถโฆ) ๋๋ถ์ ๊ฐ๋ฐ์์ ์ค๊ณ, ์ํคํ ์ณ, ๋์์ธ ํจํด์ด ์ผ๋ง๋ ์ค์ํ์ง ์๊ฒ ๋์๋ค. ํ์คํ ์ด๋ ํ ๊ท์น์ ๊ฐ๊ณ ๊ฐ๋ฐ์ ์งํํ๋, ์ถํ์ ์ฝ๋๋ฅผ ์์ ํ๊ธฐ๊ฐ ์ ๋ง์ ๋ง ํธํ๋ค. ๋๋ฌด ํฌ๊ฒ ์์ ๋๋ฅผ ํด์น๋ฉด ์๋๊ฒ ์ง๋ง, ์ ๋นํ ๋ฒ์์์ ์ด๋ค ํจํด๋๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ๋ค์ ์์ฃผ ์ ์ฉํ ๊ฒ ๊ฐ๋ค.
์ค๋์ ์ ์ฌ์ผ๋ก ๋ง๋ผ์น๊ถ๋ฅผ ๋จน์๋๋ฐ, ๋๋ฌด ๋งค์ ๋ค. ์ง๊ธ ์ด ๊ธ์ ์ ๋ ์๊ฐ์๋ ์์ด ๋ถ๊ธ๋ถ๊ธโฆ ๋น๋ถ๊ฐ ๋งค์ด ๊ฑด ํผํด์ผ์ง.
์ค๋์ ์ํ ์
- MVC ํจํด์ ์ฌ์ฉํด์ ๋ฏธ์ ๋ค์ ํด๊ฒฐํ ์
- ์ด ๋, state๋ก(์ ํํ๋ props๋ก) ์ด๋ฒคํธ ํธ๋ค๋ฌ๋ฅผ ์ ๋ฌํ๊ณ View์์๋ ์ด๋ฒคํธ ๋ฑ๋ก๋ง ํ๊ฒ ํ๊ฑฐ!(์ญํ ๋ถ๋ฆฌ๊ฐ ์ ๋ ๋๋)
์ค๋์ ๋ณด์ํ ์
- Flux ์ํคํ ์ฒ ๊ณต๋ถ๋ฅผ ๋ชปํ๋ค. ๋ด์ผ๋ถํฐ Flux ์ํคํ ์ฒ ๊ณต๋ถํ๊ณ ์ง์ ๊ตฌํ๋ ์กฐ๊ธ์ ํด๋ณด์!
์ฐธ๊ณ
- ์์