2. 스프링 웹 개발 기초
2.2 MVC와 템플릿 엔진
1. MVC: Model, View, Controller 이들을 세가지로 나누는 이유는?
유지보수를 조금 더 편하게 하려고 모델 뷰 컨트롤러로 나누고 모델과 컨트롤러는 또 비지니스 로직으로 뷰는 뷰를 위한 그림그리기 작업을 집중적으로 진행한다.
2. MVC, 템플릿 엔진 사용 예시
@GetMapping("hello-mvc")
public String helloMvc(@RequestParam(value = "name") String name, Model model){
model.addAttribute("name",name);
return "hello-template";
}
//코드 일부만 가져온 것임
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<p th:text="'hello ' + ${name}">hello! empty</p>
<!--html을 그대로 쓰고 서버 없이 봐도 껍데기를 볼 수 있는것이 타임리프의 장점이다.
hello! empty는 안 써도 되는데 마크업 할 때 사용하기 때문이고 서버를 이용해서 열면 안 보이는 내용임-->
</body>
</html>
3. 템플릿 엔진 이미지(위의 설명)
- 스프링부트를 띄울 때 같이 띄우는 내장 톰켓서버를 먼저 거치고 스프링에게 전해준다.
- 스프링부트는 MVC가 왔다고 받고 helloController에 저 메소드가 매핑이 되어 있는 것을 확인한 뒤 그 메소드를 호출해준다.
- 이때 리턴을 해줄 hello-template으로 넘겨주고 모델 안에는 키는: name 값:spring를 스프링에 넘겨 보낸다.
- viewResolver는 템플릿 엔진을 연결해주고 처리해주는 것을(간단하게만 이해) 의미한다.
- 여기서 정적 콘텐츠의 경우엔 HTML 변환을 하지 않고 보내고 MVC, 템플릿 엔진을 사용할 땐 HTML을 변환해서 웹브라우저에 전달하는 차이를 볼 수 있다.
'Back-End > Spring' 카테고리의 다른 글
[SpringBoot][스프링 입문] - 2장 스프링 웹 개발 기초 <정리> (0) | 2021.12.21 |
---|---|
[SpringBoot][스프링 입문] - 2.3 API (0) | 2021.12.21 |
[SpringBoot][스프링 입문] - 2.1 정적 콘텐츠 (0) | 2021.12.21 |
[SpringBoot][스프링 입문] - 1.4 빌드하고 실행하기 (0) | 2021.12.20 |
[SpringBoot][스프링 입문] - 1.3 View 환경설정 (0) | 2021.12.20 |