패턴
소프트웨어 디자인에 있어서 반복해서 발생하는 문제에 적용할 수 있으며, 재사용할 수 있는 것.
MVC 패턴
애플리케이션을 크게 모델(Model, View, Controller)의 세 영역으로 구분하고, 영역간의 결합도를 최소화하는 패턴이다.
Model
- 데이터를 담거나 데이터베이스로 데이터를 보내는 작업을 하는 객체들
- 애플리케이션의 상태를 저장하고 있다가 View에서 요청해 오는 상태 질의에 대한 응답을 담당
- Controller에서 상태의 변화를 알려주면 Model 상태를 변화시키고 그 변화를 View에게 알려주는 역할을 한다.
- DTO를 통해 상태의 값을 주고 받으며, 영속 저장된 데이터(데이터베이스)와의 통신을 위해 DAO를 사용한다.
View
- Model을 렌더링 하여 실제 사용자에게 보여지는 부분을 이야기 한다.
- Model의 변화된 상태를 요청하여 업데이트 한다.
- View에서의 사용자 행위를 Controller에 전달한다.
- Controller가 선택한 View에 접근할 수 있도록 허가한다.
Controller
- View에 대한 하나의 진입점으로 애플리케이션의 행위를 정의해 둔 부분을 이야기하고, 특정 결과에 대한 View를 선택하여 응답하는 역할을 한다.