# Nuxt๋?
Nuxt๋ Vue.js๋ก ๋น ๋ฅด๊ฒ ์น์ ์ ์ํ ์ ์๊ฒ ๋์์ฃผ๋ ํ๋ ์์ํฌ์ ๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ํ ๋ ํ์ํ ๋ทฐ์์ค, ๋ผ์ฐํฐ, Axios์ ๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ๋ฏธ๋ฆฌ ๊ตฌ์ฑํ์ฌ ์ฑ๊ธ ํ์ด์ง ์ ํ๋ฆฌ์ผ์ด์ (Single Page Application), ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง(Server Side Rendering), ์ ์ ์น ์ฌ์ดํธ(Static Generated Website)๋ฅผ ์ฝ๊ฒ ์ ์ํ ์ ์์ต๋๋ค.
TIP
์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ด๋ ์น ํ์ด์ง์ ๋ด์ฉ์ ์๋ฒ์์ ๋ชจ๋ ์์ฑํด์ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )๋ก ๋ณด๋ธ ๋ค ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๋ฐฉ์์ ์๋ฏธํฉ๋๋ค.
# Nuxt์ ์ฅ์
Nuxt๋ก ๊ฐ๋ฐํ์ ๋์ ์ฅ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ฒ์ ์์ง ์ต์ ํ
- ์ด๊ธฐ ํ๋ก์ ํธ ์ค์ ๋น์ฉ ๊ฐ์์ ์์ฐ์ฑ ํฅ์
- ESLint, Prettier
- ๋ผ์ฐํฐ, ์คํ ์ด ๋ฑ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๋ฐ ์ค์ ํ์ผ ํ์ X
- ํ์ผ ๊ธฐ๋ฐ์ ๋ผ์ฐํ ๋ฐฉ์. ์ค์ ํ์ผ ์๋ ์์ฑ
- ํ์ด์ง ๋ก๋ฉ ์๋์ ์ฌ์ฉ์ ๊ฒฝํ ํฅ์
- ๋ธ๋ผ์ฐ์ ๊ฐ ํ๋ ์ผ์ ์๋ฒ์ ๋๋ ์ค๋ค
- ๋ชจ๋ฅด๋ฉด ์ง๋์น ์ ์๋ ์ฝ๋ ์คํ๋ฆฌํ ์ด ๊ธฐ๋ณธ์ผ๋ก ์ค์
# Nuxt ํน์ง
Nuxt์ ํน์ง์ ์์ฝํด๋ณด๋ฉด ํฌ๊ฒ ์๋์ ๊ฐ์ด ๊ตฌ๋ถ๋ฉ๋๋ค.
- ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง
- ๊ท๊ฒฉํ๋ ํด๋ ๊ตฌ์กฐ(layout, store, middleware, plugins ๋ฑ)
- pages ํด๋ ๊ธฐ๋ฐ์ ์๋ ๋ผ์ฐํ ์ค์
- ์ฝ๋ ์คํ๋ฆฌํ
- ๋น๋๊ธฐ ๋ฐ์ดํฐ ์์ฒญ ์์ฑ
- ES6/ES6+ ๋ณํ
- ์นํฉ์ ๋น๋กฏํ ๊ธฐํ ์ค์
# Nuxt ์์ํ๊ธฐ
Nuxt ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํ๊ธฐ ์ํด ๋ค์ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
npm init nuxt-app ํ๋ก์ ํธ๋ช
ํ๋ก์ ํธ๊ฐ ์์ฑ๋๊ณ ๋๋ฉด ๋ช ๋ น์ด ์คํ ์ฐฝ์ ์ฐธ๊ณ ํ์ฌ ์๋ ๋ช ๋ น์ด๋ฅผ ์คํํฉ๋๋ค.
cd ํ๋ก์ ํธ๋ช
npm run dev
๋ช ๋ น์ด ์คํ ์ฐฝ์ ์๋ด๋ ์ฃผ์๋ฅผ ๋ธ๋ผ์ฐ์ ์ ์ ๋ ฅํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ํ์ธํฉ๋๋ค.
# Nuxt๋ฅผ ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์๋ ์จ๋ผ์ธ ๊ฐ์
๊ธ๋ณด๋ค ๋ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋ฐฐ์ธ ์ ์๋ ์จ๋ผ์ธ ๊ฐ์๋ฅผ ์๋ดํฉ๋๋ค.
โ ref Server Side Rendering โ