MVC ํจํด
- ๋์์ธ ํจํด
- Model View Controller 3๊ฐ์ง๋ก ๊ตฌ๋ถํ ํจํด
- ์ ์ง๋ณด์๊ฐ ํธํด์ง๋ ์ฝ๋ ๊ตฌ์ฑ ๋ฐฉ์
์น ์ ํ๋ฆฌ์ผ์ด์ ์ํคํ ์ณ์ ์ญ์ฌ
(JSP๋ก ๊ตฌ์ฑํ) ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํคํ ์ณ : ๋ชจ๋ธ1
- ๊ตฌ์ฑ : JSP + JavaBeand(Service)
- ๋ทฐ์ ๋ก์ง์ด ์์
- ์ฅ์ : ๊ตฌ์กฐ๊ฐ ๋จ์
- ๋จ์ : ์ถ๋ ฅ๊ณผ ๋ก์ง ์ฝ๋๊ฐ ์์ฌ ์ ์ง๋ณด์๊ฐ ์ด๋ ต๋ค.
(JSP๋ก ๊ตฌ์ฑํ) ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํคํ ์ณ : ๋ชจ๋ธ2
- ๊ตฌ์ฑ : JavaBean(Service) + JSP + ์๋ธ๋ฆฟ
- MVC ๊ตฌ์กฐ
- ์ฅ์ : ๋ทฐ์ ๋ก์ง์ด ๋ถ๋ฆฌ๋์ด ์ ์ง๋ณด์๊ฐ ์ฝ๋ค.
- ๋จ์ : ๋ณต์กํ๋ฏ๋ก ์์ ํ๋ก์ ํธ์์๋ ์คํ๋ ค ๊ณผํ ์ ์๋ค.
MVC ํ๋ฆ
- ์ฌ์ฉ์๋ ์ํ๋ ๊ธฐ๋ฅ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๋ชจ๋ ์์ฒญ์ ์ปจํธ๋กค๋ฌ์ ๋ณด๋ธ๋ค.
- ์ปจํธ๋กค๋ฌ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ๊ณ , ๋ชจ๋ธ์ ์๋ง์ ๋น์ฆ๋์ค ๋ก์ง์ ์ํํ๋ค.
- ์ปจํธ๋กค๋ฌ๋ ๊ฐ์ฉ์์๊ฒ ๋ณด์ฌ์ค ๋ทฐ๋ฅผ ์ ํํ๋ค.
- ์ ํ๋ ๋ทฐ๋ ์ฌ์ฉ์์๊ฒ ์๋ง๋ ๊ฒฐ๊ณผ ํ๋ฉด์ ๋ณด์ฌ์ค๋ค. ์ด ๋ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ค ๋ฐ์ดํฐ๋ ์ปจํธ๋กค๋ฌ๋ฅผ ํตํด์ ์ ๋ฌ๋ฐ๋๋ค.
Model
- ๊ฐ๊ณผ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด
- ๋น์ฆ๋์ค ๋ก์ง์ ์ํ
View
- ๋ชจ๋ธ์ ํฌํจ๋ ๋ฐ์ดํฐ์ ์๊ฐํ
Controller
- ๋ชจ๋ธ ๊ฐ์ฒด๋ก์ ๋ฐ์ดํฐ ํ๋ฆ์ ์ ์ด
- ๋ชจ๋ธ๊ณผ ๋ทฐ์ ์ค๊ฐ์ ์ญํ
- ๋ทฐ์ ๋ชจ๋ธ์ ์ญํ ์ ๋ถ๋ฆฌ
Why MVC?
- ๊ฐ ์ปจํฌ๋ํธ์ ์ฝ๋ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ ์ ์์
- ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์์
- ๊ตฌํ์๋ค ๊ฐ์ ์ปค๋ฎค๋์ผ์ด์ ํจ์จ์ฑ์ ๋์ผ ์ ์์
MVC ๋ง์ด ์ค์ํ๋ ๋ถ๋ถ๋คโฆ
Model์์ View์ ์ ๊ทผ ๋๋ ์ญํ ์ํ
- ๋๋ฉ์ธ์์ ๋น์ฆ๋์ค ๋ก์ง์ด ์๋ ์ถ๋ ฅ์ ๋ํ ๋ก์ง์ ๋ณ๋๋ก ๋ถ๋ฆฌํ์
- ex) toString()
View์์ ์ผ์ด๋๋ ๊ณผํ ๊ฐ ๊ฒ์ฆ๊ณผ ์์ธ์ฒ๋ฆฌ
- View์์ ๊ฒ์ฆ์ ํ๋ฉด ๋ค์ ๋ก์ง์ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋ ํธ๋ฆฌํ๋ค๊ณ ๋ ๋๋ ์ ์์
- ํ์ง๋ง ๋จ์ผ ์ฑ ์ ์์น์ ์๋ฐํจ (์ ๋ ฅ ์ฑ๋์ด ๋ฌ๋ผ์ง ๊ฒฝ์ฐ ์ ํจ์ฑ ํ ํฌ ๋ก์ง๋ ์ฎ๊ฒจ์ผํจ)
- ๊ฐ ํ์์ ์ ํจํ์ง๋ง, ๋๋ฉ์ธ ๋ชจ๋ธ์์ ํ์ธํด์ผํ ๋ถ๋ถ๋ค์ ์์ฑ์์์ ์ฒดํฌ
- ex) ์ด๋ฆ์ ๋ช ๊ธ์ ์ด์์ด์ด์ผ ํ๋ค.
View์์ ์ผ์ด๋๋ ๋น์ฆ๋์ค ๋ก์ง
- ๋ชจ๋ธ์ ์์ฑํ๊ฑฐ๋ ๋ชจ๋ธ๋ผ๋ฆฌ ์ฐ์ฐ์ ํ๋ ๋ก์ง
Controller๋ ์ต๋ํ ๊ฐ๋ณ๊ฒ
- ๋ก์ง์ ์ต๋ํ ๋ฐฐ์ ํ๊ณ model๊ณผ view์ ์ฐ๊ฒฐ ์ญํ ๋ง ํ๋๋ก ๊ตฌํ
Service์ ๋ฑ์ฅ (์ง๊ธ์ ์ด๋ฐ๊ฒ ์๊ตฌ๋ ์ ๋๋ง )
Controller์์ ์ค๋ณต์ด ๋ฐ์ํ๋ค.
- ๋ณ๋์ ๊ฐ์ฒด๋ก ๋ถ๋ฆฌ
- ๋ณ๋์ ๋ฉ์๋๋ก ๋ถ์ด
์ด๋ฌ๋ค ์๋น์ค ๋ ์ด์ด๊ฐ ์ถ๊ฐ๋์๋ค!
Service๋?
- ๋น์ฆ๋์ค ๋ก์ง์ ์ํํ๋ ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด
- ๋น์ฆ๋์ค ๋ฉ์๋๋ฅผ ๋ณ๋์ ์๋น์ค ๊ฐ์ฒด์์ ๊ตฌํํ๋๋ก ํ๊ณ ์ปจํธ๋กค๋ฌ๋ ์๋น์ค ๊ฐ์ฒด๋ฅผ ์ฌ์ฉ
- ํ๋์ ํธ๋์ญ์ ์ ๊ฐ์ง
MVC๋ฅผ ์งํค๋ฉด์ ์ฝ๋ฉํ๋ ๋ฐฉ๋ฒ
Model์ Controller์ View์ ์์กดํ์ง ์์์ผ ํ๋ค.
- Model ๋ด๋ถ์ Controller์ View์ ๊ด๋ จ๋ ์ฝ๋๊ฐ ์์ผ๋ฉด ์๋จ
- model์ ๋ฐ์ดํฐ์ ๊ด๋ จ๋ ์ฝ๋์ด๋ ์ธ์ ๋ ์ง ์ ์ ๋ ์ฝ๋๋ง ๊บผ๋ด์ธ ์ ์๋๋ก
View๋ Model์๋ง ์์กดํด์ผํ๊ณ , Controller์ ์์กดํ๋ฉด ์๋๋ค.
- View ๋ด๋ถ์ Model์ ์ฝ๋๋ง ์์ ์ ์๊ณ , Controller์ ์ฝ๋๊ฐ ์์ผ๋ฉด ์๋จ
Vuew๊ฐ Model๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ๋๋ ์ฌ์ฉ์๋ง๋ค ๋ค๋ฅด๊ฒ ๋ณด์ฌ์ฃผ์ด์ผ ํ๋ ๋ฐ์ดํฐ์ ๋ํด์๋ง ๋ฐ์์ผ ํจ
๋นจ๊ฐ ๋ถ๋ถ์ด ์ฌ์ฉ์๋ง๋ค ๋ค๋ฅด๊ฒ ๋ณด์ฌ์ ธ์ผํ๋ ๋ถ๋ถ์ด๋ค.
๋๋ ์๋์ฐจ ๊ฒฝ์ฃผ ๊ฒ์์์ -
(๋์) ๊ฐ์ ๊ฒฝ์ฐ
View๋ ์ฌ์ฉ์ํํ ๋ณด์ด๋ UI์ ๋ชจ๋ธ๋ก๋ถํฐ ๋ฐ์ ๋ฐ์ดํฐ๊ฐ ํฉ์ณ์ง๋ ๋ถ๋ถ์ด๋ค.
Controller๋ Model๊ณผ View์ ์์กดํด๋ ๋๋ค.
- Controller ๋ด๋ถ์๋ Model๊ณผ View์ ์ฝ๋๊ฐ ์์ ์ ์๋ค.