[๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ปTA9 ์ธํ„ด 65์ผ์ฐจ]Vue์šฉ์–ด&ํŠน์ง• ์ •๋ฆฌ

Goofiยท2023๋…„ 9์›” 21์ผ
0

Vue.js

1) Vue.js๋Š” ํ”„๋ก ํŠธ์—”๋“œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋กœ, ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ
2) MVVM ํŒจํ„ด์˜ ViewModel ๋ ˆ์ด์–ด์— ํ•ด๋‹นํ•˜๋Š” ํ™”๋ฉด๋‹จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์žฅ์ 

  • ๋ฆฌ์•กํŠธ์™€ ์•ต๊ทค๋Ÿฌ์— ๋น„ํ•ด ์„ฑ๋Šฅ์ด ์šฐ์ˆ˜ํ•˜๊ณ  ๋น ๋ฅด๋‹ค.
  • ์•ต๊ทค๋Ÿฌ์˜ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ํŠน์„ฑ๊ณผ ๋ฆฌ์•กํŠธ์˜ Virtual DOM ๋ Œ๋”๋ง ํŠน์ง•์„ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
  • MVVMํŒจํ„ด ๊ฐœ๋ฐœ ๋ฐฉ์‹์œผ๋กœ ๋กœ์ง ๋ถ„๋ฆฌ ๋ฐ ์œ ์ง€๋ณด์ˆ˜ ์šฉ์ด

Vue CLI(Vue Command Line Interface)

  • Vue CLI๋Š” Vue.js ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑ, ๊ด€๋ฆฌํ•˜๊ณ  ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์‹ CLI ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  • Vue CLI๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ, ํ…œํ”Œ๋ฆฟ ์„ ํƒ, ์˜์กด์„ฑ ๊ด€๋ฆฌ, ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰ ๋“ฑ์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Vue CLI๋ฅผ ํ†ตํ•ด Vue 2 ๋ฐ Vue 3 ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  : chatGPT

Vue 2

  • Vue 2.x๋Š” Vue.js์˜ ์ด์ „ ๋ฒ„์ „์œผ๋กœ, ๋งŽ์€ ํ”„๋กœ์ ํŠธ์—์„œ ์•„์ง ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.
  • Vue 2๋Š” ๊ฐ€๋ณ๊ณ  ์ง๊ด€์ ์ธ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๋ฉฐ, Vue Router ๋ฐ Vuex์™€ ๊ฐ™์€ ๊ณต์‹ ํ”Œ๋Ÿฌ๊ทธ์ธ๋“ค์„ ์ง€์›ํ•œ๋‹ค.

์ฐธ๊ณ  : chatGPT

Vue 3

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

์ฐธ๊ณ  : chatGPT

vue create

vue create ๋ช…๋ น์–ด๋Š” Vue CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด Vue.js ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

Vue CLI ๋ฒ„์ „์— ๋”ฐ๋ผ์„œ vue create ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ Vue.js ํ”„๋กœ๊ทธ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ์˜ ํ™˜๊ฒฝ๊ณผ ์„ค์ •์ด ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค.

  1. ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ
    Vue CLI ๋ฒ„์ „์— ๋”ฐ๋ผ ๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋ฒ„์ „์—์„œ๋Š” ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์ด๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ธฐ๋ณธ ์„ค์ •์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ๊ธฐ๋ณธ ์˜์กด์„ฑ ๋ฒ„์ „
    Vue CLI์˜ ์ƒˆ๋กœ์šด ๋ฒ„์ „์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋นŒ๋“œ ๋„๊ตฌ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๋ฐ ์˜์กด์„ฑ ํŒจํ‚ค์ง€์˜ ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹œ ์‚ฌ์šฉ๋˜๋Š” ์˜์กด์„ฑ์˜ ๋ฒ„์ „์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ํ”„๋กœ์ ํŠธ ์„ค์ •
    Vue CLI์˜ ๋ฒ„์ „์— ๋”ฐ๋ผ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹œ ์„ค์ •๋˜๋Š” ๊ธฐ๋ณธ ์„ค์ •์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Babel, ESLint, CSS ์ „์ฒ˜๋ฆฌ๊ธฐ, ํ…Œ์ŠคํŒ… ๋„๊ตฌ ๋“ฑ์˜ ์„ค์ •์ด ๋ฒ„์ „์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐ ํ”„๋ฆฌ์…‹
    Vue CLI๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ํ”„๋ฆฌ์…‹์„ ํ†ตํ•ด ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด Vue CLI ๋ฒ„์ „์—์„œ๋Š” ์ด๋Ÿฌํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ํ”„๋ฆฌ์…‹์ด ์—…๋ฐ์ดํŠธ๋˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  5. ๋นŒ๋“œ ๋ฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •
    Vue CLI ๋ฒ„์ „์— ๋”ฐ๋ผ ๋นŒ๋“œ ๋ฐ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ค์ •์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›นํŒฉ ๊ตฌ์„ฑ ๋ฐ ๋‹ค๋ฅธ ๋นŒ๋“œ ๋„๊ตฌ์˜ ์„ค์ •์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ ์‹œ์—๋Š” ํ•ญ์ƒ vue create ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Vue CLI์˜ ์ตœ์‹  ๋ฒ„์ „์„ ๊ธฐ์ค€์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

Vue Instance

