๊ธฐ๋ณธ์ ์ผ๋ก Vue ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ์ ์ ๋ค์ Vue 2.x ๋จ๊ณ๋ฅผ ์ฌ์ฉํ๊ณ ์์๋ค. ๊ทธ๋ ์ง๋ง 22๋ ์๋ฐ๊ธฐ๋ถํฐ Vue๋ ๊ณต์์ ์ผ๋ก ๋ฒ์ 3์ ๋ด์ธ์ฐ๊ธฐ ์์ํ์๋ค. ์ฌ๊ธฐ์ Vue 2์ ๋ค๋ฅธ ์ ์ด ์๋ค๊ณ ๋งํ๊ธฐ๋, ๋ฌ๋ผ์ง ๋ถ๋ถ์ด ๋ง์์ก๋ค ํ๊ธฐ๋ ์ ๋งคํ ๊ฒ์ด ์ด Vue 3์ธ ๊ฒ ๊ฐ๋ค.
๊ธฐ์กด์ ์์ฉ๋์๋ Vue 2์ ํ๋ฒ ๋น๊ตํด๋ณผ๊น ํ๋ค!
Vue 3 ๊ณต์๋ฌธ์์์ ๊ณต๋ถ ๊ณผ์ ์์ ๋ฐ๊ฒฌํ ๊ธ์ด๋ค.
Vue 2 ์ ๊ดํ ์ง์์ 23๋
์ด ๋ง์ง๋ง ์ด๋ผ๊ณ ํ๋ค. ํน์๋ผ๋ ๋ง์ด ๋ถ์กฑํ ์ด ๊ธ์ ์ ํ ๋ชจ๋ ๋ถ๋ค์ Vue ๊ฐ๋ฐ ๊ณต๋ถ ๋ฐฉํฅ์ฑ์ ์์ด ์ฐธ๊ณ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค!
์ ๋ช ํ ํ๋ก ํธ์๋ ํ๋ ์์ํฌ 3์ธ๋ฐฉ (Angular, React (์ฌ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ), Vue) ์ค์์ Vue๋ผ๋ ์น๊ตฌ๋ ํ ํ๋ ์์ํฌ์ ๋นํด ๋ฌ๋์ปค๋ธ๊ฐ ์๋์ ์ผ๋ก ์๋งํ๋ค. ๊ทธ๋์ ํ์๋ ์ ๋ณด๋ณดํธํ์ ์ ๊ณตํ๋ค ์ ์ฑ์ด ์๋ง์ ํ๋ก ํธ์๋๋ฅผ ๋ ํํ ๋ ๊ทธ๋ฌํ ์ด์ ๋ก Vue๋ฅผ ์ฒ์ ์ ํํ์ฌ ๊ฐ์ธ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค๊ฒ ๋์๋ค.
๊ทธ๋งํผ Vue๋ ํ๋ ์์ํฌ๋ผ๋ ์ฅ์ ์ ์ต๋ํ ์ด๋ ค ๊ฐ๋ฐ์๋ค์ด ์ข ๋ ์ฝ๋๋ฅผ ์์ฑํ ๋, ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ค๊ณ ํ ๋์ ๋์ด๋๋ฅผ ์ต์ํํ๋ ค๋ ๋ชจ์ต์ ๋ณด์์๋ค.
์ด๋ฒ Vue 3 ์ ๋ฐ์ดํธ๋ ๊ทธ๋ฌํ ๋ชจ์ต ์์์ ๊ธฐ๋ฅ์ ์ผ๋ก, ์ฝ๋๋ฅผ ์ค๊ณํ ๋์ ๋ค์ํ ํ๊ฒฝ์์ ์ ์ง์์ ์๋ ๊ตฌ์กฐ๋ก ๋ฌด์ธ๊ฐ๋ฅผ ๋ ๋ํด๊ฐ๋ ๊ฒ ๊ฐ๋ค. Vue 2์์ ์์ฒญ๋๊ฒ ํฌ๊ฒ ๋ฐ๋ ๋ถ๋ถ์ ์์ผ๋ ๊ฑฑ์ ํ์ง ๋ง๊ณ ๊ณต์๋ฌธ์๋ฅผ ์ฐธ๊ณ ํด๊ฐ๋ฉฐ ๋ณ๊ฒฝ์ ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํดํด ๋๊ฐ๋๋ก ํ์.
์ค์น๋ ๊ธฐ์กด Vue 2 ์์์ ๋ฐฉ์๊ณผ ํฌ๊ฒ ๋ค๋ฅด์ง ์๋ค.
npm create vue@3
๊ทธ๋ฐ๋ฐ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์๋ค๋ ๊ฒ์ ๊ณต์๋ฌธ์๋ฅผ ํตํด ์๊ฒ๋์๋๋ฐ,
๋ฐ๋ก npm init vue@latest
์ด ๋ฐฉ๋ฒ์ Node.js ๊ฐ ์ค์น๋์ด์๋ ๊ฐ์ ํ์ ์คํํ๋ฉด ๋๋๋ฐ, ๊ณต์ Vue ํ๋ก์ ํธ ๋ฐ ๊ทธ๊ฑฐ์ ํ์ํ ๋ถ์ํ(?) ๋ค์ ํจ๊ป ์ค์นํด์ฃผ๋ ๋ช
๋ น์ด์ด๋ค. ์๋์ ๊ฐ์ ์ ํ์ง๊ฐ ๋์ค๋๋ฐ, ๊ฐ๋ฐ์๋ค์ด ์ด๋ป๊ฒ ๊ฐ๋ฐํ ๊ฒ์ธ์ง์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์ค์ ํด์ฃผ๋ฉด ๋๋ค. ์ฐธ๊ณ ๋ก ํ๋จ์ Vue ๊ณต์ ํํผ์ Default ๊ฐ์ด๋ค.
โ Project name: โฆ <your-project-name>
โ Add TypeScript? โฆ No / Yes
โ Add JSX Support? โฆ No / Yes
โ Add Vue Router for Single Page Application development? โฆ No / Yes
โ Add Pinia for state management? โฆ No / Yes
โ Add Vitest for Unit testing? โฆ No / Yes
โ Add Cypress for both Unit and End-to-End testing? โฆ No / Yes
โ Add ESLint for code quality? โฆ No / Yes
โ Add Prettier for code formatting? โฆ No / Yes
Scaffolding project in ./<your-project-name>...
Done.
์ ๋ถ๊ฐ์ ์ผ๋ก ์๋๋ Vue ๊ฐ Default Bundler๋ก Webpack
์ ์ฌ์ฉํ๋๋ฐ, ์ด๋ฒ์ ๊ณต๋ถํ๋ ค๊ณ Vue 3 ํ๋ก์ ํธ๋ฅผ ์ค์นํด๋ณด๋ ์๋์ ์ผ๋ก Vite
๋ก ์ฌ์ฉ์ด๋๋ ๊ฒ์ ๋ณผ ์ ์์๋ค. ๋๋ถ์ ์ปดํ์ผ์ด๋ ์๋ฒ ์ฌ๋ ์๋๊ฐ ์ข ๋น ๋ฅด๋ค๋๊ฒ ๋๊ปด์ง๊ธดํ๋ค.
Reference
https://v3-docs.vuejs-korea.org/guide/introduction.html#api-styles
https://javascript.plainenglish.io/differences-between-vue-2-and-vue-3-ee627e2c83a8