# ํ๊ฒฝ ๋ณ์ ํ์ผ์ ์ด์ฉํ ์ต์  ์ค์ 
ํ๊ฒฝ ๋ณ์ ํ์ผ์ด๋ ์ ํ๋ฆฌ์ผ์ด์
์ด ์คํ๋  ๋ ํน์  ๊ฐ์ ๋๊ธธ ์ ์๋ ๋ณ์๋ฅผ ์๋ฏธํฉ๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์
 ๊ด์ ์์๋ .env ํ์ผ์ ์ ์๋ ๋ณ์๋ฅผ ์๋ฏธํ๋ฉฐ ๋ฏธ๋ฆฌ ์ ์๋ ๊ฐ์ ์ ํ๋ฆฌ์ผ์ด์
์์ ํ์ฉํ๊ณ  ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค.
์ด๋ฒ ์ฑํฐ์์๋ Vue.js ์ ํ๋ฆฌ์ผ์ด์
์์ .env ํ์ผ์ ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์๋ณด๊ฒ ์ต๋๋ค.
# env ํ์ผ
CLI๋ก ์์ฑํ ํ๋ก์ ํธ๋ก ๊ฐ๋ฐ ๋ฐ ๋ฐฐํฌ๋ฅผ ์งํํ  ๋ .env๋ผ๋ ํ๊ฒฝ ๋ณ์ ํ์ผ๋ก ์ต์
๋ค์ ํธํ๊ฒ ๋ฐ๊ฟ ์ ์์ต๋๋ค.
# .env ํ์ผ
VUE_APP_LOCAL_URI=http://localhost:8080/
VUE_APP_TEST_SERVER=http://test.com:9090/
clientId=client-test1234
clientServer=server-test1234
์์์ ์ค์ ํ ๋ณ์๋ค์ ๊ฐ์ง๊ณ ์ ํ๋ฆฌ์ผ์ด์  ๋ก์ง์ ํ์ฉํ ์๋ ์๊ณ , ์นํฉ์ผ๋ก ๋น๋๋ฅผ ํ ๋ ์ ๋ณ์์ ๋ด์ฉ์ ๋ฐ์ํ ์๋ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ด API์ ํธ์ถ URL ๊ฐ์ผ๋ก .env ํ์ผ์ ์ ์ํ VUE_APP_LOCAL_URI๋ฅผ ์ฌ์ฉํ  ์ ์์ต๋๋ค.
// api/index.js
function fetchUser() {
  return axios.get(`${VUE_APP_LOCAL_URI}users`);
}
์์ ๊ฐ์ด ์๋น์ค ์ฝ๋์์ .env ํ์ผ์ ์ง์ ํ ๋ณ์๋ฅผ ํ์ฉํ๋ ค๋ฉด ์๋์ ๊ฐ์ด ์นํฉ์ ์ถ๊ฐ ์ค์ ์ ํด์ค์ผ ํฉ๋๋ค.
// webpack.config.js
const webpack = require('webpack');
const dotenv = require('dotenv');
const env = dotenv.config().parsed;
plugins: [
  new webpack.DefinePlugin({
    VUE_APP_LOCAL_URI: JSON.stringify(env.VUE_APP_LOCAL_URI),
  }),
],
# Vue CLI 3.x ๋ฒ์ ์ ํ๊ฒฝ ๋ณ์ ํ์ผ ์ ๊ทผ
์ต์ ๋ทฐ CLI์์๋ ์์ ๊ฐ์ด ์นํฉ์ DefinePlugin์ ์ค์ ํ์ง ์์๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค. ํ๊ฒฝ ๋ณ์ ํ์ผ์ ๋ณ์ ๋ช ์ ์๋์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ ์ํ๋ฉด ๋ฉ๋๋ค.
VUE_APP_NUM=10
VUE_APP_STR=hi
๋ณ์ ๋ช
 ์์ ํญ์ VUE_APP_ ๋ฅผ ๋ถ์ฌ์ฃผ๋ฉด Vue CLI์์ ๋ด๋ถ์ ์ผ๋ก ์นํฉ DefinePlugin์ ํ์ฉํ์ฌ ํด๋ผ์ด์ธํธ ์น ์์์์ ์ ๊ทผํ  ์ ์๊ฒ ์ค์ ๋ฉ๋๋ค.
// main.js
import Vue from 'vue';
// ...
console.log(VUE_APP_NUM); // 10
new Vue({
  // ...
})
<!-- App.vue -->
<template>
  <!-- ... -->
</template>
<script>
export default {
  created() {
    console.log(VUE_APP_STR); // hi
  }
}
</script>
์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์๋์ ํ๊ฒฝ ๋ณ์๋ค๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
NODE_ENV: ์ ํ๋ฆฌ์ผ์ด์  ๋ชจ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ณ์development,production,testBASE_URL:vue.config.jsํ์ผ์ ์ ์๋publicPath์ ๊ฐ๊ณผ ๋์ผํ ๋ณ์
โ General Guide CLI v3.x Rules โ