🙋‍♀️ Server

[Spring] 스프링 입문 - thymeleaf 동작 환경 과정

수댕ʕت̫͡ʔ 2024. 9. 23. 23:22

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EC%9E%85%EB%AC%B8-%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8/dashboard

 

[지금 무료] 스프링 입문 - 코드로 배우는 스프링 부트, 웹 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은 웹 브라우저에 전송되어 사용자가 렌더링된 결과를 확인할 수 있다.