[Vue.js] ๊ธฐ์ดˆ ๊ฐœ๋… ์ •๋ฆฌ - ๊ธฐ๋ณธ ํ™˜๊ฒฝ ๊ตฌ์„ฑ

2022. 3. 7. 21:25ใ†Front-End ์ž‘์—…์‹ค/Vue.js

728x90
๋ฐ˜์‘ํ˜•

 

๐Ÿ—‚ ๋ชฉ์ฐจ

[Vue.js] ๊ธฐ์ดˆ ๊ฐœ๋… ์ •๋ฆฌ - ๊ธฐ๋ณธ ํ™˜๊ฒฝ ๊ตฌ์„ฑ

[Vue.js] ๊ธฐ์ดˆ ๊ฐœ๋… ์ •๋ฆฌ - Vue Router

[Vue.js] ๊ธฐ์ดˆ ๊ฐœ๋… ์ •๋ฆฌ - Vue LifeCycle Hook

[Vue.js] ๊ธฐ์ดˆ ๊ฐœ๋… ์ •๋ฆฌ - data(), Data ์ฒ˜๋ฆฌ

[Vue.js] ๊ธฐ์ดˆ ๊ฐœ๋… ์ •๋ฆฌ - Watch, Array, for๋ฌธ(๋ฐ˜๋ณต๋ฌธ), if๋ฌธ

 

 

 

๐Ÿฑ Git Hub ์ฃผ์†Œ : https://github.com/junyharang-FrontEnd-coding-study/vue.js-study

๐Ÿ“– ์ฐธ๊ณ  ์ž๋ฃŒ : https://www.youtube.com/watch?v=sqH0u8wN4Rs

 

 

 

๐Ÿš€ Vue.js ๋ž€?

Vue.js๋Š” ์›น ํ”„๋ก ํŠธ์—”๋“œ Framwork ์ค‘ ํ•˜๋‚˜์ธ ๊ฒƒ์ด์—์š”!
์ตœ๊ทผ์—๋Š” ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ํ•  ๋•Œ, ์ˆœ์ˆ˜ JavaScript๋‚˜, jQuery๋งŒ์„ ์ด์šฉํ•˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค๊ณ  ํ•ด์š”.
์ด์ œ๋Š” Vue.js, React.js, Angular.js ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐœ๋ฐœ์„ ํ•˜๋Š” ๊ฒƒ์ด์—์š”.

์ด๋ฒˆ์— ์ฃผ๋‹ˆํ•˜๋ž‘์€ Vue.js๋ฅผ ๊ณต๋ถ€ ํ•ด ๋ณด๋ ค๊ณ  ํ•˜๋Š” ๊ฒƒ์ด์—์š”.

Vue.js๋Š” Component(์ปดํฌ๋„ŒํŠธ) ๊ธฐ๋ฐ˜์˜ SPA(Single Page Application)์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” Framwork์ธ ๊ฒƒ์ด์—์š”.

 

    ๐Ÿ”ฝ  Component๋ž€?

       - ์›น์„ ๊ตฌ์„ฑํ•˜๋Š” Logo, Manu Bar, Button, Modal ๋“ฑ Web Page ๋‚ด์˜ ๋‹ค์–‘ํ•œ UI(User Interface) ์š”์†Œ.
      - ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌ์กฐํ™” ํ•œ ๊ฒƒ


    ๐Ÿ”ฝ  SPA(Sing Page Application)์ด๋ž€?

      - ๋‹จ์ผ ํŽ˜์ด์ง€ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜
      - ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€ ์•ˆ์—์„œ ํ•„์š”ํ•œ ์˜์—ญ ๋ถ€๋ถ„๋งŒ Loading ๋˜๋Š” ํ˜•ํƒœ
      - ๋น ๋ฅธ ํŽ˜์ด์ง€ ์ „ํ™˜
      - ์ ์€ ํŠธ๋ž˜ํ”ฝ ์–‘

