๐ก Pattern์ด ์ ํ์ํ๊ฐ?
๋์์ธ ํจํด์ ๊ฑด์ถ์ผ๋ก์น๋ฉด ๊ณต๋ฒ์ ํด๋นํ๋ ๊ฒ์ผ๋ก ์ํํธ์จ์ด์ ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ ๊ณต์ํ ํ ๊ฒ์ด๋ค. ์์์ ๋ฐ์ด๋ ์์ง๋์ด๊ฐ ํด๊ฒฐํ ๋ฌธ์ ๋ฅผ ๋ค์์ ์์ง๋์ด๋ค์ด ์ฒ๋ฆฌ ํ ์ ์๋๋ก ํ ๊ท์น์ด๋ฉด์, ๊ตฌํ์๋ค ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์
์ ํจ์จ์ฑ์ ๋์ด๋ ๊ธฐ๋ฒ์ด๋ค.
ํ์
์ UI๋ ๋์์ด๋๋ ๋์์ธ์ ๋ด๋นํ๋ ๊ฐ๋ฐ์๊ฐ ๋ง๋ค๊ณ , ๋น์ฆ๋์ค ๋ก์ง์ ๊ฐ๋ฐ์๊ฐ ๋ง๋ค๊ธฐ ๋๋ฌธ์ ์ฝ๋๋ฅผ ์์กด์ ์ด์ง ์๊ฒ ๋ถ๋ฆฌ๋ฅผ ์ ํด์ผํ๋ค.
UI๋ฅผ ๊ทธ๋ฆฌ๋ View
์ ๋ฐ์ดํฐ, ๋ก์ง์ ๋ด์ Model
์ด ์๋ก ์์กด์ ์ธ ๊ด๊ณ๋ฅผ ํ์ฑํ์ฌ ์ผ๋ฐฉ์ ํน์ ์๋ฐฉ์ ์ผ๋ก ์ํฅ์ ๋ฐ๊ฒ ๋๋ ๊ฒ์ด ๋ฌธ์ ๋ค! ๋ผ๋ ์๊ฐ์์
View์ Model์ ๋ถ๋ฆฌํ์ฌ ์๋ก ์ํฅ์ ๋ฐ์ง ์๊ฒ ํ์! ๋ผ๋ ๊ฒฐ๋ก ์ผ๋ก ๋ํ๋ ๊ฒ์ด๋ค.
Pattern์ด ๋ํ๋ ์ด์
๋ view์ model๊ฐ์ ์์กด์ฑ ์ ๊ฑฐ
์ด๋ค.
์ ํ๋ฆฌ์ผ์ด์
์ ๋์์ธํ๊ณ ๊ตฌ์กฐํํ๋ ๋ฐฉ๋ฒ
์ข์ ์ํคํ
์ฒ๋
1. ์๊ฒฉํ ๋ฃฐ์ ๋ฐ๋ผ ๊ฐ์ฒด๋ค๊ฐ์ ์ฑ
์์ ๊ท ํ์๊ฒ ๋ถ๋ฆฌํด์ผํ๋ค.
2. ์ฒซ๋ฒ์งธ ๋งํ ํน์ง์ผ๋ก๋ถํฐ ๋์ฌ ์ ์๋ ํ
์คํธ๋ค์ด ๊ฐ๋ฅํด์ผํ๋ค.
3. ์ฌ์ฉ์ด ํธํ๊ณ ์ ์ง๋ณด์๊ฐ ์ฌ์์ผ ํ๋ค.
MVC๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๊ธฐ๋ฐ ์ํํธ์จ์ด๋ฅผ ๊ตฌ์กฐํํ๊ณ ๊ตฌ์ฑํ๊ธฐ ์ํ ์ํคํ ์ฒ์ ์ธ ๊ฐ๋ ์ด์ ๋์์ธ ํจํด์ด๋ค.
Model
: ์ฑ์์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ์ ๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ก์ง ํฌํจ
View
: ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ ํ๋ฉด ๊ตฌ์ฑ
Controller
: View์์ ์
๋ ฅ์ ๋ํด Model์ ๋ก์ง์ ์ฌ์ฉํด ์ฒ๋ฆฌ
๋ทฐ์ ๋ชจ๋ธ๋ค์ ๋ทฐ์ปจํธ๋กค๋ฌ๊ฐ ๊ด๋ฆฌํ๋ฉด์
input์ด ๋ค์ด์ค๋ฉด ๋ทฐ์ปจํธ๋กค๋ฌ์์ ์ ๋นํ ๋ทฐ์ ๋ชจ๋ธ์ ์ฐพ์ ํ์ํ๋ ๋ฐฉ์์ด๋ค.
๋ทฐ์ปจํธ๋กค๋ฌ๊ฐ ํด๋น ๋ทฐ์ ๋ชจ๋ธ์ ๋ชจ๋ ๊ด๋ฆฌํ๊ณ ,
๋ฐ์ดํฐ ์ฒ๋ฆฌ ๋ก์ง์ ํฌํจํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ทฐ์ ๋ชจ๋ธ์์์ input์ ๋ชจ๋ ๋ทฐ์ปจํธ๋กค๋ฌ์์ ์ฒ๋ฆฌ๋๋ค.
๐ก ์ ์ด๋ ๊ฒ ์ค๊ณํ์๊น?
๋ทฐ์ปจํธ๋กค๋ฌ๊ฐ ์ค๊ฐ๋ค๋ฆฌ ์ญํ ์ ํ๊ณ ๋ทฐ์ ๋ชจ๋ธ์ ์๋ก ๋ณ๊ฐ์ ์์ญ์ผ๋ก ๋ถ๋ฆฌ๋์ด ์๋ก ๊ฐ์ญ์ด ์๊ธฐ ๋๋ฌธ์ ๋ทฐ์ ๋ชจ๋ธ์ ์์ ์ด ์ฝ๋ค.
๋ทฐ์ ๋ชจ๋ธ์ ์ํธ์์กด์ฑ์ ์์ ๊ณ , ๋ทฐ์ปจํธ๋กค๋ฌ๊ฐ ๋ทฐ์ ๋ชจ๋ธ์ ์ค๊ฐ๋ค๋ฆฌ ์ญํ ์ ํด์ฃผ๋ ๊ฒ์ด MVCํจํด์ ๊ฐ์ฅ ์ด์์ ์ธ ํํ๋ค.
๊ทธ๋ฆผ์ฒ๋ผ ๋ทฐ์ ๋ทฐ์ปจํธ๋กค๋ฌ๊ฐ ๋๋ฌด ๋ฐ์ ํ๊ฒ ์ฐ๊ฒฐ๋์ด ์๋ค.
๋ทฐ์ ์ปจํธ๋กค๋ฌ๊ฐ ๋ถ์ด ์๊ณ , ์ปจํธ๋กค๋ฌ๊ฐ ๋ทฐ์ Life Cycle๊น์ง ๊ด๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ทฐ์ ๋ทฐ์ปจํธ๋กค๋ฌ๋ฅผ ๋ถ๋ฆฌํ๊ธฐ ์ด๋ ต๋ค.
Life Cycle ๊ด๋ฆฌ ๋ฟ๋ง ์๋๋ผ ๋ฐ์ดํฐ ๋ก์ง ์ฒ๋ฆฌ ๋ฑ ๋ง์ ์ฝ๋๊ฐ ๋ทฐ์ปจํธ๋กค๋ฌ์ ์์ฑ๋์ ๋ทฐ์ปจํธ๋กค๋ฌ์ ํฌ๊ธฐ๋ ๋น๋ํด์ง๊ณ ๋ด๋ถ ๊ตฌ์กฐ๋ ๋ณต์กํด์ ธ์ ์ฌ์ฌ์ฉ์ฑ์ด ๋จ์ด์ง๊ณ , ์ ๋ ํ
์คํธ๋ฅผ ํ๊ธฐ ํ๋ค๋ค.
๊ทธ๋์ Massive View Controller
๋ผ๋ ์ค๋ช
์ด ์๊ธฐ๋ํ๋ค.
์ด๋ ๊ฒ ๋ณต์กํด์ง ์ฝ๋๋ ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ์ ์ง, ๋ณด์ํ๊ธฐ ํ๋ค๋ค.