SpringBoot

[MVC Pattern] Model 1 vs Model 2

HU_717 2024. 11. 13. 19:49

MVC(Model-View-Controller) Pattern

  • JSP를 이용하여 구성할 수 있는 Web Application Architecture은 Model1과 Model2로 나눌 수 있다

Model 1

  • view와 logic을 JSP페이지 하나에서 처리하는 구조
  • client로부터 요청이 들어올 시, Java beans나 별도의 service를 이용하여 처리하고 결과를 client에 출력
MVC 정의 사용 구분
Model 비즈니스 로직과 데이터 담당 객체 DAO, DTO
JSP직접 처리, JavaBean사용
View 클라이언트에서 보여질 화면 렌더링 JSP
Controller 클라이언트 요청을 받아서 필요한 데이터를 준비한 뒤 적절한 뷰로 데이터 전달 JSP

Model 2

  • MVC 패턴을 웹개발에 도입한 구조
  • client 요청에 대한 처리는 Servlet이 logic 처리는 java class(Service, Dao..), client에게 출력하는 응답페이지는 JSP가 담당함
MVC 정의 사용 구분
Model 비즈니스 로직과 데이터베이스 상호작용
서블릿이 처리한 데이터는 모델을 통해 JSP로 전달
DAO, DTO
View 클라이언트에서 보여질 화면 담당 JSP
Controller 클라이언트 요청을 받아서 필요한 데이터를 준비한 뒤 적절한 뷰로 데이터 전달
요청을 받고 모델과 뷰 간의 흐름 제어
Servlet

MVC Model1 vs MVC Model2

  • 클라이언트의 요청처리와 응답처리가 분리되어 있는가
    • MVC Model 1 : 요청처리와 응답처리가 모두 JSP에서 이루어짐
    • MVC Model 2 : 요청처리는 Servlet에서 담당하고, 응답처리는 JSP에서 이루어짐
  • 접근 방식
    • MVC Model 1 : 클라이언트가 직접적으로 View에 접근 가능
    • MVC Model 2 : 클라이언트는 View에 직접적으로 접근할 수 없으며 Controller를 통해 접근해야 함

MVC패턴에 대해 말할때는 보통 MVC Model2를 의미한다