๐ ๋ฌธ์ ์ํฉ
Spring Boot ํ๋ก์ ํธ์์ Thymeleaf๋ฅผ ์ฌ์ฉํ๋ฉฐ TailwindCSS์ ์ ํธ๋ฆฌํฐ ํด๋์ค(justify-between, text-center, bg-blue-500 ๋ฑ)๊ฐ ์ ์ฉ๋์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
ํนํ header ๋ถ๋ถ์์ justify-between ํด๋์ค๋ฅผ ์ถ๊ฐํ์์๋ ๋ ์ด์์์ด ๊ธฐ๋ํ ๋๋ก ๋ณ๊ฒฝ๋์ง ์์๋ค.
๐ ๋ฌธ์ ์์ธ
Tailwind CSS ๋น๋ ํ์ผ ๋ฏธ์์ฑ ๋๋ ๊ฐฑ์ ๋ฌธ์
Tailwind CSS๋ฒ์ 3.0 ์ด์์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก JIT(Just-In-Time) ๋ชจ๋๋ก ๋์ํ๋ฉฐ, ์ค์ HTML, JS ํ์ผ ๋ฑ์์ ์ฌ์ฉ๋ ์ ํธ๋ฆฌํฐ ํด๋์ค๋ง์ ๊ธฐ๋ฐ์ผ๋ก ์ต์ข CSS ํ์ผ์ ์์ฑํ๋ค.
- JIT ๋ชจ๋๋? ํ์ํ ๋ ์ฆ์ CSS๋ฅผ ์์ฑํ์ฌ ์ฑ๋ฅ์ ์ต์ ํํ๋ ๋ฐฉ์์ผ๋ก, ์ค์ ๋ content ๊ฒฝ๋ก์์ ํด๋์ค๋ฅผ ํ์ํ๋ค.
- ๋ฌธ์ ์ ํต์ฌ: Tailwind CSS์ ๋น๋ ๋ช ๋ น์ด๋ฅผ ์คํํ์ง ์์ผ๋ฉด ์๋ก ์ถ๊ฐํ ํด๋์ค๊ฐ output.css์ ํฌํจ๋์ง ์๋๋ค.
์ฆ, ๋ด ์ํฉ์์๋ ๋น๋ ๋ช ๋ น์ด๋ฅผ ์คํํ์ง ์์๊ฑฐ๋, --watch ์ต์ ์ ์ฃผ์ง ์์ผ๋ฉด ๋ณ๊ฒฝ ์ฌํญ์ด ์ค์๊ฐ์ผ๋ก ๋ฐ์๋์ง ์๊ธฐ ๋๋ฌธ์ ํด๋น ์คํ์ผ๋ค์ด ์ ์ฉ๋์ง ์์๋ ๊ฒ์ด๋ค.
๋ํ, Tailwind CSS๋ tailwind.config.js ํ์ผ์ content ๋ฐฐ์ด์ ์ง์ ๋ ๊ฒฝ๋ก๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ํธ๋ฆฌํฐ ํด๋์ค๋ฅผ ํ์ํ๋ฏ๋ก, content์ Thymeleaf ํ ํ๋ฆฟ ๊ฒฝ๋ก๋ฅผ ํฌํจํ์ง ์์ผ๋ฉด, HTML ํ์ผ์ ์ถ๊ฐ๋ ํด๋์ค๋ฅผ ๊ฐ์งํ ์ ์๋ค.
๐ ๏ธ ํด๊ฒฐ ๊ณผ์
1. TailwindCSS ๋น๋ ๋ช ๋ น์ด ํ์ธ ๋ฐ ์คํ
package.json์ TailwindCSS ๋น๋ ๋ช ๋ น์ด๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ ์ํ๋ค:
"scripts": {
"build:css": "tailwindcss -i ./src/main/resources/static/css/tailwind.css -o ./src/main/resources/static/css/output.css --watch"
}
- -i : ์ ๋ ฅ ํ์ผ ๊ฒฝ๋ก ์ง์
- -o : ์ถ๋ ฅ ํ์ผ ๊ฒฝ๋ก ์ง์
- --watch : ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์งํ์ฌ ์ค์๊ฐ์ผ๋ก ๋น๋
Tip: --watch ์ต์ ์ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ฝ๋ ๋ณ๊ฒฝ ํ ๋งค๋ฒ ์๋์ผ๋ก ๋น๋๋ฅผ ๋ค์ ํด์ผ ํ๋ค.
๋ช ๋ น์ด ์คํ:
npm run build:css
2. tailwind.config.js์ content ์ค์ ํ์ธ
์์ ์ธ๊ธํ ๋๋ก content ๋ฐฐ์ด์ Thymeleaf ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์ ํํ ์ค์ ํ๋ค.
content: [
"./src/main/resources/templates/**/*.html",
"./src/main/resources/static/js/*.js"
]
์๋ ์๋ฆฌ:
- Tailwind CSS๋ content ๊ฒฝ๋ก์ ์ง์ ๋ ํ์ผ์ ์ฝ๋๋ฅผ ๋ถ์ํ์ฌ ์ฌ์ฉ๋ ํด๋์ค๋ง์ output.css์ ํฌํจ์ํจ๋ค.
- ์ด๋ฅผ ํตํด ๋ถํ์ํ CSS๊ฐ ์ ๊ฑฐ๋์ด ํ์ผ ํฌ๊ธฐ๊ฐ ์ต์ํ๋๋ค.
3. Thymeleaf ํ ํ๋ฆฟ์ ๋ณ๊ฒฝํ๊ณ ๋์ ํ์ธํด์ผ ํ ๊ฒ๋ค
- TailwindCSS ํด๋์ค๋ช ์ ๋ฐ๋์ output.css ํ์ผ์ ํฌํจ๋์ด์ผ ํ๋ค
- ๋ชจ๋ ์ค์ ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ฉํ ํ, justify-between๊ณผ ๊ฐ์ TailwindCSS ์ ํธ๋ฆฌํฐ ํด๋์ค๊ฐ ์ ์ ์๋ํจ์ ํ์ธํ๋ค.