티스토리 뷰
MVC (Model-View-Controller)
Model : 데이터
View : 실제로 렌더링되어 보이는 페이지
Controller : 클라이언트의 요청을 받고 응답을 준다
MVC 패턴은 Dispatcher Servlet을 중심으로 동작합니다.
Dispatcher Servlet은 Servlet의 한 종류로 Servlet에 대해 먼저 알아보겠습니다.
Servlet 특징
- JAVA기반의 웹 애플리케이션 프로그래밍 기술
- 웹 기반의 요청에 대해 동적으로 처리해주는 역할
- HttpServlet이라는 JAVA 클래스를 상속
- 요청, 응답의 흐름을 간단한 메서드 호출로 체계적으로 다룰 수 있게 해주는 기술
- 클라이언트가 요청 시, 결과를 다시 전송해주는 프로그램

Servlet의 생명주기
init() - 서블릿이 처음으로 요청될 때 초기화 하는 메서드
Service() - 서블릿 컨테이너가 요청을 받고 응답을 내려줄 때 필요한 서블릿 메서드
destroy() - 사용되지 않는 서블릿 클래스를 주기적으로 서블릿 컨테이너가 메서드를 호출하여 제거
Servlet Container?
: Servlet을 담고 관리해주는 컨테이너입니다.
Servlet Container 특징
1. 생명주기 관리
→ 요청이 들어오면 적절한 서블릿 메서드를 찾아 동작
2. 통신 지원
→ 클라이언트의 요청을 받고 응답을 보낼 수 있게 웹 서버와 소켓을 만들어 통신
3. 멀티스레딩 관리
→ 서블릿 요청 시 스레드를 생성하여 작업 수행, 동시에 여러 요청이 들어와도 동시다발적인 작업 관리
4. 선언적인 보안관리
→ 보안 관련 기능 지원
Dispatcher Servlet?
: Servlet Container에서 HTTP 프로토콜을 통해 들어오는 모든 요청을 중앙집중식으로 처리해주는 프론트 컨트롤러, HttpServlet을 상속 받아 사용, Servlet으로 동작합니다.

* web.xml에 dispatcher servlet에 대한 설정을 해주면 모든 요청이 들어왔을 때 Dispatcher servler으로 가게 됩니다.
MVC FLOW

: 요청이 들어오게 되면 Servlet Container는 Dispatcher Servlet으로 일을 위임합니다.

: DIspatcher Servlet은 Handler Mapping을 통해 적절한 Controller를 찾습니다.

: 전달받은 Contrller를 Handler Adapter로 넘겨 Controller 메소드를 Handler Adapter가 실행하고 , Controller에서는 Model(Data)값과 View(page name)을 넘겨줍니다.
Handler Adapter는 ModelAndView형태로 바꿔줍니다.

: Controller에서 보내온 VIew 이름을 토대로 View Resolver가 View를 검색합니다.

: 최종적으로 View에 Model(data)을 포함합니다.

결론적으로는 Spring MVC는 위와 같은 로직을 실행하게 됩니다.
* Handler Mapping : 적절한 Controller를 찾아서 반환
* Handler Adapter : Controller 메서드를 실행
* Controller : 요청받은 일에 대해 최종적으로 보여줄 View 이름, Data를 응답해줌
* View Resolver : View를 검색함
* VIew : data를 렌더링하여 사용자에게 보여줌
실행순서 : Request -> Servlet Contanier -> DispatcherServlet -> HandlerMapping -> Controller -> DispatcherServlet -> ViewResolver -> View -> Response
'Development > Spring' 카테고리의 다른 글
Spring IoC / DI 특징 (0) | 2022.04.05 |
---|
- Total
- Today
- Yesterday