웹을 개발한다는 건 크게 세 가지 방법이 있다.
-정적 컨텐츠 -MVC와 템플릿 엔진(가장 많이 씀-jsp, php 등) -API
MVC와 템플릿 엔진
Model, View, Controller
예전에는 controller, view 분리가 안 되어 있었음. 오잉... view에서 모든 걸 다 했음. (model 1방식)
지금은 MVC. "관심사의 분리"
View는 화면을 그리는데 역량을 집중!
Controller, model은 비즈니스 로직, 내부적인 거 처리 집중!
쪼개는 게 좋겠다! 그래야 협업도 좋고, 복잡하지도 않고. 안 쪼개? 유지보수 혼자.... ;;
@GetMapping("hello-mvc")
// public String helloMvc(@RequestParam(name = "name", required = false) String name, Model model) {
// required = default값이 true이다. 값을 넘겨줘야 한다.
public String helloMvc(@RequestParam(name = "name") String name, Model model) {
model.addAttribute("name",name);
return "hello-template";
}
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<p th:text="'hello' + ${name}">hello! empty</p>
</body>
</html>
이걸 그림으로 보자.
웹 브라우저에서 요청한다. 내장 톰켓 서버에서 어 hello-mvc왔어! spring이거봐바. controller에 맵핑 되어있네? return hello-template model값 viewResolver(화면과 관련 된 해결자가 동작)- Thymeleaf 템플릿 엔진 처리 후 렌더링 해서 변환해서 HTML로 보내줌.
템플릿 엔진! 변환해서 넘겨줌!
해당 포스팅은 인프런 김영한님의 스프링 강의를 따라가며 정리한 노트입니다 :)
반응형
'Spring > Spring' 카테고리의 다른 글
spring-boot API 방식 (0) | 2021.04.15 |
---|---|
spring-boot 정적 컨텐츠, static (0) | 2021.04.15 |
spring-boot gradle 빌드하고 실행하기 및 버전 오류 (0) | 2021.04.15 |
spring-boot View 환경 설정 (0) | 2021.04.15 |
spring-boot 프로젝트 생성 (0) | 2021.04.14 |
Uploaded by Notion2Tistory v1.1.0