[지금 무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 강의 | 김영한 - 인프
김영한 | 스프링 입문자가 예제를 만들어가면서 스프링 웹 애플리케이션 개발 전반을 빠르게 학습할 수 있습니다., 스프링 학습 첫 길잡이! 개발 공부의 길을 잃지 않도록 도와드립니다. 📣 확
www.inflearn.com

오늘은 thymeleaf 템플릿 엔진 동작 과정에 대해서 살펴보자.
💻 Thymeleaf란?
타임리프는 Java 기반 웹 애플리케이션에서 널리 사용되는 템플릿 엔진이다. 주로 Spring MVC와 함께 사용된다. HTML 파일 내에서 데이터 바인딩, 조건부 렌더링, 반복 처리 등의 기능을 제공하고 동적인 웹 페이지를 쉽게 생성할 수 있게 해준다.
여기서 Thymeleaf의 동작 과정을 보자.
1. 먼저 템플릿 파일을 준비한다.

templates 폴더 안에 hello.html 파일을 생성했다.

2. 컨트롤러에서 모델 데이터를 준비한다.

여기서 MVC 를 살펴보면
모델 객체
- Model은 Spring에서 제공하는 인터페이스이다. 컨트롤러에서 뷰로 데이터를 전달하기 위해 사용된다.
데이터 추가
- addAttribute 메서드는 키와 값을 받아 모델에 추가한다. 여기서는 data라는 키에 hello!!라는 값을 추가한 것이다.
뷰에서 사용
- 모델에 추가된 데이터는 Thymeleaf 템플릿 엔진에서 사용된다. 지금 위의 hello.html에서 ${data}를 사용하여 데이터에 접근한 것이다.
3. Thymeleaf 템플릿 렌더링
이제 해당 템플릿 파일을 읽고, model 에 담긴 데이터를 바인딩하여 최종 HTML을 생성한다!
url은 localhost:8080/hello

📑 동작 과정
동작 과정을 보고 정리해보면 다음과 같다.

1. 웹 브라우저 요청
사용자가 localhost:8080의 @GetMapping("/hello")으로 요청을 보낸다.
2. 컨트롤러에서 처리
Spring Boot는 해당 요청을 처리할 컨트롤러 메서드를 호출한다. 그 메서드는 model.addAttribute를 통해 data라는 키와 hello!!라는 값을 모델에 추가한다. 그 후 hello라는 뷰 이름을 반환한다.
3. 뷰 리졸버
뷰 리졸버가 hello라는 이름을 기반으로 hello.html템플릿 파일을 찾는다.
4. 렌더링
Thymeleaf 템블릿 엔징이 hello.html을 렌더링하고, 모델에 있는 data 값을 ${data}로 대체해 최종 HTML을 생성한다.
5. 결과 전달
생성된 HTML은 웹 브라우저에 전송되어 사용자가 렌더링된 결과를 확인할 수 있다.
'🙋♀️ Server' 카테고리의 다른 글
| [Server] Database 설계 & SQL 1452 문제 해결 (2) | 2024.12.17 |
|---|---|
| [Web] MySQL + Node.js로 MVC 패턴 적용 (2) | 2024.12.03 |
| [Server] 임시 DB로 Node.js에서 MVC 패턴 연습하기 (0) | 2024.12.01 |
| [Web] let, var, const의 차이 (2) | 2024.11.09 |
| [Java] 객체지향이라는게 뭘까 (0) | 2024.09.21 |