๐Ÿ’ก๋ทฐ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•

sujinยท2021๋…„ 11์›” 10์ผ
0

๋ทฐ

๋ชฉ๋ก ๋ณด๊ธฐ
4/6
post-thumbnail

01. ๋ทฐ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•

01-1. HTML ํŒŒ์ผ์—์„œ ๋ทฐ ์ฝ”๋“œ ์ž‘์„ฑ ์‹œ์˜ ํ•œ๊ณ„์ 

...
<div id="app">
   <my-component></my-component>
   <your-component></your-component>
<div>
...
<script>
	Vue.componet('my-component', {
		template: `<div id="app"><img src="./assets/logo.png"><h1>{{ msg }}</h1><h2>Essential Links</h2><ul><li><a href="https://vuejs.org" target="_blank">Core Docs</a></li><li><a href="https://forum.vuejs.org" target="_blank">Forum</a></li><li><a href="https://chat.vuejs.org" target="_blank">Community Chat</a></li><li><a href="https://twitter.com/vuejs" target="_blank">Twitter</a></li></ul><h2>Ecosystem</h2><ul><li><a href="http://router.vuejs.org/" target="_blank">vue-router</a></li><li><a href="http://vuex.vuejs.org/" target="_blank">vuex</a></li><li><a href="http://vue-loader.vuejs.org/" target="_blank">vue-loader</a></li><li><a href="https://github.com/vuejs/awesome-vue" target="_blank">awesome-vue</a></li></ul></div>`
	});
	Vue.componet('your-component', {
		template: `<div id="app"><img src="./assets/logo.png"><h1>{{ msg }}</h1><h2>Essential Links</h2><ul><li><a href="https://vuejs.org" target="_blank">Core Docs</a></li><li><a href="https://forum.vuejs.org" target="_blank">Forum</a></li><li><a href="https://chat.vuejs.org" target="_blank">Community Chat</a></li><li><a href="https://twitter.com/vuejs" target="_blank">Twitter</a></li></ul></div>`
	});
	
	new Vue({
	   el:'#app',
	   data: {
		message:'click this button'
	   }
	});
</script>
...
  • template ์†์„ฑ์— ์ž‘์„ฑ๋œ HTML์ฝ”๋“œ๋ฅผ ๋ฐ”๋กœ ๋ถ„์„ํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€ ์•Š๋‹ค.
  • <script> ํƒœ๊ทธ ์•ˆ์—์„œ HTML์ฝ”๋“œ๋Š” ๊ตฌ๋ฌธ ๊ฐ•์กฐ๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋–„๋ฌธ์— ์˜คํƒˆ์ž๋ฅผ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค.
  • ์ฝ”๋“œ ๋“ค์—ฌ์“ฐ๊ธฐ๋„ ์–ด๋ ค์›Œ ์ƒ์œ„ ํƒœ๊ทธ์™€ ํ•˜์œ„ ํƒœ๊ทธ์˜ ๊ด€๊ณ„๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์–ด๋ ต๋‹ค.

01-2. ์‹ฑ๊ธ€ ํŒŒ์ผ ์ปดํฌ๋„ŒํŠธ ์ฒด๊ณ„

  • ์‹ฑ๊ธ€ ํŒŒ์ผ ์ปดํฌ๋„ŒํŠธ๋ž€?

    • .vue ํŒŒ์ผ๋กœ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•œ๋‹ค.
    • ํ™•์žฅ์ž .vue ํŒŒ์ผ 1๊ฐœ๋Š” ๋ทฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์„ฑํ•˜๋Š” 1๊ฐœ์˜ ์ปดํฌ๋„ŒํŠธ์™€ ๋™์ผํ•˜๋‹ค.
  • .vue ํŒŒ์ผ ๊ธฐ๋ณธ ๊ตฌ์กฐ

	<template>
	   <!-- HTML ํƒœ๊ทธ ๋‚ด์šฉ -->
	</template>
	
	<script>
	   export default{
		// ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋‚ด์šฉ	
	   }
	</script>
	
	<style>
           /* css ์Šคํƒ€์ผ ๋‚ด์šฉ */
	</style>	

01-3. ๋ทฐ CLI

  • ์‹ฑ๊ธ€ ์ปดํฌ๋„ŒํŠธ ์ฒด๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” .vue ํŒŒ์ผ์„ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ๋„๊ตฌ๊ฐ€ ํ•„์š”ํ•˜๋‹ค.
    • ex. ์›นํŒฉ(์›น์•ฑ์˜ ์ž์›์„ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ชจ๋“ˆ๋กœ ๋ณ€ํ™˜), ๋ธŒ๋ผ์šฐ์ €ํŒŒ์ด(์›นํŒฉ๊ณผ ๋น„์Šทํ•œ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ)
  • ๋ทฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ทฐ CLI(Command Line Interface) ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  • CLI์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ช…๋ น์–ด๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ทฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•œ ์ดˆ๊ธฐ ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ์‰ฝ๊ฒŒ ๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์›นํŒฉ์ด๋‚˜ ๋ธŒ๋ผ์šฐ์ €ํŒŒ์ด ๊ฐ™์€ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ๋ฅผ ํ”„๋กœ์ ํŠธ ์ž์ฒด์— ํฌํ•จํ•˜์—ฌ ๋ฐ”๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • .vue ํŒŒ์ผ์„ HTML, css, javascript ํŒŒ์ผ๋กœ ๋ณ€ํ™˜ํ•ด ์ฃผ๊ธฐ ์œ„ํ•œ ๋ทฐ ๋กœ๋”๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค.

