MVC 패턴
MVC (모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴입니다.
MVC 패턴은 Model, View, Controller로 구성되어 있다.
- 모델: 데이터와 비즈니스 로직을 관리합니다.
- 뷰: 레이아웃과 화면을 처리합니다.
- 컨트롤러: 모델과 뷰로 명령을 전달합니다.
Model
DAO 클래스 ( Data Access Object )
- 데이터베이스에 접속해서 데이터의 추가, 삭제, 수정 등의 작업을 하는 클래스이다.
- 일반적으로 JSP 혹은 Servlet에서 위의 로직을 함께 기술할 수 있지만, 유지보수 및 코드의 모듈화를 위해 별도의
DAO를 만들어 사용한다. - 보통 한 개의 테이블마다 한 개의 DAO 클래스를 작성한다.
- DAO 클래스는 테이블로부터 데이터를 읽어와 자바 객체로 변환하거나 자바 객체의 값을 테이블에 저장한다.
- DAO를 구현하면 테이블의 컬럼과 매핑되는 값을 갖는 자바빈 클래스를 작성한다. 이 클래스를 VO 클래스라 한다.
VO 클래스 ( Value Object ) / DTO 클래스 ( Data Transfer Object )
- 별도의 VO 클래스를 작성하여 데이터베이스와 관련된 변수들의 모음 역할을 한다.
- VO클래스는 자바빈 클래스로 생성한다.
URL Pattern
- 디렉토리 패턴 : 디렉토리 형태로 서버의 해당 컴포넌트를 찾아서 실행하는 구조이다.
- 확장자 패턴 : 확장자 형태로 서버의 해당 컴포넌트를 찾아서 실행하는 구조입니다
MVC Model 2 Architecture
- 모델 2 구조는 웹 브라우저의 요청을 하나의 서블릿이 받으며 서블릿은 그 요청을 알맞게 처리한 후
그 결과를 보여줄 JSP 페이지로 포워딩한다. - 이 구조의 특징은 웹 브라우저의 모든 요청을 단일 진입점, 즉 하나의 서블릿에서 처리한다는 점에 있다.
- 하나의 서블릿이 모든 요청을 받기 때문에 서블릿은 웹 브라우저의 요청을 구분하는 방법이 필요하다.
MVC 모델 2의 구조의 핵심
모델(Model) : 비즈니스와 관련된 로직만 처리, 사용자에게 보일 화면이나 요청의 흐름제어에 관여하지 않는다.
뷰(View) : 사용자에게 알맞은 화면을 보여주는 역할만 수행, 비즈니스 로직이나 요청 흐름 제어 등 처리 X
컨트롤러(Controller) : 사용자의 요청 url을 기반으로 알맞은 모델 사용하고, 뷰를 선택한다.
MVC의 Controller : 서블릿
- 모델 2 구조에서 서블릿은 MVC 패턴의 컨트롤러 역할을 한다.
서블릿은 웹 브라우저의 요청과 웹 어플리케이션의 전체적인 흐름을 제어한다.
컨트롤러의 흐름 제어 처리 로직
- 웹 브라우저가 전송한 HTTP 요청을 받아 요청방식에 맞게 doGet(), doPost()를 호출
- 웹 브라우저가 어떤 기능을 요청했는지 분석
- 모델을 사용하여 요청한 기능을 수행
- 모델로부터 전달받은 결과물을 알맞게 가공한 후, request나 session의 setAttribute() 메서드를 이용하여
결과값 을 속성에 저장 ▶ 저장한 결과값은 뷰인 JSP에서 사용 - 웹 브라우저에 결과를 전송할 JSP 페이지를 선택한 후, 해당 JSP로 포워딩(혹은 리다이렉트)
MVC의 VIEW : JSP
- 모델 2 구조에서 JSP는 뷰 역할을 담당한다.
- 뷰 역할을 하는 JSP는 컨트롤러에서 request 객체나 session객체에 저장 된 데이터를 사용하여
웹 브라우저에 알맞을 화면을 출력 - 뷰 역할을 하는 JSP는 웹 브라우저가 요청한 결과를 보여주는 프레젠테이션의 역할을 할 뿐만 아니라
웹 브라우저의 요 청을 컨트롤러에 전달해주는 매개체가 된다. - 뷰 역할을 하는 JSP는 웹 브라우저가 지속적으로 컨트롤러에 요청을 보낼 수 있는 링크나 폼을 제공해서
웹 브라우 저가 업무 흐름에 따라 컨트롤러에게 알맞은 요청을 보낼 수 있도록 한다.
MVC의 MODEL
- 모델은 비즈니스 로직부분을 처리한다.
- 컨트롤러는 서블릿을 통해 구현하고 뷰는 JSP를 통해서 구현하는데 모델은 명확하게 어떤 것을 통해서 구현한다는 규 칙은 없다. ▶ 단지 비즈니스 로직을 처리해주면 모델이 될 수 있습니다.
- 컨트롤러의 서블릿이 웹 브라우저의 요청을 분석하여 알맞은 모델을 호출하면서부터 모델의 기능이 시작됩니다.
모델 은 컨트롤러가 요청한 작업을 처리한 후 알맞은 결과를 컨트롤러에게 전달하는데,
이때 처리한 결과값을 저장하는 객체로 보통 자바빈을 사용한다.
728x90
'Programming > JSP' 카테고리의 다른 글
[JSP] EL / JSTL (0) | 2024.05.06 |
---|---|
[JSP] Connection Pool (0) | 2024.05.06 |
[JSP] JDBC (0) | 2024.05.06 |
[JSP] Action Tag, 액션 태그 (0) | 2024.05.06 |
[JSP] 예외 페이지 (0) | 2024.05.06 |