Thymeleaf์ ๋ํ์ฌ (with.Java)
Thymeleaf์ ๋ํ์ฌ (with.Java) ์์๋ณธ ๊ธ์ ๋๋ค.
Thymeleaf: ์๋ฐ ๊ธฐ๋ฐ ํ ํ๋ฆฟ ์์ง์ ๋งค๋ ฅ
์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐํ๊ณ ํ๋ฉด์ ํํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํนํ, Java ๊ธฐ๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ํจ์จ์ ์ด๊ณ ์ง๊ด์ ์ธ ํ ํ๋ฆฟ ์์ง์ ์ฌ์ฉํ๋ ๊ฒ์ด ์์ฐ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. Thymeleaf๋ ์ด๋ฌํ ํ์๋ฅผ ์ถฉ์กฑ์ํค๊ธฐ ์ํด ์ค๊ณ๋ Java ๊ธฐ๋ฐ์ ํ ํ๋ฆฟ ์์ง์ ๋๋ค.
Thymeleaf๋ ๋ฌด์์ธ๊ฐ?
Thymeleaf๋ ์๋ฐ ๊ธฐ๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์
์์ HTML, XML, JavaScript, CSS, ๊ทธ๋ฆฌ๊ณ ํ
์คํธ ๋ฑ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํ
ํ๋ฆฟ ์์ง์
๋๋ค. Spring Framework์์ ๊ฐ๋ ฅํ ํตํฉ์ผ๋ก ์ ๋ช
ํ๋ฉฐ, ๋์ ์น ํ์ด์ง๋ฅผ ๊ตฌ์ฑํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค.
Thymeleaf๋ HTML ๋ฌธ๋ฒ์ ์ ์งํ๋ฉด์๋ ๋์ ์ธ ์ฝํ
์ธ ๋ฅผ ์ฝ์
ํ ์ ์์ด, ๋์์ด๋์ ๊ฐ๋ฐ์๊ฐ ํ์
ํ๊ธฐ ์ฌ์ด ๊ตฌ์กฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
Thymeleaf์ ์ฃผ์ ํน์ง
1. ์์ฐ์ค๋ฌ์ด HTML ์ฝ๋ ์์ฑ
Thymeleaf๋ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ๋ก ์ด์ด๋ ์ ์์ ์ผ๋ก ํ์๋๋ HTML ๋ฌธ๋ฒ์ ์ ์งํฉ๋๋ค. ์ด๋ฅผ ๋ด์ธ๋ด ํ ํ๋ฆฟ(Natural Template)์ด๋ผ๊ณ ํ๋ฉฐ, ๋์์ด๋์ ๊ฐ๋ฐ์ ๊ฐ ํ์ ์ ์ํํ๊ฒ ๋ง๋ญ๋๋ค.
2. Spring Framework์์ ์๋ฒฝํ ํตํฉ
Thymeleaf๋ Spring MVC์ ์์ฐ์ค๋ฝ๊ฒ ์ฐ๋๋๋ฉฐ, ๋ชจ๋ธ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ํ
ํ๋ฆฟ์ผ๋ก ์ ๋ฌํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Model
๊ฐ์ฒด์ ๋ด๊ธด ๋ฐ์ดํฐ๋ฅผ ๋ทฐ์์ ๋ฐ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
3. ํํ์ ์ง์
Thymeleaf๋ ๋ค์ํ ํํ์์ ์ ๊ณตํ์ฌ ๋์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- ๋ณ์ ํํ์:
${}
- ์กฐ๊ฑด๋ถ ํํ์:
th:if
,th:unless
- ๋ฐ๋ณต ํํ์:
th:each
4. ์๋ฒ-์ฌ์ด๋ ๋ ๋๋ง
์๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋งํ HTML ํ์ด์ง๋ฅผ ๋ฐํํ๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ ์ธก์์ ์ถ๊ฐ์ ์ธ ๋ ๋๋ง ์์ ์ด ํ์ํ์ง ์์ต๋๋ค.
5. ํ์ฅ์ฑ
Thymeleaf๋ ํ๋ฌ๊ทธ์ธ๊ณผ ์ ํธ๋ฆฌํฐ๋ฅผ ํตํด ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์์ผ๋ฉฐ, ์ปค์คํ ๋ค์ด์ผ๋ ํธ๋ฅผ ๋ง๋ค์ด ํน์ ์๊ตฌ ์ฌํญ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
Thymeleaf๋ ์ง๊ด์ ์ด๊ณ ๊ฐ๋ ฅํ ํ ํ๋ฆฟ ์์ง์ผ๋ก, Java ๊ธฐ๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋์ ์ธ ์น ํ์ด์ง๋ฅผ ์์ฑํ ๋ ๋งค์ฐ ์ ์ฉํฉ๋๋ค. ํนํ, Spring Framework์์ ์์ฐ์ค๋ฌ์ด ํตํฉ์ผ๋ก ์์ฐ์ฑ์ ๋์ด๊ณ , HTML ์นํ์ ์ธ ๋ฌธ๋ฒ์ผ๋ก ๊ฐ๋ฐ์์ ๋์์ด๋ ๊ฐ ํ์ ์ ์ํํ๊ฒ ๋ง๋ค์ด์ค๋๋ค.
Thymeleaf๋ฅผ ํ์ฉํ์ฌ ๋์ฑ ํจ์จ์ ์ด๊ณ ๊ฐ๊ฒฐํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด๋ณด์ธ์! ๐