Tailwind CSS ์ฌ์ฉํด๋ณด๊ธฐTailwind CSS(opens in a new tab) ๋ ?Next.js์ ๋งค์ฐ ์ ์ด์ธ๋ฆฌ๋ ์ ํธ๋ฆฌํฐ ์ฐ์ CSS ํ๋ ์์ํฌ์
๋๋ค.์ฅ์ ์ ํธ๋ฆฌํฐ ์ฐ์ ํ๋ ์์ํฌ: Tailwind CSS๋ ์ ํธ๋ฆฌํฐ ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ์คํ์ผ๋ง์ ๊ฐ๋ฅํ๊ฒ ํ๋ฉฐ, ํ๋ก์ ํธ ์ ๋ฐ์ ๊ฑธ์ณ ์ผ๊ด๋ ์คํ์ผ์ ์ ์งํ๋ฉด์๋ ์ฝ๊ฒ ๋์์ธํ ์ ์์ต๋๋ค.๋ง์ถคํ ๊ฐ๋ฅ: Tailwind CSS๋ ๋ชจ๋ ๋์์ธ ์์คํ
์ ๋ง๊ฒ ํ์ฅ ๋ฐ ๋ง์ถค์ค์ ์ด ๊ฐ๋ฅํด, ๋ค์ํ ํ๋ก์ ํธ์ ์ ์ฐํ๊ฒ ์ ์ฉํ ์ ์์ต๋๋ค.๋ค์ํ ํ๋ ์์ํฌ์ ํตํฉ: Next.js, Nuxt.js, Vue.js ๋ฑ๊ณผ ์ ํตํฉ๋๋ฉฐ, PostCSS๋ฅผ ์ง์ํ์ฌ ์๋ ์ ๋์ด ์ง์ ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ํ์ฑํํ ์ ์์ต๋๋ค.์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ๋ถ๋ฆฌ: Ta..
1. ํ๋ฆฌ๋ ๋๋ง(Pre-rendering)ํ๋ฆฌ๋ ๋๋ง์ ์๋ฒ๊ฐ ํ์ด์ง๋ฅผ ์ฌ์ฉ์๊ฐ ์์ฒญํ๊ธฐ ์ ์ ๋ฏธ๋ฆฌ ๋ ๋๋งํด์ ์ค๋นํด๋๋ ๋ฐฉ์์
๋๋ค. ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ์์ฑํ์ฌ ์บ์ฑํด ๋๋ ๊ฒ์ด ํน์ง์
๋๋ค.ํน์ง์ ์ ์์ฑ: ๋น๋ํ ๋ ๋ ๋๋ง์๋ฒ์ฌ์ด๋ ๋ ๋๋ง: ๋ฆฌํ์คํธ๊ฐ ๋ค์ด์ค๋ฉด ๋ ๋๋ง์ฅ์ : ๋น ๋ฅธ ๋ก๋ฉ ์๋ (ํ์ด์ง๊ฐ ๋ฏธ๋ฆฌ ์ค๋น๋์ด ์์), SEO์ ์ ๋ฆฌํ๋ฆฌ ๋ ๋๋ง์ ์ฌ์ฉํ๋ฉด ํ๋ฆฌํ์น๋ณด๋ค ํ์ ์๊ฐ์ด ๋นจ๋ฆฌ์ง๊ณ ๋ ๋ง์ ๋ฆฌ์์ค๋ฅผ ํ์๋ก ํ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ด ํฅ์๋ฉ๋๋ค.๋จ์ : ๋์ ์ธ ์ปจํ
์ธ ์ ๋ํด ์ ์ฉํ๊ธฐ ์ด๋ ต๊ณ , ๋ฏธ๋ฆฌ ์ค๋น๋ ํ์ด์ง๋ง ์ ๊ณต ๊ฐ๋ฅํ๋ฆฌ๋ ๋๋ง์ด ์ ํฉํ ๊ฒฝ์ฐ์์ฃผ ๋ณ๊ฒฝ๋์ง ์๋ ์ฝํ
์ธ : ์๋ฅผ ๋ค์ด ๋ธ๋ก๊ทธ, ํฌํธํด๋ฆฌ์ค ์ฌ์ดํธ ๋ฑ ์์ฃผ ์
๋ฐ์ดํธ๋์ง ์๋ ์ฝํ
์ธ ๊ฐ ๋ง์ ๋.ex) ๋ธ๋ก๊ทธ, ํฌํธํด๋ฆฌ์ค ์ฌ์ดํธSEO๊ฐ ์ค์ํ ํ์ด..
CSR๊ณผ SSR ๋น๊ต ๋ฐ CSR์ ๋จ์ ๋ณด์ ๋ฐฉ๋ฒ์ฐ์ SPA์ MPA์ ๋ํด์ ์์๋ณด์1. SPA์ MPA์ ๊ธฐ๋ณธ ๊ฐ๋
1๏ธโฃ SPA (Single Page Application)ํ๋์ ํ์ด์ง๋ก ๊ตฌ์ฑ๋ ์น ์ ํ๋ฆฌ์ผ์ด์
์
๋๋ค. ํ์ด์ง ์ ํ ์ ํ๋ฉด์ด ๊น๋นก์ด์ง ์๊ณ , ์๋ก์ด ํ์ด์ง๋ฅผ ์์ฒญํ ๋ ์๋ฒ๋ก๋ถํฐ ํ์ํ ๋ฐ์ดํฐ๋ง ์ ๋ฌ๋ฐ์ ๋ ๋๋งํฉ๋๋ค.์ฆ, CSR(Client-Side Rendering) ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.2๏ธโฃ MPA (Multi Page Application)์ ํต์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์
๋ฐฉ์์
๋๋ค. ํ์ด์ง ์ ํ ์๋ง๋ค ์๋ฒ์์ ์๋ก์ด HTML์ ๋ฐ์์ ์ ์ฒด ํ์ด์ง๋ฅผ ์๋ก ๋ ๋๋งํฉ๋๋ค. ์ด๋ ํ์ด์ง๊ฐ ๊น๋นก์ผ ์ ์์ผ๋ฉฐ, SSR(Server-Side Rendering) ๋ฐฉ์์ ์ฌ์ฉํฉ๋๋ค.2. CSR(Clie..
public ํด๋์ ์ ํ์ผ: public ํด๋๋ ์ ์ ํ์ผ(์ด๋ฏธ์ง, ํฐํธ, ์์ด์ฝ ๋ฑ)์ ์ ์ฅํ๋ ๊ณณ์
๋๋ค. ์ด ํด๋์ ์๋ ํ์ผ์ / ๊ฒฝ๋ก๋ก ์ ๊ทผํ ์ ์์ต๋๋ค.์ฉ๋: ์ ์ ํ์ผ์ ์ ์ฅํ๋ ํด๋๋ก, ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฆฌ์์ค๋ฅผ ๊ด๋ฆฌํฉ๋๋ค.์์: public/images/logo.png ํ์ผ์ /images/logo.png๋ก ์ ๊ทผํ ์ ์์ต๋๋ค._app.js ํ์ผ์ปค์คํ
App ์ปดํฌ๋ํธ: _app.js ํ์ผ์ Next.js ์ ํ๋ฆฌ์ผ์ด์
์ ์ ์ฒด ๋ ์ด์์๊ณผ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํ ์ง์
์ ์
๋๋ค. ๋ชจ๋ ํ์ด์ง์์ ๊ณตํต์ผ๋ก ์ฌ์ฉํ ์ปดํฌ๋ํธ๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.์ฉ๋: ๊ฐ ํ์ด์ง์์ ๊ณตํต์ ์ผ๋ก ์ ์ฉํ ์ค์ ์ ์ ์ํฉ๋๋ค.์ํ ๊ด๋ฆฌ: ์ ์ญ ์คํ์ผ์ด๋ ๋ ์ด์์, ์ปจํ
์คํธ ์ ๊ณต ๋ฑ์ ์ค์ ํ ์ ์์ด, ํ์ด์ง ์ ํ ์ ์ผ๊ด๋ UI๋ฅผ..
2์ผ ์ฐจ๋ ํ์๋ผ๋ฆฌ ์ญํ ๋ถ๋ฐฐ๋ฅผ ํ์ด์ง ๋จ์๋ก ํ์์ต๋๋ค. ์๊ท๋ชจ ํ๋ก์ ํธ๋ผ ๊ธฐ๋ฅ ๋จ์๋ก ๋๋๊ธฐ ๋ณด๋จ ํ์ด์ง ๋จ์๋ก ๋๋์ด์ ์์
ํ๊ธฐ๋ก ํ์์ต๋๋ค. ๐/post ๊ด๋ จ ๋กค๋งํ์ดํผ ๋ณด์ฌ์ง๋ ํ์ด์ง(1) - ์ ์ค์ [ํ์ฅ]์ด๊ธฐ css ์ธํ
, ๋๋ฉ ํ์ด์ง - ๊น๋ฏธ์/post ๊ด๋ จ ๋กค๋งํ์ดํผ ๋ณด์ฌ์ง๋ ํ์ด์ง(1) - ๊น์์ง/post ๊ด๋ จ ๋กค๋งํ์ดํผ ์์ฑํ๋ ํ์ด์ง - ๊น์ ๐ ๋ชจ๋ ํ์ดํ
!! ๐
์ฝ๋์ ๋ถํธ์บ ํ๋ฅผ ์ฐธ์ฌํ๋ฉฐ 9์ฃผ ์ฐจ์ ๋ค ๋ฌ์๋ค. ์ด๋ฒ์ ์ฝ 2์ฃผ๊ฐ์ ๊ธฐ์ด ํ๋ก์ ํธ๋ฅผ ์งํํ์๋ค. part2์์ ๋ง๋ ํ์๋ค๊ณผ 3์ฃผ๊ฐ์ ๋ฆฌ์กํธ ๊ณต๋ถ๋ฅผ ํ๋ฉฐ ์ ์ ์๋ ์๊ฐ์ ๋ณด๋๋ค. ์ด์ ํจ๊ป ํ๋ก์ ํธ๋ฅผ ์งํํด ๋ณด์! ๐ฆ ํ๋ก์ ํธ ์๊ฐ์ด ํ๋ก์ ํธ๋ ๋กค๋ง ํ์ดํผ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ตฌํํ๋ ํ ํ๋ก์ ํธ์
๋๋ค.React๋ฅผ ์ฌ์ฉํ์ฌ ๋์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ๋ฉฐ, Vite๋ฅผ ํตํด ๋น ๋ฅด๊ณ ํจ์จ์ ์ธ ๊ฐ๋ฐ ํ๊ฒฝ์ ์ ๊ณตํฉ๋๋ค. ๐บ๏ธ ์งํ ๊ณผ์ 1. ํ๋ก์ ํธ ์์ฑ ๋ฐ ํด๋ก ํ์ฅ์ด Rolling ํ๋ก์ ํธ๋ฅผ ๊นํ๋ธ์ ์์ฑํ ํ, ํ์๋ค์ด fork ํด์ ์์
ํ์๋ค. 2. ์ฝ๋ ์ปจ๋ฒค์
์ ํ๊ธฐ๋ฌธ์์ด์ ์ฒ๋ฆฌํ ๋๋ ํฐ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํ๋๋ก ํฉ๋๋ค.๋ฌธ์ฅ์ด ์ข
๋ฃ๋ ๋๋ ์ธ๋ฏธ์ฝ๋ก ์ ๋ถ์ฌ์ค๋๋ค.๐ซ ํจ์๋ช
, ๋ณ์๋ช
์ ์นด๋ฉ์ผ์ด์ค๋ก ์์ฑํฉ๋๋ค..