기본 콘텐츠로 건너뛰기

7월, 2024의 게시물 표시

개발 공부 - Thymeleaf

https://www.bubblecat.co.kr/2022/11/web.html 위 글 이후로 오랜만에 템플릿 엔진 관련 글을 쓴다. 타임리프를 사용한 프로젝트를 하나 끝내고 쓰는 회고이다. 최종 안내를 마치고 간단하게 정리하는 목적 및  열정 있게 블로그를 쓰는 나의 모습을 느끼기 위함이 기재 목적이다. https://www.thymeleaf.org/ 타임리프는 자바 기반의 서버 사이드 템플릿 엔진이다. 두괄식으로 타임리프의 장점을 요약하자면 1. 템플릿 엔진의 자연스러운 사용  2. 표현식의 강력함 3. 다양한 기능 지원 4. 스프링과의 통합 을 장점으로 말할 수 있다. 타임리프는 Spring 기반 프로젝트일때 주로 사용을 하는데, 레거시보다는 부트 기반으로 많이 쓰는 것 같다. (개인 체험) 기본적으로는 HTML 형태를 유지하면서 동적인 웹 페이지를 생성하는 것이 목적이다. [템플릿 자체를 브라우저에서 직접 열어도 문제가 없다는 것이 큰 장점이다.] 1. HTML 파일을 그대로 유지해서 브라우저에서 직접 열 수 있도록 지원한다. : 협업도 용이하게 하는 것이 목표이다. 2. 서버 사이드의 데이터를 조작하기 용이하도록 표현식 문법을 지원한다. : 아래와 같은 형식이다. 변수 표현식: ${...} 선택 변수 표현식: *{...} 메시지 표현식: #{...} 링크 표현식: @{...} 조각 표현식: ~{...} 3. 자체 태그를 정의할 수가 있어서 확장성이 좋다. : div 내에 th: 로 시작하는 것을 볼 경우에는 타임리프일 확률이 크다. 재사용 목적으로 템플릿 조각을 사용할 수 있는 기능을 제공한다. 반복문/조건문도 each/if 등을 지원해서 동적 컨텐츠 생성 시에 도움이 된다. 4. Spring 에서 사용하기가 좋다. 5. 다국어 지원이 가능하다. (유지보수 시에 굉장히 많이 확인 필요! 서버가 바라보고 있는 message가 1개가 아닐 수 있다!!!! 숙지!!! 디버깅 시 확인 필요!!!!) : messages.properties 같은 경우가 타임리