상세 컨텐츠

본문 제목

JSP 공부 <3> - 모델1 , 모델2 , MVC패턴 ?

JSP

by oimb 2018. 9. 10. 23:50

본문


오늘은 웹 개발을 하기 위한 파일 관리? 관한 모델들과 패턴에 대해서 알아보자



1. 모델1


JSP에서 모든 로직과 출력을 처리하느냐 아니면 JSP에서는 출력만 처리하느냐에 따라서 모델 1 구조와 모델 2 구조로 구분된다 


천천히 알아보자



DB는 제외한 모델 1구조라고 할 수 있다 (만약 DB가 있다면 서비스&빈클래스와 상호작용 할것 이다)


그림과 같이 웹브라우저의 요청을 JSP가 직접 처리한다. 필요에 따라 웹브라우저의 요청에 따라 서비스 클래스나 와 자바빈 클래스를 사용해서 웹 브라우저가 요청한 작업을 처리하고 그 결과를 클라이언트에게 출력한다.   

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



2. 모델 2



모델 2구조도 먼저 그림을 보자 

웹 브라우저의 요청을 서블릿이 받고 이후 알맞는 로직 클래스에 의해서 처리후 JSP 페이지로 포워딩 한다.

모델 2 구조는 모든 요청을 하나의 서블릿에서 처리한다는 점이 특징이다. 따라서 서블릿은 웹 브라우저의 요청을 구분하는 방법이 필요하다

이후 처리가 되면 JSP페이를 선택하여 응답하게 된다.


3. MVC (Model - View - Controller : 모델 - 뷰 - 컨트롤러) 


먼저 그림을 보자


자 이름에 대해 하나씩 살펴보자

  • 모델 : 비즈니스 영역의 로직을 처리한다.
  • 뷰 : 비즈니스 영역에 대한 프레젠테이션 뷰를 담당한다.
  • 컨트롤러 : 사용자의 입력 처리와 흐름 제어를 담당 한다.
사용자의 모든 요청(입력)은 컨트롤러에 보내며 , 이후 모델에서 제공하는 비즈니스와 관련된 기능을 이용해서 사용자의 요청을 처리한다. 
모델에서 알맞은 비즈니스 로직을 수행한 후 컨트롤러는 사용자에게 보여줄 를 선택한다. 이후 컨트롤러는 화면에 보여줄 데이터를 뷰에게 전달하게 되고 이후 뷰는 사용자게 적절한 화면을 보여주게 된다.

  • 비즈니스 로직을 처리하는 모델과 결과 화면을 보여주는 뷰를 분리한다
  • 어플리케이션의 흐름 제어나 사용자의 처리 요청은 컨트롤러에 집중 된다.
이로 인해 

모델은 비즈니스와 관련된 로직만 처리하는데 집중 하고
뷰는 사용자에게 알맞은 화면을 보여주는 역할만 수행하며
컨트롤러는 사용자의 요청에 대해서 알맞은 모델을 사용하고 사용자에게 보여줄 뷰를 선택하면 된다.

즉 MVC 패턴을 사용함으로써 유지보수 작업이 쉬워지고 어플리케이션을 쉽게 확장할 수 있게된다.



4. MVC 패턴이랑 모델2 구조랑 비슷하지 않나?

그렇다 모델 2 구조와 MVC 패턴은 완벽하게 일치한다.
  • 컨트롤러 = 서블릿
  • 모델 = 로직 처리 클래스, 자바빈
  • 뷰 = JSP
  • 사용자 = 웹 브라우저 내지 휴대폰과 같은 어플리케이션



5. 조금만 더 자세하게 각각(서블릿 , 뷰 , 모델)에 대해 알아보자



1. 서블릿


앞서봤듯이 서블릿은 MVC 패턴의 컨트롤러 역할을 한다.  그 순서를 한번 살펴 보면



2. JSP


그렇다면 JSP 에서는 무슨일 일어날까

먼저 JSP는 뷰 역할을 담당한다 

JSP는 컨트롤러에서 request ,session 기본 객체에 저장한 데이터를 사용하여 웹 브라우저에 알맞은 결과를 출력한다. 

여기서 컨트롤러와 차이점은 서블릿 처럼 일반적인 처리 순서가 정해져 있지는 않다.

또 요청 결과를 보여주는 역할 뿐만 아니라 컨트롤러의 매개체 역할도 하는데 간단하다. 당신이 지금 보고있는 글에서 아래에 다음것 읽기를 누른다고 생각해바라

당신이 보고 있는것은 JSP페이지 이지만 읽기를 누르는 순간 컨트롤러가 해당 로직에 해당하는 JSP 페이지를 실행 할것이다.



3. 모델


모델은 명확하게 어떤 것을 통해서 구현한다는 규칙은 없다. 

단순하게 비즈니스 로직을 처리해주면 모델이 되는 것이다.





오늘은 앞으로 공부할 MVC에 대해서 전체적인 흐름을 알아 보았다




관련글 더보기