๋ทฐ CLI ์„ค์น˜

  • cmd ์ฐฝ์—์„œ ์ž…๋ ฅ
    • vue-cli ์„ค์น˜ npm install vue-cli -global
    • vue-cli ์„ค์น˜ ์—ฌ๋ถ€ ํ™•์ธ vue

๋ทฐ CLI ๋ช…๋ น์–ด

ํ…œํ”Œ๋ฆฟ ์ข…๋ฅ˜ ์„ค๋ช…
Vue init webpack ๊ณ ๊ธ‰ ์›นํŒฉ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•œ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ๋ฐฉ์‹. ํ…Œ์ŠคํŒ…, ๋ฌธ๋ฒ• ๊ฒ€์‚ฌ ๋“ฑ์„ ์ง€์›
Vue init webpack-simple ์›นํŒฉ ์ตœ์†Œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•œ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ๋ฐฉ์‹. ๋น ๋ฅธ ํ™”๋ฉด ํ”„๋กœํ† ํƒ€์ดํ•‘์šฉ
Vue init browserify ๊ณ ๊ธ‰ ๋ธŒ๋ผ์šฐ์ €๋ฆฌํŒŒ์ด ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•œ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ๋ฐฉ์‹. ํ…Œ์ŠคํŒ…, ๋ฌธ๋ฒ• ๊ฒ€์‚ฌ ๋“ฑ์„ ์ง€์›
Vue init browserify-simple ๋ธŒ๋ผ์šฐ์ €๋ฆฌํŒŒ์ด ์ตœ์†Œ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•œ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ๋ฐฉ์‹. ๋น ๋ฅธ ํ™”๋ฉด ํ”„๋กœํ† ํƒ€์ดํ•‘์šฉ
Vue init simple ์ตœ์†Œ ๋ทฐ ๊ธฐ๋Šฅ๋งŒ ๋“ค์–ด๊ฐ„ HTML ํŒŒ์ผ 1๊ฐœ ์ƒ์„ฑ
Vue init pwa ์›นํŒฉ ๊ธฐ๋ฐ˜์˜ ํ”„๋กœ๊ทธ๋ ˆ์‹œ๋ธŒ ์›น ์•ฑ(PWA, Progressive Web App) ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๋Š” ๋ทฐ ํ”„๋กœ์ ํŠธ

01-4. ๋ทฐ CLI๋กœ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

01.๋ทฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋นˆํด๋”๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋นˆ ํด๋”์—์„œ cmd์ฐฝ์„ ์—ด์–ด vue init webpack-simple ์ž…๋ ฅ

  • ๋ช…๋ น์–ด ์ž…๋ ฅ ๊ฒฐ๊ณผ ํ™”๋ฉด

  1. npm install ์ž…๋ ฅํ•˜์—ฌ ๋ทฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ๋™ํ•˜๊ธฐ ์œ„ํ•œ ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋ชจ๋‘ ๋‹ค์šด๋กœ๋“œ ํ•œ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ๊ธฐ๋ณธ ํด๋” ๊ตฌ์กฐ

  • npm install ๋ช…๋ น์–ด ์ž…๋ ฅ ๊ฒฐ๊ณผ ํ™”๋ฉด

  1. npm run dev ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด localhost:8080์œผ๋กœ ์ ‘๊ทผํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • npm run dev ์‹คํ–‰ํ•œ ๋ทฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ดˆ๊ธฐํ™”๋ฉด

  • npm run dev ๋ช…๋ น์–ด ์ž…๋ ฅ ๊ฒฐ๊ณผ ํ™”๋ฉด

  • ๋งจ ์•„๋ž˜ 3์ค„์€ ๋ทฐ ํ”„๋กœ์ ํŠธ๊ฐ€ http://loaclhost:8080/ ์— ๊ตฌ๋™๋˜๊ณ  ์žˆ์Œ์„ ์•Œ๋ ค์ฃผ๋ฉด์„œ ์›นํŒฉ ๊ฒฐ๊ณผ๊ฐ’(output)์ด /dist/ ์—์„œ ์ œ๊ณต๋™ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.



์ฐธ๊ณ  do it vue.js

profile
๊ฐœ๋ฐœ๋Œ•๋ฐœ

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