일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 스프링 구글차트로 기간별 현황 조회하기
- CSS
- 오라클월별데이터
- java
- maven
- 오라클통계
- 제이쿼리
- 오라클
- 세션
- 스프링과 스프링부트 차이점
- 스프링 에러
- 스프링
- 자바왕초보
- 오라클일별데이터
- 자바왕기초
- 오라클클라우드에 젠킨스 설치하기
- 스프링 구글차트
- 오라클주별데이터
- 자바
- 자바 기초
- 스프링 Ioc
- Spring Boot가 해결하려고 했던 문제
- HTML
- 스프링 Ioc Container
- 스프링 제어역전
- jsp
- 자바기초
- 썸머노트
- 스프링 부트가 해결하려고 했던 문제
- 자바 왕기초
- Today
- Total
Just Do it
[스프링] 모델 2와 스프링 MVC 본문
*출처: Chapter05 스프링 MVC의 기본 구조, 코드로 배우는 스프링 웹 프로젝트 개정판, 구멍가게 코딩단, 남가람북스
0. 스프링 MVC (Model View Controller)는 '모델 2'라는 방식으로 처리되는 구조이다.
* 모델 2방식: 로직과 화면을 분리하는 스타일의 개발 방식
1. 스프링 MVC의 기본 구조는 아래 그림과 같다.
[1] 사용자의 Request는 Front-Controllerdls DispatcherServlet을 통해서 처리한다.
[2][3] HandlerMapping은 Request의 처리를 담당하는 컨트롤러를 찾기 위해 존재한다. 개발자가 @RequestMapping 어노테이션을 적용한 것을 기준으로 판단한다. 적절한 컨트롤러가 찾아졌다면 HandlerAdapter를 이용해서 해당 컨트롤러를 동작시킨다.
[4] Controller는 개발자가 작성하는 클래스로 실제 Request를 처리하는 로직을 작성하게 된다. 이때 View에 전달해야하는 데이터는 주로 Model이라는 객체에 담아서 전달한다. Controller는 다양한 타입의 결과를 반환하는데 이에 대한 처리는 ViewResolver를 이용하게 된다.
[5] ViewResolver는 Controller가 반환한 결과를 어떤 View를 통해서 처리하는 것이 좋을지 해석하는 역할을 한다. 가장 흔하게 사용하는 설정은 servlet-context.xml에 정의된 InternalResourceViewResolver이다.
[6][7] View는 실제로 응답 보내야 하는 데이터를 JSP 등을 이용해서 생성하는 역할을 하게 된다. 만들어진 응답은 DispatcherServlet을 통해 전송된다.
2. 위의 그림을 보면 모든 Request는 DispatcherServlet을 통하도록 설계되어는데, 이런 방식을 Front-Controller패턴이라고 한다. 이 패턴을 이용하면 전체 흐름을 강제로 제한할 수 있다.
'신입 개발자가 되기 위해 공부했던 독학 자료들 > 자꾸 까먹는 기본 개념 모음' 카테고리의 다른 글
[스프링 기초 개념] pom.xml과 Maven이 무엇일까? (0) | 2022.02.16 |
---|---|
세션(session)을 시작할까? (0) | 2022.02.08 |
세션(Session)이란? (0) | 2022.02.08 |
쿠키(Cookie)란? (0) | 2022.02.08 |
[스프링] 스프링 프로젝트의 로딩 구조 (0) | 2022.02.07 |