MVC 패턴

1. 모델 1 구조

  • 모델 1의 구조는 웹 브라우저의 요청을 JSP 가 직접 처리한다.

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

  • 이 상황은 JSP 페이지에 비지니스 로직을 처리하기 위한 코드와 뷰의 코드가 섞인다는 것을 의마 한다. -> 유지보수가 어려워진다.

2. 모델 2 구조

  • 모델 1과 달리 웹 브라우저의 요청을 하나의 서블릿이 받는다. 서블릿은 웹 브라우저의 요청에 알맞게 처리한 후 그 결과를 보여줄 JSP 페이지로 포워딩한다.

  • 포워딩 처리를 통해서 요청 흐름을 받은 JSP 페이지는 결과 화면을 클라이언트에게 전달한다.

  • 가장 큰 특징은 비지니스 로직을 처리하기 위한 코드와 뷰의 코드가 분리된다는 것이다.

3. MVC(Model-View-Controller) 패턴

  • 모델 : 비지니스 영역의 로직을 처리한다.

  • 뷰 : 비니지스 영역에 대한 뷰를 담당한다.

  • 컨트롤러 : 사용자의 입력 처리와 흐름 제어를 담당한다.

  • MVC 패턴의 핵심은 다음과 같다.

    • 비지니스 로직을 처리하는 모델과 결과 화면을 보여주는 뷰를 분리한다.

    • 어플레케이션 흐름 제어나 사용자의 처리 요청은 컨트롤러에 집중된다.

4. MVC 패턴과 모델 2 구조의 매핑

  • 컨트롤러 = 서블릿

  • 모델 = 로직처리 클래스, 자바빈

  • 뷰 = JSP

  • 사용자 = 웹 브라우저 내지 휴대폰과 같은 다양한 기기

5. MVC 컨트롤러 : 서블릿

  • 서블릿은 웹 브라우저의 요청과 웹 어플리케이션의 전체적인 흐름을 제어한다.

  • 컨트롤러 역할을 하는 서블릿은 다음과 같은 과정을 거쳐 웹 브라우저의 요청을 처리하게 된다.

    • HTTP 요청을 받음

    • 클라이언트가 요구하는 기능을 분석

    • 요청한 비지니스로직을 처리하는 모델을 사용

    • 결과를 request 또는 session 에 저장

    • 알맞은 뷰 선택 후, 뷰로 포워딩

6. MVC 뷰 : JSP

  • 비지니스 역할과 관련 없는 온전히 뷰의 역할을 담당한다.

7. MVC 모델 : 자바 클래스

Last updated