Vue.js ๋“ฑ์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด Component ๋‹จ์œ„๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”. ์‹ค์ œ ๊ตฌ๋™ ๋˜๋Š” ๋ฐฉ์‹์€ ๋‹จ์ผ ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€์—์„œ ํ•„์š”ํ•œ ํŽ˜์ด์ง€๋งŒ Loading์ด ๋˜๊ฒŒ ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ฐœ๋ฐœ์„ ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”. 
์ฆ‰, ์‹ค์ œ ํŽ˜์ด์ง€ ์ž์ฒด๊ฐ€ ์ด๋™ํ•˜๊ฒŒ ๋˜๋ฉด CSS, HTML, JavaScript ๋“ฑ์„ ๋‹ค์‹œ Loading์„ ํ–ˆ๋˜ ๊ธฐ์กด ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ํ™”๋ฉด ๊นœ๋นก์ž„์ด๋‚˜, ํผํฌ๋จผ์Šค์˜ ์˜ํ–ฅ์ด ์žˆ๊ฒŒ ๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์—ˆ๋˜ ๊ฒƒ์ด์—์š”.
SPA ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ์ „์ฒด๊ฐ€ Loading์ด ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ณ€๊ฒฝ๋˜๋Š” ๋ถ€๋ถ„๋งŒ Loading์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— UX ๋ฐ ํผํฌ๋จผ์Šค๋ฅผ ํ–ฅ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์ด ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

SPA ์—ญ์‹œ ๋‹จ์ ์ด ์žˆ๋Š” ๊ฒƒ์ด์—์š”. ์ฒซ Loading ์‹œ์— ํ•„์š”ํ•œ CSS, HTML, JavaScript ๋“ฑ์˜ ํฌ๊ธฐ๊ฐ€ ํฌ๋‹ค๋ฉด ๊ทธ๋งŒํผ ํผํฌ๋จผ์Šค๊ฐ€ ๋‚˜์  ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๋‹จ์ ์„ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

 

๐Ÿš€ Vue CLI๋ž€?

Vue.js ํ”„๋กœ์ ํŠธ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•˜๊ณ , ๋นŒ๋“œํ•˜๊ณ , ์„œ๋น„์Šค๋ฅผ ๋Ÿฐ์นญํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด ์ฃผ๋Š” ๋„๊ตฌ(Tool) ์ธ ๊ฒƒ์ด์—์š”.
์ฐธ๊ณ ๋กœ CLI๋Š” Command Line Interface์˜ ์•ฝ์ž์ธ๋ฐ, ํ„ฐ๋ฏธ๋„์„ ํ†ตํ•ด Text ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๋„๊ตฌ๋ฅผ ๋œปํ•˜๋Š” ๊ฒƒ์ด์—์š”.

ํ™”๋ฉด์— hello macpugi๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ๋ช…๋ น์–ด

 

'์•ˆ๋…•ํ•˜์„ธ์š” ์ฃผ๋‹ˆํ•˜๋ž‘ ์ž…๋‹ˆ๋‹ค!'๋ผ๋Š” ๋ฌธ์ž์—ด์„ base64๋กœ Encodingํ•˜๋Š” ๋ช…๋ น์–ด

 

์‰ฝ๊ฒŒ ์ด์•ผ๊ธฐ ํ•˜์ž๋ฉด! ์œ„์˜ ๋‘ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๋ช…๋ น์–ด๋กœ ์ปดํ“จํ„ฐ์™€ ์†Œํ†ตํ•˜๋Š” ๊ฒƒ์„ ๋งํ•˜๋Š” ๊ฒƒ์ด์—์š”.

Vue cli๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ์ž๋™์ ์œผ๋กœ ์„ธํŒ…ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— Package ๊ตฌ์กฐ, Library ๊ตฌ์„ฑ, Web pack ์„ค์ • ๋“ฑ์„ ์•Œ์•„์„œ ํ•ด์คŒ์œผ๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ด๋Ÿฐ ๊ณ ๋ฏผ์„ ํ•˜์ง€ ์•Š๋„๋ก ๋„์™€ ์ฃผ๋Š” ๊ฒƒ์ด์—์š”.

 

ํ”„๋กœ์ ํŠธ Package์—์„œ ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅ ํ•ด ์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด์—์š”.

