본문 바로가기
WEB/JSP Servlet

MVC 패턴과 모델

by 노랑파랑 2016. 11. 22.
반응형




모델 1 | 모델 2 구조

* JSP 웹 어플리케이션의 구조는 크게 모델 1 (JSP에서 모든 로직과 출력 처리) / 모델 2 (JSP 에서 출력만 처리) 구조로 나뉜다. 



1) 모델 1 구조

* JSP를 이용한 단순한 모델로 웹 브라우저의 요청을 JSP가 직접 처리한다. 요청을 받은 JSP는 자바빈이나 서비스 클래스를 사용해서 웹 브라우저가 요청한 작업을 처리하고 그 결과를 클라이언트에게 출력한다.

* 이는 JSP 페이지에 비즈니스 로직을 처리하기 위한 코드와 웹 브라우저에 결과를 출력하는 코드가 섞인다는 것을 의미한다. 

모델1



2) 모델 2 구조

* 웹 브라우저의 요청을 하나의 서블릿이 받는다. 서블릿은 받은 요청을 알맞게 처리한 후 그 결과를 보여줄 JSP 페이지로 포워딩하고 이를 통해 요청 흐름을 받은 JSP 페이지는 결과 화면을 클라이언트에게 전송한다. 

* 즉 로직은 서블릿이 처리하고 JSP는 결과를 출력하는 것만 담당한다.

* 웹 브라우저의 모든 요청을 하나의 서블릿에서 처리한다는 것 때문에 서블릿은 웹 브라우저의 요청을 구분하는 방법이 필요하다. 서블릿은 요청을 구분해 처리후 그 결과를 출력할 JSP 페이지를 선책하는데, 이러한 특성때문에 MVC 패턴을 이용해 웹 어플리케이션을 구현할 때 모델 2 구조를 사용하게된다.


모델2


3) 장단점

모델 

장점 

단점 

모델 1 

- 배우기 쉽다.

- Java를 몰라도 어느 정도 구현 가능

- 기능과 JSP가 직관적으로 연결 

- 로직코드와 뷰코드가 혼합되어 JSP 코드가 복잡하다.

- 뷰 변경 시 논리 코드의 빈번한 복사가 발생하여 코드 중목이 발생하기 쉽다. 따라서 유지보수가 힘들어 진다. 

모델 2 

- 로직코드와 뷰코드가 분리되어 유지보수가 쉽다.

- 컨트롤러 서블릿에서 권한 검사나 인증과 같은 공통 기능 처리가 가능하다.

- 확장이 용이 

- Java를 모르면 접근하기 쉽지 않다.

- 작업량이 많다 




MVC 패턴

* Model-View-Controller

* 웹 어플리케이션 개발 영역에 보편적으로 사용되고 있다.

* 크게 모델, 뷰, 컨트롤러 세 부분으로 구성된다.

▷모델 : 비즈니스 영역의 로직을 처리한다

▷ 뷰 : 비즈니스 영역에 대한 사용자가 보게될 결과 화면을 담당한다.

▷ 컨트롤러 : 사용자의 입력 처리와 흐름을 제어한다.

MVC 구성

* 사용자의 요청을 받은 컨트롤러는 모델을 이용해 받은 모든 요청을 처리하고 알맞은 비즈니스 로직을 수행한 후 사용자에게 보여줄 뷰를 선택한다.

* 선택된 뷰는 사용자에게 알맞은 결과 화면을 보여주고, 이 때 필요한 데이터는 컨트롤러를 통해 전달받는다.



1) 특징

* 로직을 처리하는 모델과, 결과 화면은 보여주는 뷰를 분리

* 어플리케이션의 흐름 제어, 사용자의 처리 요청은 컨트롤러에 집중



2) MVC 패턴과 모델2 구조 매핑

* MVC 패턴과 모델 2 구조의 요청,응답 처리 방식은 위 두 그림을 보면 완전히 같다.



3) MVC 컨트롤러 : 서블릿

* 모델 2 구조의 서블릿은 MVC 패턴의 컨트롤러와 같은 역할을 한다. 클라이언트의 요처와 웹 어플리케이션의 전체적인 흐름을 제어한다.

MVC 컨트롤러

* 모델에서 비즈니스 로직이 처리되기 때문에 서블릿은 모델에서 내부적으로 비즈니스 로직을 어덯게 처리하는가에 대한 것을 알 필요가 없고, 그저 클라이언트의 요청에 따라 알맞게 모델을 사용해 요청에 대한 기능을 실행하고, 그 결과를 뷰인 JSP에게 전달하면 된다.

* 컨트롤러 서블릿은 알맞은 JSP 페이지를 선택하고, 이 때 요청 처리 결과를 request나 session에 저장해서 결과 화면을 보여줄 JSP 페이지에게 전달한다.




4) MVC 뷰 : JSP

* 모델 2 구조의 JSP는 뷰 역할을 담당

* 컨트롤러에서 request 객체나 session 객체에 저장한 데이터를 사용하여 클라이언트에게 알맞은 결과 화면을 출력한다.

* 클라이언트의 요청을 컨트롤러에게 전달하는 매개체가 되기도 한다.



5) MVC의 모델

* 비즈니스 로직을 처리해주는 것이 모델이 될 수 있다.

* 컨트롤러 서블릿이 클라이언트의 요청을 분석해 알맞은 모델을 호출하면 모델은 요청한 작업을 처리 후 결과를 보통 자바빈 객체에 저장 후 컨트롤러에게 전달한다. 

*

반응형

'WEB > JSP Servlet' 카테고리의 다른 글

커넥션 풀  (0) 2016.12.06
JDBC : 트랜잭션  (0) 2016.12.06
서블릿 : 초기화  (0) 2016.11.22
서블릿 : 기본  (0) 2016.11.21
JDBC : 기초  (0) 2016.11.21