MVC ํจํด์ ์ญ์ฌ
MVC๋?
Model
- ๋ฐ์ดํฐ์ ํ๋์ ๊ฐ๋ ๊ฐ์ฒด
- ๋น์ฆ๋์ค ๋ก์ง์ ์ํ (์ํ ๋ณํ ์ฒ๋ฆฌ / ์ํ ์ ๋ณด ๋ฐํ)
View
- ๋ฐ์ดํฐ์ ์๊ฐํ
- ๋ชจ๋ธ์ด ์ฒ๋ฆฌํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ์ฌ์ฉ
- ๋ฐ์ดํฐ(DAO, Repository), ๋น์ฆ๋์ค ๋ก์ง X
Controller
- ์ฌ์ฉ์์ ์์ฒญ์ ํด์ํด์ฌ ์ฒ๋ฆฌํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ
- ๋ชจ๋ธ๊ณผ ๋ทฐ๋ฅผ ๋์จํ๊ฒ ์ฐ๊ฒฐ
- ๋ฐ์ดํฐ์ ํ๋ฆ ์ ์ด
MVC ํจํด ์ฌ์ฉ์ด์
- ๊ตฌ์ฑ์์๋ค์ ์ฌ์ฌ์ฉ
- ํ์ฅ์ฑ ์ฆ๊ฐ
- ์ค๋ณต ์ฝ๋ฉ ์ ๊ฑฐ
- ๊ฐ ์์๋ค์ ์ง์ค
Layer
๋จ์ํ MVC๋ง ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ปจํธ๋กค๋ฌ์ ๋ํ ๋ก์ง์ด ๋ง์ด ์์ด๊ฒ ๋๋ค.
5-Layer
- ๋น๋ํ ์ปจํธ๋กค๋ฌ
- ์ปจํธ๋กค๋ฌ์ ์ค๋ณต ๋ก์ง
- DB
Business Logic layer - Service Layer
- ํด๋์ค ๊ฐ์ ๊ด๊ณ ๊ด๋ฆฌ
- ์ํ ์ ์ฅ
- ํธ๋์ ์
- Control - Persistance ๊ณ์ธต์ ์ฐ๊ฒฐ
Business Logic layer - Domain Layer
- ๋ฐ์ดํฐ์ ํ์๋ฅผ ๊ฐ๋ ๊ฐ์ฒด
- ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง
- ์ฃผ์ ๊ฒ์ฆ
- Persistance layer์ ๋งตํ
Persistance layer
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ (CRUD)
- DAO ํจํด, ORM
Domain layer
- ๊ฐ ๊ณ์ธต ์ฌ์ด์์ ์ ๋ฌ๋๋ ๊ฐ์ฒด
- DTO ํจํด
- ๋๋ถ๋ถ ๋๋ฉ์ธ ๋ชจ๋ธ๋ก DTO๋ก ์ฌ์ฉ
์ ํจ์ฑ ๊ฒ์ฆ
View
- ๊ฐ๋จํ ๊ฒ์ฆ
- ๋น์ด์๋ ๊ฐ
- ์ ์ ํ์ง ์์ ํ์
(๋ฐ์ดํฐํ)
Controller
- ํ๋ผ๋ฏธํฐ ์กด์ฌ์ ๋ฌด ๊ฒ์ฆ
- @PathVariable
- @RequestBody
Model
- ๋ฐ์ดํฐ ๊ฒ์ฆ
- @Valid
- ๋ก์ง์ ๋ํ ๊ฒ์ฆ
MVC์ ๋์
MVC - ์ปจํธ๋กค๋ฌ์ ๋ทฐ์ ๊ฐํ ๊ฒฐํฉ
MVP - Presenter๋ฅผ ์ฌ์ฉํ์ฌ ๋ทฐ์ ์ธํฐํ์ด์ค์ ๊ฒฐํฉ
MVVM - View๊ฐ ViewModel์ ๊ตฌ๋