반응형
MVC 패턴
M, V, C가 나뉘어서 서버를 구성하는 모델을 모델2라고 하며 모델 1과 모델2의 차이도 있겠지만 여기서는 생략한다.
M, V, C의 역할
Model(모델)
- 컨트롤러가 호출할 때, 요청에 맞는 역할을 수행한다.
- 비즈니스 로직을 구현하는 영역으로 응용프로그램에서 데이터를 처리하는 부분이다.
- 비즈니스 로직이란 업무에 필요한 데이터처리를 수행하는 응용프로그램의 일부이다.
- DB에 연결하고 데이터를 추출하거나 저장, 삭제, 업데이트, 변환 등의 작업을 수행한다.
- 상태 변화가 있을 때 컨트롤러와 뷰에 통보해 후속 조치 명령을 받을 수 있도록 한다.
- 애플리케이션의 상태(data)를 나타내고 일반적으로
POJO
로 구성된다. - Java Beans
Contoller(컨트롤러)
- 일종의 조정자라고 할 수 있다.(View - Model 사이의 인터페이스 역할)
- 클라이언트의 요청을 받았을 때, 그 요청에 대해 실제 업무를 수행하는 모델 컴포넌트를 호출한다.
- 또한, 클라이언트가 보낸 데이터가 있다면 모델에 전달하기 쉽게 데이터를 가공한다.
- 모델이 업무를 마치면 그 결과를 뷰에게 전달한다.
Controller -> Service -> DAO -> DB
View(뷰)
- 컨트롤러부터 받은 모델의 결과값을 가지고 사용자에게 출력할 화면을 만드는 일을 한다.
- 만들어진 화면을 웹브라우저에 전송하여 웹브라우저가 출력하게 하는 것이다.
- 화면에 표시되는 부분으로 추출한 데이터나 일반적인 텍스트 데이터를 표시하거나 입력폼 또는 사용자와의 상호작용을 위한 인터페이스를 표시하는 영역이다.
- JSP
- JSP 이외에도 Thymeleaf, Groovy, Freemarker 등 여러 템플릿 엔진이 존재
MVC 구동원리
Client - Server 구조로 요청을 하면 그에 맞는 응답을 하는 것을 기반으로 한다.
- 웹 브라우저가 웹 서버에 웹 애플리케이션 실행을 요청한다. (MVC구조가 WAS라고 보면 된다)
- 웹 서버는 들어온 요청을 처리할 수 있는 서블릿을 찾아서 요청을 전달한다.(Matching)
- 서블릿은 모델 자바 객체의 메서드를 호출한다.
- 데이터를 가공해서 값 객체를 생성하거나, JDBC를 사용해 데이터베이스와의 인터랙션을 통한 값 객체를 생성한다.
- 업무 수행을 마친 결과값을 컨트롤러에게 반환한다.
- 컨트롤러는 모델로부터 받은 결과값을 View에게 전달한다.
- JSP는 전달받은 값을 참조하여 출력할 결과 화면을 만들고 다시 컨트롤러에게 전달한다.
- 뷰로부터 받은 화면을 웹 서버에게 전달한다.
- 웹 브라우저는 웹 서버로부터 요청한 결과값을 받으면 그 값을 화면에 출력한다.
참조
반응형
'웹 프로그래밍 > [ Spring ]' 카테고리의 다른 글
[ Spring ] 07. Spring의 IoC Container와 Application Context 계층 구조 (0) | 2021.06.30 |
---|---|
[ Spring ] 06. Spring MVC Framework와 Dispatcher-Servlet (0) | 2021.06.30 |
[ Spring ] 04. POJO (Plain Old Java Object)에 관해 (0) | 2021.06.30 |
[ Spring ] 03. JSP(Java Server Page) (0) | 2021.06.30 |
[ Spring ] 02. Servlet(서블릿)을 파헤쳐보자. (0) | 2021.06.30 |