웹 개발 방식_MVC + 템플릿 엔진 방식

2024. 2. 21. 22:15SPRING

MVC 방식이란?

Model, View , Controller 으로 3개의 계층으로 관심사를 나누어 개발하는 방식임.

여기에 동적인 데이터 할당을 위해 템플릿 엔진을 곁들여 주는 것이 MVC + 템플릿 엔진 방식임.

 

템플릿 엔진?

템플릿 엔진은 템플릿 양식(변수 따위)에 특정 데이터를 넣어 결과 문서를 출력하는 엔진임.

현재 학습상에서 템플릿 엔진은 thymeleaf 임.

thymeleaf 는 Server Side Randering 방식임. 일단 그런 게 있다는 걸 알아두고 심화는 나중에 해볼 예정.

 

아무튼,

mvc + 템플릿 엔진 개발 방식

= 관심사를 크게 3개(model, view, controller)로 나누고, 템플릿 엔진을 통해 특정 데이터들을 렌더링해서 view에 뿌려주는 방식임.

 

렌더링?

데이터나 요청에 대한 프로그램의 생성 결과물을 화면에 표시하는 과정임.

가령, java로 Toy 인스턴스를 생성했을 때, 이 Toy를 사용자에게 보여줄 수 있겠음? 없음. 보여주기 위한 과정(절차)가 필요함. 그게 렌더링임.

 

@GetMapping("study-mvc")
public String studyMvc(@RequestParam(value = "name", required = false) String name, Model model) {
    model.addAttribute("name", name);
    return "studyMvc-template";
}

 

 

정적인 컨텐츠가 아님.

resourses의 templates dir를 이용해야 함. 그게 약속이니까.

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<p th:text="'study' + ${name}"> 타임리프에 값 안 들어오면 이거 노출되지롱</p>
</body>
</html>

 

요청 URL 에 ?name=chaboom 입력하면 model 에 attribute 로서 키와 값이 담기고, 이게 일련의 과정을 거쳐 th:text = "${name}" 으로 바인딩 되어 노출됨.

 

'SPRING' 카테고리의 다른 글

의존 주입  (0) 2024.02.25
테스트 코드 작성 시의 에로사항  (0) 2024.02.24
웹 개발 방식_API  (0) 2024.02.21
@RequestParam  (0) 2024.02.21
웹 개발 방식_정적 컨텐츠 전달  (0) 2024.02.21