๐Ÿ’ก ์ฐธ๊ณ  ์‚ฌํ•ญ :

-g Option : Global์ด๋ผ๋Š” ๋œป

 

Enter๋ฅผ ๋ˆŒ๋Ÿฌ์ฃผ๋ฉด ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ์•Œ์•„์„œ ์„ค์น˜๋ฅผ ํ•ด ์ฃผ๋Š” ๊ฒƒ์ด์—์š”.

 

โš ๏ธ ๋ฌธ์ œ ๋ฐœ์ƒ!

 

์œˆ๋„์šฐ๋Š” ์ด๋Ÿฌ์ง€ ์•Š์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐ์ด ๋˜๋Š”๋ฐ, Mac Book ๊ฐ™์€ ๊ฒฝ์šฐ๋Š” Unix ๊ธฐ๋ฐ˜ ์šด์˜์ฒด์ œ๋ผ ๊ถŒํ•œ์ด ์กฐ๊ธˆ ์—„๊ฒฉํ•œ ๊ฒƒ์ด์—์š”.

์ด๋ ‡๊ฒŒ Permission denied๋ผ๊ณ  ํ•˜๋Š” ๊ฒƒ์€ Vue.js ํ”„๋กœ์ ํŠธ ํด๋”์— ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ธ ๊ฒƒ์ด์—์š”.

 

๋ฐ˜์‘ํ˜•

`sudo` ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด root ๊ถŒํ•œ์„ ์ž ์‹œ ๋นŒ๋ ค์„œ ํ•˜๋ฉด ํ•ด๊ฒฐ ๋˜๋Š” ๊ฒƒ์ด์—์š”.

 

๋‹ค์Œ์€ `vue create`๋ผ๋Š” ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•ด์„œ ํ”„๋กœ์ ํŠธ ๊ธฐ๋ฐ˜์„ ๋งŒ๋“ค์–ด ์ฃผ๋ฉด ๋˜๋Š”๋ฐ ๋ช…๋ น์–ด ํ˜•์‹์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒƒ์ด์—์š”.

# vue create [Your Project Name]

 

๋‹ค์Œ์œผ๋ก  ์ด๋ ‡๊ฒŒ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์ด์—์š”.

์ฒซ๋ฒˆ์งธ๋Š” Defalut ํ™˜๊ฒฝ(babel๊ณผ eslint ์ž๋™ ์„ค์น˜)์œผ๋กœ Vue 3.x Version
๋‘๋ฒˆ์งธ๋Š” Defalut ํ™˜๊ฒฝbabel๊ณผ eslint ์ž๋™ ์„ค์น˜)์œผ๋กœ Vue 2.x Vesion
์„ธ๋ฒˆ์งธ๋Š” ์‚ฌ์šฉ์ž ์ž„์˜ ์„ค์ • ํ™˜๊ฒฝ์ธ ๊ฒƒ์ด์—์š”.

์ฃผ๋‹ˆํ•˜๋ž‘์€ ์ฒซ๋ฒˆ์งธ๋ฅผ ์„ ํƒํ•˜๋„๋ก ํ•  ๊ฒƒ์ด์—์š”.

 

 

๊ทธ๋Ÿฌ๋ฉด ์ด๋ ‡๊ฒŒ ์—ด์‹ฌํžˆ ์„ค์น˜๋ฅผ ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

 

 

์„ค์น˜๊ฐ€ ๋๋‚˜๋ฉด ์œ„์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์ƒ๊ธด ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

 

์ €๊ธฐ ์•Œ๋ ค์ฃผ๋Š” ๋Œ€๋กœ ํ•œ๋ฒˆ ์ด๋™์„ ํ•ด์„œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅ ํ•ด ๋ณผ๊ฒŒ์š”!

 

 

 

์ด๋ ‡๊ฒŒ Vue CLI๋ฅผ ํ†ตํ•ด์„œ ๊ธฐ๋ณธ ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ ๊ตฌ์„ฑ์„ ์™„๋ฃŒํ•œ ๊ฒƒ์ด์—์š”.

 

 

 

728x90
๋ฐ˜์‘ํ˜•