# μλ² μ¬μ΄λ λ λλ§μ΄λ?
μλ² μ¬μ΄λ λ λλ§μ΄λ μλ²μμ νμ΄μ§λ₯Ό κ·Έλ € ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ )λ‘ λ³΄λΈ ν νλ©΄μ νμνλ κΈ°λ²μ μλ―Έν©λλ€. λ·° μ±κΈ νμ΄μ§ μ ν리μΌμ΄μ μ μλ² μ¬μ΄λ λ λλ§μ λ°λμΈ ν΄λΌμ΄μΈνΈ μ¬μ΄λ λ λλ§ λ°©μμ λλ€. μ΄ κΈμμλ ν΄λΌμ΄μΈνΈ μ¬μ΄νΈ λ λλ§κ³Ό μλ² μ¬μ΄λ λ λλ§ λ°©μμ μ°¨μ΄μ μ μ΄ν΄λ³΄κ³ μλ² μ¬μ΄λ λ λλ§μ μ₯λ¨μ μ λΆμν΄ λ³΄κ² μ΅λλ€.
# ν΄λΌμ΄μΈνΈ μ¬μ΄λ λ λλ§
ν΄λΌμ΄μΈνΈ μ¬μ΄λ λ λλ§μ μ΄ν΄νκΈ° μν΄μ λ·° CLIλ‘ μμ±λ νλ‘μ νΈμ μ€ν κ²°κ³Όλ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€. μλλ λ·° CLIλ‘ μμ±ν νλ‘μ νΈμ κΈ°λ³Έ μ½λμ λλ€.
// src/main.js
import Vue from "vue";
import App from "./App.vue";
new Vue({
render: (h) => h(App),
}).$mount("#app");
μ μ½λλ λ·°μ μΈμ€ν΄μ€λ₯Ό μμ±νλ μ½λμ
λλ€. μ΄ μΈμ€ν΄μ€λ μλ index.html
νμΌμ app
μμ΄λλ₯Ό κ°λ νκ·Έμ λΆμ°©λ©λλ€.
<!-- public/index.html -->
<!DOCTYPE html>
<html lang="">
<head>
<!-- ... -->
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
CLIλ‘ νλ‘μ νΈλ₯Ό μμ±νκ³ λ ν npm run serve
λ‘ νλ‘μ νΈλ₯Ό μ€ννκ³ λΈλΌμ°μ λ₯Ό νμΈνλ©΄ λ·° κΈ°λ³Έ νμ΄μ§κ° λΉλλ€. μ΄ λ κ°λ°μ ν¨λμ Network
νμμ Doc
μΌλ‘ νν°λ§ν κ²°κ³Όλ μλμ κ°μ΅λλ€.
μλ²μμ λ겨λ°μ HTML μ½λμλ body
νκ·Έ λ³Έλ¬Έμ <div id="app"></div>
λ°μ μμ§λ§ νλ©΄μλ
Welcome To Your Vue.js App
ν
μ€νΈμ μ΄λ―Έμ§κ° μμ΅λλ€. μ΄ ν
μ€νΈμ μ΄λ―Έμ§λ λͺ¨λ ν΄λΌμ΄μΈνΈ(λΈλΌμ°μ )μμ λμν Vue.js
λΌμ΄λΈλ¬λ¦¬κ° κ·Έλ €μ€ κ²μ
λλ€. μ¦ λΈλΌμ°μ μμ νλ©΄μ κ²°κ³Όλ₯Ό κ·Έλ €λΈ κ²μ΄μ£ .
# μλ² μ¬μ΄λ λ λλ§κ³Ό ν΄λΌμ΄μΈνΈ μ¬μ΄λ λ λλ§ μ°¨μ΄μ
κ·ΈλΌ μλ² μ¬μ΄λμ λ λλ§μ μμμ μ΄ν΄λ³Έ ν΄λΌμ΄μΈνΈ μ¬μ΄λ λ λλ§κ³Ό λ¬΄μ¨ μ°¨μ΄μ μ΄ μμκΉμ? λ°λ‘ μ΄λμ νλ©΄μ λ³΄μΌ νμ΄μ§μ λ΄μ©μ 그리λλμ μ°¨μ΄μ λλ€. ν΄λΌμ΄μΈνΈ μ¬μ΄λ λ λλ§μ νμ΄μ§μ λ΄μ©μ λΈλΌμ°μ μμ κ·Έλ¦¬κ³ μλ² μ¬μ΄λ λ λλ§μ μλ²μμ νμ΄μ§μ λ΄μ©μ λ€ κ·Έλ €μ λΈλΌμ°μ λ‘ λμ Έμ€λλ€. μλμ κ°μ΄ λ§μ΄μ£ .
# μλ² μ¬μ΄λ λ λλ§μ μ μΈκΉ?
μλ² μ¬μ΄λ λ λλ§μ μ°λ λͺ©μ μ ν¬κ² "κ²μ μμ§ μ΅μ ν"μ "λΉ λ₯Έ νμ΄μ§ λ λλ§"μ λλ€. κ²μ μμ§ μ΅μ νλ ꡬκΈ, λ€μ΄λ²μ κ°μ κ²μ μ¬μ΄νΈμμ κ²μνμ λ κ²°κ³Όκ° μ¬μ©μμκ² λ§μ΄ λ ΈμΆλ μ μλλ‘ μ΅μ ν νλ κΈ°λ²μ λλ€. νΉν, SNSμμ λ§ν¬λ₯Ό 곡μ νμ λ ν΄λΉ μΉ μ¬μ΄νΈμ μ 보λ₯Ό μ΄λ―Έμ§μ μ€λͺ μΌλ‘ νμν΄μ£Όλ OG(Open Graph) Tagλ₯Ό νμ΄μ§ λ³λ‘ μ μ©νκΈ° μν΄μλ μλ² μ¬μ΄λ λ λλ§μ΄ ν¨μ¨μ μ λλ€.
λν, μλ² μ¬μ΄λ λ λλ§μ λΉ HTML νμ΄μ§λ₯Ό λ°μ λΈλΌμ°μ μμ 그리λ ν΄λΌμ΄μΈνΈ μ¬μ΄λ λ λλ§κ³Ό λ€λ₯΄κ² μλ²μμ 미리 κ·Έλ €μ λΈλΌμ°μ λ‘ λ³΄λ΄μ£ΌκΈ° λλ¬Έμ νμ΄μ§λ₯Ό 그리λ μκ°μ λ¨μΆν μ μμ΅λλ€. μ¬μ©μ μ μ₯μμλ νλ©΄μ μ μλ―Έν μ λ³΄κ° νμλλ μκ°μ΄ λΉ¨λΌμ§λ κ²μ΄μ£ .
# μλ² μ¬μ΄λ λ λλ§μ λ¨μ
μ΄λ κ²λ§ 보면 μλ² μ¬μ΄λ λ λλ§μ νλκ² μ’κ² λ€ λΌκ³ μκ°νμ€ μ μμ§λ§ μμνκΈ° μ μ μ£Όμν΄μΌ ν μ μ΄ μμ΅λλ€. μλ² μ¬μ΄λ λ λλ§μ Node.js μΉ μ ν리μΌμ΄μ μ€ν λ°©λ²μ μμμΌνκ³ μλ²μͺ½ νκ²½ ꡬμ±κ³Ό ν¨κ» ν΄λΌμ΄μΈνΈ, μλ² λΉλμ λν μ΄ν΄κ° νμν©λλ€. λ°λΌμ, νλ°νΈμλ κ°λ° μ λ¬Έμ μ μ₯μμλ μ½μ§ μμ μ§μ μ₯λ²½μ΄ μ‘΄μ¬ν©λλ€.
λν, Node.js νκ²½μμ μ€νλκΈ° λλ¬Έμ λΈλΌμ°μ κ΄λ ¨ APIλ₯Ό λ€λ£° λ μ£Όμν΄μΌ ν©λλ€. λ·° μ±κΈ νμ΄μ§ μ ν리μΌμ΄μ
μ λΌμ΄ν μ¬μ΄ν΄ ν
κ³Όλ λ€λ₯Έ νκ²½(λΈλΌμ°μ κ° μλ Node.js)μμ λμνκΈ° λλ¬Έμ beforeCreate
μ created
μμ window
λ document
μ κ°μ λΈλΌμ°μ κ°μ²΄μ μ κ·Όν μ μμ΅λλ€.
TIP
μλ² μ¬μ΄λ λ λλ§μ κ²½μ° μ»΄ν¬λνΈκ° μ΅μ΄λ‘ μμ±λλ μμ μ΄ λΈλΌμ°μ μκ° μλλΌ Node.js νκ²½μ΄κΈ° λλ¬Έμ beforeCreate
λ created
μμ λΈλΌμ°μ κ°μ²΄λ₯Ό μ κ·Όν μ μμ΅λλ€. λμ beforeMount
λ mounted
μμ window
μ document
λ₯Ό μ κ·Όν μ μμ΅λλ€ π
# μ°Έκ³ μλ£
β Introduction Universal Mode β