Controller
- HTTP 요청을 받아서 파라미터를 검증하고, 비즈니스 로직을 실행
- 뷰에 전달할 결과 데이터를 조회해서 모델에 담음
Model
- 뷰에 출력할 데이터를 담아둠
- 뷰가 필요한 데이터를 모두 모델에 담아서 전달해주는 덕분에 뷰는 비즈니스 로직이나 데이터 접근을 몰라도 되고, 화면을 렌더링 하는 일에 집중할 수 있음
View
- 모델에 담겨있는 데이터를 사용해서 화면을 그리는 일에 집중
- HTML을 생성하는 부분
스프링 MVC 전체 구조
- 핸들러 조회: 핸들러 매핑을 통해 요청 URL에 매핑된 핸들러(컨트롤러)를 조회
- 핸들러 어댑터 조회: 핸들러를 실행할 수 있는 핸들러 어댑터를 조회
- 핸들러 어댑터 실행: 핸들러 어댑터를 실행
- 핸들러 실행: 핸들러 어댑터가 실제 핸들러를 실행
- ModelAndView 반환: 핸들러 어댑터는 핸들러가 반환하는 정보를 ModelAndView로 변환해서 반환
- viewResolver 호출: 뷰 리졸버를 찾고 실행
- JSP의 경우: InternalResourceViewResolver 가 자동 등록되고, 사용됨
- View 반환: 뷰 리졸버는 뷰의 논리 이름을 물리 이름으로 바꾸고, 렌더링 역할을 담당하는 뷰 객체를 반환
- JSP의 경우 InternalResourceView(JstlView) 를 반환하는데, 내부에 forward() 로직이 있음
- 뷰 렌더링: 뷰를 통해서 뷰를 렌더링 함
@Controller
- 스프링이 자동으로 스프링 빈으로 등록(내부에 @Component 애노테이션이 있어서 컴포넌트 스캔의 대상이 됨)
- 스프링 MVC에서 애노테이션 기반 컨트롤러로 인식
@RequestMapping
- 요청 정보를 매핑
@RequestParam
- 스프링은 HTTP 요청 파라미터를 @RequestParam 으로 받을 수 있음
참고 강의:
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의
웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., -
www.inflearn.com
'Spring Boot' 카테고리의 다른 글
Thymeleaf (0) | 2023.06.30 |
---|---|
Spring Boot - MVC 기능 (0) | 2023.06.30 |
스프링 핵심 원리 (0) | 2023.06.23 |
Spring Boot, 웹 MVC, DB 접근 기술 (1) | 2023.05.13 |
Spring Boot 예외 처리 (0) | 2023.01.22 |