Develope Me!

[Servlet/JSP] MVC 기법 - model 1 본문

Web/Servlet & JSP

[Servlet/JSP] MVC 기법 - model 1

코잘알지망생 2021. 11. 16. 16:05

JSP를 기반으로 웹 애플리케이션을 구성하는 방법에는 MVC model1과 model2 방식이 있다.

* JSP(JavaServerPages): html 코드에 자바 코드를 넣어서 동적인 웹페이지를 생성하는 애플리케이션 도구 

 

MVC 패턴?

MVC 패턴은 Model, View, Controller로 구성된다.

 

* Model, View, Controller

- Model:  출력되는 데이터에 해당, 비즈니스 영역의 상태 정보를 처리

- View: 출력을 담당하고사용자가 보게될 UI를 담당 [HTML 코드]

- Controller: 사용자의 입력이나 흐름 제어를 담당 [JAVA 코드]

 

사용자가 원하는 기능을 처리하기 위한 모든 요청을 단일 Controller에게 보낸다. Model은 비즈니스와 관련된 상태 정보나 관련 기능을 제공하고 Controller는 이 Model을 통해서 사용자의 요청을 처리한다. Model을 사용해서 알맞은 비즈니스 로직을 수행한 뒤 Controller는 사용자에게 보여줄 View를 선택한다. 선택된 View는 사용자에게 알맞은 결과 화면을 보여준다. View가 사용자에게 결과 화면을 보여줄 때는 결과 정보가 필요한데 이 정보는 Controller가 View에게 전달해준다.

 

MVC 패턴의 핵심은

1. 비즈니스 로직을 처리하는 모델과 결과 화면을 보여주는 뷰가 분리되어 있다는 점

2. 어플리케이션의 흐름제어나 사용자의 처리요청은 컨트롤러에 집중되어 있다는 점을 기억하면 된다.

각각 하는 일이 분리되어 있기 때문에 유지보수 작업이 간단해지고 애플리케이션 확장이 쉬어진다.

 

model 1 구조?

출처: 유튜브 '뉴렉처' 서블릿/JSP 강의 45 - JSP MVC model1

 

JSP로 코드를 작성할 때 입력 코드와 출력 코드를 분리해서 작성한다. 그러다 보면 여러 개의 코드 블럭이 만들어진다.

이쯤에서 '코드를 깔끔하게 만들 수 없을까?' 라는 고민이 들게끔 한다.

코드 블럭을 최소화하고 코드를 한 눈에 볼 수 있게끔 하기 위해서  model 1 방식을 적용하기 시작한다.

출처: 유튜브 '뉴렉처' 서블릿/JSP 강의 45 - JSP MVC model1

 

 

위는 model1을 적용하기 전과 후의 모습이다.

model1을 적용하여 입력 코드에 출력할 데이터를 변수화하고 출력 코드에는 변수만 입력하면 되도록 수정했다.

출력 값은 model1을 적용하기 전과 동일하다.

 

model1은 Controller와 View가 결합되어서 JSP가 Controller와 View의 역할을, Jave Bean이나 Service class가 Model의 역할을 담당한다.

 

model1에선 뷰와 로직을 모두 jsp 페이지 하나에서 처리한다. 웹 브라우저에서 요청이 들어오면 바로 JSP로 전달되고 요청을 전달받은 JSP는 로직을 처리하는 자바빈이나 Service 클래스와 통신을 해서 요청받은 작업을 수행하게 된다. 그 후 수행한 결과를 클라이언트에게 출력해준다.

 

즉, model1 방식은 'JSP가 결과 출력 및 요청에 관한 모든 로직을 처리하는 것'이라고 정리할 수 있다.

* 이후 따로 정리할 예정이지만 model2 에서는 jsp가 결과의 출력만 담당함

 

model1방식은 구조가 단순하다는 장점이 있지만 코드 자체가 복잡해서 유지보수가 어렵고  JSP 코드 안에 백엔드 프론트엔드 혼재되어 있어 분업하기 힘들다는 단점이 있다. 

 

 

 

[요약]

1. MVC 패턴

MVC패턴은 Model, View, Controller로 구성되어 있다. 비즈니스 로직을 처리하는 모델과 결과 화면을 보여주는 뷰가 분리되어 있으며 어플리케이션의 흐름을 제어하고 사용자의 처리 요청은 Controller에 집중되어 있다. 이 패턴은 각각 하는 일이 분리되어 있기 때문에 유지 보수 작업이 간단해지고 애플리케이션 확장이 쉬어진다.

 

2. Model1 방식

model1은 Controller와 View가 결합되어서 JSP가 Controller와 View의 역할을, Jave Bean이나 Service class가 Model의 역할을 담당한다. 즉, model1 방식은 'JSP가 결과 출력 및 요청에 관한 모든 로직을 처리하는 것'이라고 정리할 수 있다.

 

 

 

 

Comments