본문 바로가기

JSP

MVC2 패턴이란?

* MVC1 방식

- 비즈니스 로직과 프레젠테이션 로직이 뒤섞여 있음

- 고도의 스킬이 필요없고, 코드가 직관적이므로 생산성 측면에서는 효율적

- 하지만, 복잡해질수록 개발자와 디자이너가 협업을 하는 데 있어 어려움이 있음

 

 

* Model / View / Controller

- Model : 비즈니스 로직 중심 (서비스, dao, vo, db템플릿 등)

- View : 디자인 중심

- Controller : Model과 View를 제어

- 세 영역의 결합도를 최소화하자

- 재사용성과 가독성이 높아짐 / 유지보수와 확장이 용이

 

 

* Model

- 실제 업무를 처리하는 비즈니스 로직에 집중

- 데이터베이스와 연동하는 비즈니스 로직을 통해 얻어온 데이터를 저장

- 웹 브라우저의 요청에 따라 필요한 기능을 처리

- 컨트롤러가 요청한 작업을 처리한 후 알맞은 결과를 컨트롤러에게 전달

 

- Model의 역할

1. 컨트롤러로부터 요청을 받는다.

2. 비즈니스 로직을 수행한다.

3. 수행 결과는 컨트롤러를 거쳐 뷰에 전달된다.

 

 

* View

- 화면을 처리하는 부분에만 집중

- 사용자와의 인터페이스로 주로 JSP 페이지 사용

- 컨트롤러에서 request나 session 기본 객체에 저장한 데이터를 가져다 사용할 수 있음
모델이나 컨트롤러에서 이렇게 써놓으면 request.setAttribute("id")
연결되는 jsp 페이지에서 이런식으로 값을 가져와서 사용 가능
request.getAttribute("id")

 

 

* Controller

- 모델과 뷰 간의 흐름을 제어하는 역할

- 클라이언트의 요청을 받아 이를 수행하기 위한 모델 영역의 어떤 비즈니스 로직을 수행할지를 결정하고, 

  이를 처리한 후에 결과를 보여주기 위한 뷰를 선택. 주로 서블릿 이용.

- 비즈니스 로직 자체는 모델에서 처리하므로 서블릿은 모델이 내부적으로 어떻게 로직을 처리하는지 알 필요 없음

  단지, 웹 브라우저의 요청에 맞는 모델을 사용하여 요청한 기능을 수행하고 그 결과만을 JSP에 전달해주면 된다.

 

- Controller의 역할

1. 웹 브라우저의 요청을 받는다.

 

2. 웹 브라우저가 어떤 기능을 요청했는지 분석한다.

 

3. 분석된 요구사항을 바탕으로 필요한 비즈니스 로직을 처리하는 모델을 호출한다.

 

4. 모델로부터 전달받은 결과물을 알맞게 가공한 후, request나 session 기본 객체의 setAttribute 메서드를 사용하여

    결과값을 속성에 저장한다. 저장한 결과값은 JSP에서 사용한다.

 

5. 웹 브라우저에 처리 결과를 보여주기 위한 JSP를 선택한 후 해당 JSP를 포워딩한다.