Syw.Frontend

๐Ÿงฉ Vue 2๋กœ ๋ฐฐ์šฐ๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ธฐ์ดˆ

1๋‹จ๊ณ„. Vue 2 + Express + Axios ์ธ์ฆ ๊ธฐ๋ฐ˜ ํˆฌ๋‘์•ฑ ๋งŒ๋“ค๊ธฐ

1-1. 1๊ฐ•: Vue 2 ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ… + Vue 2์˜ ์—ญ์‚ฌ

๐ŸŽฏ ํ•™์Šต ๋ชฉํ‘œ

  • Vue 2์˜ ์ฃผ์š” ๋ฒ„์ „ ํ๋ฆ„๊ณผ 2.6.14๋ฅผ ์„ ํƒํ•œ ์ด์œ ๋ฅผ ์ดํ•ดํ•œ๋‹ค.
  • Vue CLI๋ฅผ ์ด์šฉํ•ด Vue 2.6.14 ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ” Vue 2์˜ ์—ญ์‚ฌ์™€ 2.6.14 ์„ ํƒ ์ด์œ 

Vue๋Š” Evan You๊ฐ€ ๋งŒ๋“  ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, 2014๋…„์— ์ฒซ ๊ณต๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Vue 2๋Š” 2016๋…„ ์ •์‹ ์ถœ์‹œ ์ดํ›„ ๋งŽ์€ ๊ฐœ์„ ์ด ์žˆ์—ˆ๊ณ , ๊ทธ ์ค‘ ๊ฐ€์žฅ ์•ˆ์ •์ ์ธ ์žฅ๊ธฐ ์ง€์› ๋ฒ„์ „์ด 2.6.14์ž…๋‹ˆ๋‹ค.

๋ฒ„์ „ ์ฃผ์š” ๋‚ด์šฉ
2.0 (2016) Vue 1์—์„œ ์™„์ „ํžˆ ๋ฆฌํŒฉํ† ๋ง๋œ ๊ตฌ์กฐ
2.5 (2017) TypeScript ์ง€์› ๊ฐ•ํ™”, SSR ๊ฐœ์„ 
2.6 (2019) ์ƒˆ๋กœ์šด slot ๋ฌธ๋ฒ• ๋„์ž…, ์•ˆ์ •์„ฑ ํ–ฅ์ƒ
2.6.14 (2021) Vue 2์˜ ๋งˆ์ง€๋ง‰ LTS ๋ฒ„์ „ (๊ฐ€์žฅ ์•ˆ์ •์ )
3.0 (2020) Composition API, ์„ฑ๋Šฅ ํ–ฅ์ƒ ๋“ฑ ๋Œ€๊ทœ๋ชจ ๊ฐœ์„  (๋ณ„๋„ ๊ตฌ์กฐ)

๐Ÿ”ง Vue 3๋Š” ์™„์ „ํžˆ ๋‹ค๋ฅธ ๊ตฌ์กฐ์™€ ๋ฌธ๋ฒ•(Composition API ๋“ฑ)์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด, ๊ธฐ์กด Vue 2 ์•ฑ์„ ์œ ์ง€ํ•˜๊ฑฐ๋‚˜ ์‹ค๋ฌด์—์„œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ๊ณ ๋ ค ์ค‘์ธ ๊ฒฝ์šฐ 2.6.14๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.


โœ… ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ… (Vue CLI ๊ธฐ๋ฐ˜)

1๏ธโƒฃ Node.js ์„ค์น˜

  • ๊ณต์‹ ์‚ฌ์ดํŠธ์—์„œ Node.js LTS ๋ฒ„์ „ ์„ค์น˜

    ๐Ÿ‘‰ https://nodejs.org/ko


2๏ธโƒฃ Vue CLI ์„ค์น˜

npm install -g @vue/cli

์„ค์น˜ ์™„๋ฃŒ ํ›„ ํ™•์ธ:

vue --version

@vue/cli 5.0.8


3๏ธโƒฃ Vue 2.6.14 ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

vue create vue2-app

์„ ํƒ ์˜ˆ์‹œ:

  • ? Generate project in current directory? Yes
  • ? Please pick a preset: Default ([Vue 2] babel, eslint)

4๏ธโƒฃ ํ”„๋กœ์ ํŠธ ์‹คํ–‰

cd vue2-app
npm run serve

์‹คํ–‰ ํ›„ http://localhost:8080์—์„œ ๊ฒฐ๊ณผ ํ™•์ธ


๐Ÿ—‚ ํด๋” ๊ตฌ์กฐ

vue2-app/
โ”œโ”€โ”€ public/          # index.html, favicon ๋“ฑ
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ App.vue      # ๋ฃจํŠธ ์ปดํฌ๋„ŒํŠธ
โ”‚   โ”œโ”€โ”€ main.js      # ์•ฑ ์ดˆ๊ธฐํ™” ์ง„์ž…์ 
โ”œโ”€โ”€ package.json     # ํ”„๋กœ์ ํŠธ ์„ค์ • ๋ฐ ์˜์กด์„ฑ

๐Ÿ’ป ์‹ค์Šต: App.vue ๊ธฐ๋ณธ ์ˆ˜์ •

src/App.vue๋ฅผ ์•„๋ž˜์ฒ˜๋Ÿผ ์ˆ˜์ •ํ•ด๋ณด์„ธ์š”.

<template>
  <div id="app">
    <h1>{{ message }}</h1>
  </div>
</template>

<script>
export default {
  data() {
    return {
      message: 'Vue 2.6.14 ์•ฑ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์‹คํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค!'
    };
  }
}
</script>

โœ… ๋งˆ๋ฌด๋ฆฌ ์ •๋ฆฌ

  • Vue 2.6.14๋Š” Vue 2 ๊ณ„์—ด์—์„œ ๊ฐ€์žฅ ์•ˆ์ •์ ์ธ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
  • Vue 2๋Š” ์‹ค๋ฌด์—์„œ ์—ฌ์ „ํžˆ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฉฐ, Vue 3์™€ ๊ตฌ์กฐ์ ์œผ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
  • Vue CLI๋กœ ๊ตฌ์กฐํ™”๋œ Vue 2 ํ”„๋กœ์ ํŠธ๋ฅผ ์†์‰ฝ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GitHub - heroyooi/vue2-app at ch1

๐Ÿ’ฌ ๋Œ“๊ธ€

    โ€ป ๋กœ๊ทธ์ธ ํ›„ ๋Œ“๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.