GitHub 자세히보기

Programming/Web

[Web] MVC 패턴, Model1, Model2 란? 구조와 장단점까지 알아보기

devdange 2022. 1. 6. 02:11

 

안녕하세요 데브당에입니다.

웹 어플리케이션 개발에 있어 빼놓을 수 없는 MVC 패턴과 Model1, Model2 에 대해 알아보겠습니다.

MVC(Model-View-Controller) Pattern

JSP를 이용하여 구성할 수 있는 Web Application Architecture는 Model1Model2로 나뉜다. 

1. Model1 : JSP가 client 요청에 대한 로직 처리와 view(response page)에 대한 처리를 모두 수행
2. Model2 : JSP가 view(response page)에 대한 처리만 수행

 

💡여기서 Model2 구조는 MVC(Model-View-Controller) Pattern을 웹 개발에 도입한 구조이다.

 

Model 1

구조

model1은 view와 logic을 JSP 페이지 하나에서 처리하는 구조로, client로부터 요청이 들어오면 JSP 페이지는 java beans나 별도의 service class를 이용하여 작업을 처리, 결과를 client에 출력한다.

Model1 구조


장단점

  1. 장점
    • 구조가 단순하여 직관적이다.
    • 개발시간이 비교적 짧아 개발비용이 감소한다.
  2. 단점
    • view 코드와 로직처리를 위한 java 코드가 섞여있어 JSP 코드 자체가 복잡하다.
    • JSP 코드에 Back-End와 Front-End가 혼재되어있어 분업이 힘들다.
    • 프로젝트 규모가 커지면 코드가 복잡해져 유지보수가 어렵다.
    • 확장성이 나쁘다. 

 

Model 2

구조

Model2 구조는 MVC 패턴을 웹개발에 도입한 구조이다.

client 요청에 대한 처리는 Servlet이, logic 처리는 java class(Service, Dao...), client에게 출력하는 response page는 JSP가 담당한다.

 

Model2 MVC 패턴 설명
Service, Dao,
Java Beans
Model Logic 처리
Controller로 부터 넘어온 data를 이용하여 수행하고 그에 대한 결과를 다시 Controller로 return
JSP View 모든 화면 처리 담당
Client 요청에 대한 결과뿐 아니라 controller에 요청을 보내는 화면단도 jsp에서 처리
Servlet Controller Client 요청을 분석하여 Logic 처리를 위한 Model 호출
필요에 따라 request, session 등에 결과 data를 저장하고, redirect 또는 forward 방식으로 jsp(view) page를 이용하여 출력

 

 

Model2 구조

 


장단점

  1. 장점
    • view 코드와 로직처리 코드가 분리되어있어 JSP는 Model1에 비해 복잡하지 않다.
    • Back-End와 Front-End가 분리되어 분업이 용이하다.
    • 기능에 따라 코드가 분리되었기 때문에 유지보수가 쉬워졌다.
    • 확장성이 뛰어나다.
  2. 단점
    • 구조가 복잡하여 초기진입이 어렵다.
    • 개발시간의 증가로 개발 비용이 증가한다.

 

마치며

 

웹 실습시간에 먼저 model1 구조로 구현을 해보고, 그 이후에 model2 구조로 개발을 한 적이 있습니다. 개인적으로 model2만 실습하면 되는걸 굳이 model1을 실습하는 이유가 뭘까? 라고 생각해본 적이 있었습니다. 하지만 model1으로 구현을 해보고 이를 MVC로 쪼개어 model2로 변환하는 과정에서 MVC와 같이 구조를 명확히 구분할 수 있었고 이에 대한 필요성 또한 체감할 수 있었습니다.

불편함을 해소하기 위해 새로운 서비스 혹은 시스템를 고민하고 개선하는 것, 그리고 이에 대한 개선사항을 배워가는 것이 개발자의 즐거움이지 않을까 합니다!