MVC
- 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴.
- 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점.
- 간단하게 Model, View, Controller로 분리하여 개발하는 디자인 패턴.
정적(static) 웹 페이지
- Controller
- Client 의 요청을 Model 로 받아 처리.
- Client 에게 View (정적 웹 페이지, HTML) 를 내려줌.
동적 (dynamic) 웹 페이지
- Controller
- Client 의 요청을 Model 로 받아 처리.
- Template engine 에게 View, Model 전달.
- Template engine
- View 에 Model 을 적용 → 동적 웹페이지 생성.
- Client 에게 View (동적 웹 페이지, HTML) 를 내려줌.
Model
- 데이터와 비즈니스 로직 관리.
- 애플리케이션이 포함해야할 데이터 정의.
- 일반적으로 POJO 구성.
- JAVA BEANS
View
- 레이아웃과 화면을 처리한다.
- 애플리케이션의 데이터를 보여주는 방식을 정의.
- JSP
- JSP 이외에도 Thymeleaf, Groovy 등 여러 Template Engine이 있음.
Controller
- View와 Model 사이의 인터페이스 역할.
- 애플리케이션 사용자의 입력에 대한 응답으로 Model 및 View를 업데이트하는 로직 포함.
- Model Object와 이 Model을 화면에 출력할 View Name을 반환.
- Controller —> Service —> Dao —> DB