1) ๋ทฐ๋กœ ํ™”๋ฉด์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ํ•„์ˆ˜์ ์œผ๋กœ ์ƒ์„ฑํ•ด์•ผ ํ•˜๋Š” ๊ธฐ๋ณธ ๋‹จ์œ„์ด๋‹ค.
2) new Vue()๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ Vue๋ฅผ ์ƒ์„ฑ์ž๋ผ๊ณ  ํ•œ๋‹ค. ์ƒ์„ฑ์ž๋Š” ๋ทฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋กœ๋”ฉํ•˜๊ณ  ๋‚˜๋ฉด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ˜•์‹

new Vue({
...
})

Vue Router์™€ Vue CLI ๊ด€๋ จ

  • Vue Router 3์˜ ๊ฒฝ์šฐ, Vue CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Vue Router๋ฅผ ์„ค์น˜ํ•˜๋ฉด ์ž๋™์œผ๋กœ Vue2 ๊ธฐ๋ฐ˜์˜ ์„ค์ •์ด ์ƒ์„ฑ๋œ๋‹ค.
  • Vue Router 4์˜ ๊ฒฝ์šฐ, Vue CLI๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Vue Router๋ฅผ ์„ค์น˜ํ•˜๋ฉด Vue 3 ๊ธฐ๋ฐ˜์˜ ์„ค์ •์ด ์ƒ์„ฑ๋œ๋‹ค.

Vue Router 3 ๊ณผ Vue Router 4 ์ฐจ์ด

  1. Composition API ์ง€์›
  2. TypeScript ์ง€์›
  3. Router ๋ฉ”์„œ๋“œ ๋ณ€๊ฒฝ
  4. ๋ผ์šฐํ„ฐ ๊ธฐ๋Šฅ์˜ ๊ฐœ์„ 
  5. ๋ผ์šฐํ„ฐ ์„ค์ • ๊ตฌ๋ฌธ ๋ณ€๊ฒฝ
  6. ํ”Œ๋Ÿฌ๊ทธ์ธ ๋ฐฉ์‹ ๋ณ€๊ฒฝ
  7. ๋Ÿฐํƒ€์ž„ ์ตœ์ ํ™”

๋ฐ์ดํ„ฐ๋ฐ”์ธ๋”ฉ

๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ(React)
Javascript(Model)์—์„œ HTML(View)๋กœ ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ๋™๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ

์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ(Vue)
Javascript(Model)๊ณผ HTML(View) ์‚ฌ์ด์— ViewModel์ด ์กด์žฌํ•˜์—ฌ ํ•˜๋‚˜๋กœ ๋ฐ”์ธ๋”ฉ ๋˜์–ด์„œ ๋‘˜ ์ค‘ ํ•˜๋‚˜๋งŒ ๋ณ€๊ฒฝ๋˜์–ด๋„ ํ•จ๊ป˜ ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ

์ฐธ๊ณ  : https://adjh54.tistory.com/49

React ์™€ Vue ๋น„๊ต

๊ณตํ†ต์ 

  • ๊ฐ€์ƒ DOM์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • ๋ฐ˜์‘์ ์ด๊ณ  ์กฐํ•ฉ ๊ฐ€๋Šฅํ•œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  • ์ฝ”์–ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋งŒ ์ง‘์ค‘ํ•˜๊ณ  ์žˆ๊ณ  ๋ผ์šฐํŒ… ๋ฐ ์ƒํƒœ๊ด€๋ฆฌํ•˜๋Š” ์ปดํŒจ๋‹ˆ์–ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๋‹ค.
    ๋ฆฌ์•กํŠธ ๋ผ์šฐํŒ… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : React Router Dom & ๋ฆฌ์•กํŠธ ์ƒํƒœ๊ด€๋ฆฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : Redux, Recoil, React-Query
    ๋ทฐ ๋ผ์šฐํŒ… ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ : Vue Router & ๋ทฐ ์ƒํƒœ๊ด€๋ฆฌ ๋ฆฌ์•„๋ธŒ๋Ÿฌ๋ฆฌ : Vuex

์ฐจ์ด์ 

  • React๋Š” ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ์ด๊ณ  Vue๋Š” ์–‘๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ ๋ฐฉ์‹์„ ์ด์šฉํ•œ๋‹ค.
  • ๋ฆฌ์•กํŠธ๋Š” JSX ํ˜•ํƒœ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ
  • Vue์˜ Virtual Dom๊ตฌํ˜„์ด React๋ณด๋‹ค ๋น ๋ฅด๊ณ  ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ ๋‹ค.
    *์˜ค๋ฒ„ํ—ค๋“œ : ์–ด๋–ค ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด ๋“ค์–ด๊ฐ€๋Š” ๊ฐ„์ ‘์ ์ธ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„, ๋ฉ”๋ชจ๋ฆฌ ๋“ฑ์„ ๋งํ•œ๋‹ค.
  • Vue๋Š” ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•ด ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ œ์ž‘์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ ์ง„์ž… ์žฅ๋ฒฝ์ด ๋‚ฎ๋‹ค.

์ฐธ๊ณ  : https://80000coding.oopy.io/f27f6183-0523-43e1-ab90-8f8175bd4a88

profile
์˜ค๋Š˜๋ณด๋‹จ ๋‚ด์ผ์ด ๊ฐ•ํ•œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค!!๐Ÿง‘๐Ÿปโ€๐Ÿ’ป

0๊ฐœ์˜ ๋Œ“๊ธ€