본문 바로가기
Spring

[Spring] Thymeleaf 와 동적 페이지 & 정적 페이지

by 박졔삐 2024. 9. 27.

[ 동적페이지 & 정적페이지 ]


동적 페이지와 정적페이지는 웹 페이지의 콘텐츠가 어떻게 생성되는지를 기준으로
구분된다. 

 

 

* 정적 페이지 - Static Page *

 

-  정의 : 서버에 저장된 html파일이 그대로 클라이언트에게 전송된다.
즉, 페이지의 내용이 고정되어 있고, 요청할 때마다 변하지 않는다.
-  예시 : 일반적인 HTML 파일이나 CSS로 만든 홈페이지 

 

- 특징 :

  • 빠르게 로드됨.
  • 변동이 없으므로 업데이트가 필요할 때마다 파일을 수정해야 함.
  • 주로 정보 제공용 웹사이트에 사용됨.



* 동적 페이지 - Dynamic Page *

 

- 정의 : 서버에서 요청에 따라 실시간으로 콘텐츠가 생성되어 클라이언트에게 
전송된다. 데이터베이스와 연결되어 동적인 정보를 보여줄 수 있다.
- 예시 : 사용자 로그인, 블로그, 소셜 미디어 피드 등.
- 특징 : 

  • 사용자나 상황에 따라 내용이 달라짐.
  • 서버에서 데이터베이스에서 정보를 가져와서 실시간으로 페이지를 생성.
  • 업데이트가 용이하고, 다양한 사용자 경험을 제공할 수 있음.

 

 


[요약]

 

정적페이지: 변하지 않는 콘텐츠, 빠른로드.
동적페이지: 실시간으로 변하는 콘텐츠, 데이터베이스와 연동.

이렇게 두 종류의 페이지는 각각의 용도와 상황에 따라 선택된다.



 

 



[Thymeleaf와 Templates]

 

 

* Thymeleaf *

 

Thymeleaf는 템플릿 엔진이다. HTML 파일안에 동적으로 데이터를 삽입하고 웹 페이지를 생성하는데 도움을 준다.

 


[주요 특징]

  • HTML 템플릿 : Thymeleaf는 HTML 파일을 그대로 사용하므로, 디자이너가 작성한
    HTML 구조를 변경할 필요 없이 사용할 수 있다.
  • 서버 사이드 렌더링 : 서버에서 데이터를 처리하고, 최종적으로 완성된 HTML을 클라이언트에 전달한다. 사용자는 렌더링된 HTML을 보게된다.
  •  유연한 데이터 삽입 : HTML 속성이나 텍스트 콘텐츠에 동적으로 데이터를 삽입할 수 있는 다양한 기능을 제공한다. 예를 들어, 변수, 조건문, 반복문 등을 사용할 수 있다.

 


* Templates *


기본적인 구조나 형식을 미리 정해 놓은 파일.


웹 페이지를 만들 때, 템플릿은 HTML 문서의 뼈대가 되는 부분이라고 
생각하면 된다.

예를 들어, 웹 페이지에서 공통적으로 사용되는 헤더, 푸터, 사이드바 같은 
요소들을 템플릿에 미리 만들어 놓고, 필요한 내용만 바꾸거나 추가해서 사용하면
훨씬 효율적이다.

템플릿을 사용하면

  •  재사용성 : 같은 구조를 여러 페이지에서 쉽게 쓸 수 있다.
  • 유지 보수 용이: 디자인이나 구조를 한 번 수정하면, 그 템플릿을 사용하는
    모든 페이지에 적용된다.
  • 동적 컨텐츠: 서버에서 데이터를 받아와서 템플릿에 쉽게 넣을 수 있다.

 

 



즉, 템플릿은 웹 페이지를 만드는 데 도움을 주는 일종의 "형식"이나 "설계도"이다.

 

 

Thymeleaf는 템플릿을 만드는 도구이고, 템플릿은 Thymeleaf를 통해
작성된 HTML 파일이다.



[기본 사용법]


템플릿 파일 생성: src/main/resources/templates 폴더에 .html 파일을 생성한다.
컨트롤러에서 데이터 전달: Sprong Boot 컨트롤러에서 모델에 데이터를 추가하고 
템플릿 이름을 반환한다.

@GetMapping("/greet")
public String greet(Model model){
model.addAttribute("name", "사용자");
return "greet";  // greet.html 템플릿을 참조
}

 

728x90
반응형

'Spring' 카테고리의 다른 글

[Spring] Jackson과 ObjectMapper  (0) 2024.09.30
[Spring] @ResponseBody, @RestController  (0) 2024.09.30
[Spring] Controller  (0) 2024.09.27
[Spring] HTTP 오류 코드 정리  (0) 2024.09.27
[Spring] API와 RESTful 서비스  (0) 2024.09.26