230404(ํ)
๐ ์ฑ์ฅ์ผ์ง 4.0
์ฑ
ํ๋ณตํ ์ด๊ธฐ์ฃผ์์(์จ์ธ ๋ค์ด์ด)
์ ๋ด์ฉ์ ์๊ทน๋ฐ์ ์์ํ๋ ์๋ฐํ ์ฑ์ฅ๊ธฐ๋ก
์ด์์๋ ๊ฝ๊ณผ ์ฃฝ์ ๊ฝ์ ์ด๋ป๊ฒ ๊ตฌ๋ณํ๋๊ฐ?
์ฑ์ฅํ๊ณ ์๋ ๊ฒ์ด ์ด์ ์๋ ๊ฒ์ด๋ค.
์๋ช ์ ์ ์ผํ ์ฆ๊ฑฐ๋ ์ฑ์ฅ์ด๋ค!
๐ณ (1.0)ํค์๋
์ต๋ํ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌ, ์ถํ์ ๋ณด๋ฉด์ ์ค์ค๋ก ์ค๋ช
๐ (2.0)๊ฒฝํ ์์ฃผ๋ก
๋จ์ ์ ๋ณด๋ฅผ ์ ๋ฌํ๊ธฐ๋ณด๋ค ๋ฌด์์ ๋ฐฐ์ ๊ณ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์งง๊ณ ๊ฐ๋จํ๊ฒ ์์ฑ
โ๏ธ (3.0)์ ํด์ง ํ ํ๋ฆฟ์ ๋ง์ถฐ์
ํค์๋, ๊ฒฝํ ๋ชจ๋ ์ข๋ค. ๋ค๋ง ๋งค์ผ ์์ฑํ๊ธฐ๋ก ๋ง์ ๋จน์๋งํผ ํต์ฌ๋ง ๊ฐ๊ฒฐํ๊ฒ ์ ๋ฆฌํ ์ ์๊ฒ ํ ํ๋ฆฟ์ ์์ฑ
(3.1)230102๋ถํฐ ์์๋๋ ํ์ต์ ๊ดํ ๋ด์ฉ ์ถ๊ฐ
(3.2)230313๋ถํฐ ์ข๋ ๊ฒฝํ, ๊ฐ์ ์์ฃผ์ ๋ด์ฉ๋ ๋ด๊ธฐ!
๐พ (4.0)ํ์ต ํค์๋์์ ์ต๋ํ ๊ฐ๋จํ ์ ๋ณด ์ ๊ณต, ๊ณ ๋ฏผ์์ ๋ด ๊ฒฝํ์ ์์ธํ ์ ์!
๐ ์ค๋์ ํ์ต ํค์๋
ํจํด ์ค๊ณํด๋ณด๊ธฐ
์ด๋ฒ ๊ธฐํ์ MVC ํจํด์ component ๋ฐฉ์์ ์ ์ฉํด๋ณด๊ณ ์ถ์ด์(MVC๋ ์ ๋๋ก ๋ฐฐ์ธ ๊ฒธ, component๋ ๋ง๋ค๊ฒธ!) ์ด๋ป๊ฒ ํ๋ฉด ํจ๊ณผ์ ์ผ๋ก ์ด ๋์ ์ ์ฉํ ์ ์์๊น ๊ณ ๋ฏผํด๋ณด์๋ค.
๊ฒฐ๋ก ๋ถํฐ ๋งํ๋ฉด MVC์์ Controller
์ ์ญํ ์ Component
์ ์ฃผ๋ ๊ฒ์ผ๋ก ํ๊ณ Model์ ์ค๋ก์ง ๋ฐ์ดํฐ, View๋ ํ๋ฉด๋ง ๋ด๋นํ๋ ๊ฒ์ผ๋ก ๊ฒฐ์ ํ๋ค. ๊ทธ๋ฌ๋ ์ค ๊ฐ๋งํ ์๊ฐํด๋ณด๋
state์ ๋ฐ๋ฅธ UI ๋๋๋ง์ด ์ผ์ด๋๋ React์ ๊ต์ฅํ ๋ฎ์๋ค๊ณ ๋๋ ์ ์์๋ค. ํด์ ์ด ๊ฐ๋
์ ๊ฐ๊ณ MVC ํจํด์ ์ด์ฉํ react class component ๋ง๋ค๊ธฐ
๋ก ๋๋ฆ ๊ฑฐ์ฐฝํ ๊ตฌํ์ ์์ํ๋ค.
export type Props = Record<string, string | number | boolean | []>;
export type State = Record<string, string | number | boolean | []>;
export interface Model {
setState(newState: State): void;
get state(): State;
}
export interface View {
getTemplate(state: State): string;
render(state: State): void;
get element(): HTMLElement;
}
๋จผ์ Props์ State์ ๋ํ ํ์ ์ ์ ์ํ๊ณ ์ฐ์ Model, View์ ๋ํ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํ์๋ค.(์ถํ ์์ฑํ ์ปดํฌ๋ํธ๋ค์ด ๋ชจ๋ Model, View๋ฅผ ๋ฐ๋ก ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ข๋ ํ์ฅ์ฑ์ ๋์ด๊ณ ์ถ์๋ค.)
๐ ์ค๋์ ๊ณ ๋ฏผ ํค์๋
Props์ State๋ฅผ ์ด๋ป๊ฒ ๋๋ ์ ๊ด๋ฆฌํด์ผํ ์ง ์ ๋งคํ๋คโฆ ์ผ๋จ State๋ Model์์ ๊ด๋ฆฌํ๋ ๊ฒ์ผ๋ก ํ๋ฉด ๋ ๊ฒ ๊ฐ์๋ฐ Props๋ ์ด๋ป๊ฒ ํ ๊นโฆ ์ ์ญ์ผ๋ก ์์ ๋นผ๋ ๋ ๊ฒ ๊ฐ๊ณ ์์ง ๊ณ ๋ฏผ์ด ๋๋ค. ์ด๋ ต์ง๋ง ์ฆ๊ฑฐ์ด ๊ณ ๋ฏผ์ด๋ค!!!
๐ ์์ฝ ๋ฐ ํ๋ฃจ ๊ฐ๋จ ํ๊ณ
๋๋ง์ ํ์ต ํจํด์ ์ ํด๋ฌ์ผ๊ฒ ๋ค.(์ด๋ฏธ ์ด๋์ ๋ ๋ง๋ค์ด์ง๊ธด ํ์ง๋งโฆ) ๊ทธ๋ฆฌ๊ณ ๊ทธ ํจํด์ ์ ์งํ๋ฉด์ ์๋ก์ด ๊ฒ๋ค์ ๊ณ์ ์๋ํด๋ณด๋ ค๊ณ ๋ ธ๋ ฅํด์ผ์ง. ๊ฐ๋์ ์์ ๊ฒ๋ค๊น์ง ๊ฐ๋ ์ ๋ฆฌํ๊ณ ๋ฌธ์ํํด์ผ๋๋ ๊ณ ๋ฏผ์ด ๋์ง๋ง, ๋๋ ๋๋๋ก ๋ด๊ฐ ๊ณ ๋ฏผํ๋ ๋ถ๋ถ๋ค ํน์ ์ ๋ง ์ค์ํ ๊ฐ๋ (์ด๋ฐ๊ฑด ๋ฐ๋ก ๋ธ๋ก๊ทธ์ ์์ฑํ์)๋ค๋ง ๋ค๋ฌ๊ณ ์ ๋ฆฌํ๋ ๊ฒ์ผ๋ก ํ์!
์ค๋์ ์ํ ์
- ์ผ๋จ ์ฝ๋ ์์ฑ์ ์์ํ ์
์ค๋์ ์์ฌ์ด ์
- ํด๋์ค ๋ค์ด์ด๊ทธ๋จ ์ค๊ณ ๋ชปํ ์