프로그래밍 노트/JAVASCRIPT

[Javascript] ES6 모듈화(import/export) 사용하기

깡냉쓰 2020. 12. 9. 23:42
728x90
반응형

들어가기전..

ES6 문법을 Node로 실행하기
https://www.daleseo.com/js-babel6-node/
Node를 사용하면 자바스크립트(.js)을 실행시킬 수 있다. 위 블로그에 설명이 잘나와있다.(나도 따라함...ㅎㅎ 사실Vue 프로젝트 안에서만 사용해봤기 때문에.. 신기하다..)

https://www.daleseo.com/js-module-import/ <= 참고하였습니다.

Vue 프로젝트를 진행하다 보면, require 나 import 키워드를 통해 외부 라이브러리를 불러오는 코드를 자주 볼 수 있는데 require는 뷰 설정파일(vue.config.js)에서 자주 보이고, import 는 일반 js 파일에서 자주 본다. 두 키워드 모두 동작은 똑같으며, require는 NodeJS에서 사용되고 있는 CommonJS 키워드이고 import ES6에서 새롭게 도입된 키워드이다. 모듈화에 대해 살펴보자. !!!

키워드 이름 그대로 모듈을 내보내거나(export) 가져올때(import) 사용한다.

복수 객체 내보내기/불러오기

내보내기(export)

내보내기는 Named Export 와 Default Export가 존재한다. 여러 객체를 내보낼 때는, 내보내는 변수나 함수의 이름이 그대로 불러낼 때 사용되기 때문에 Named Exports라고 부른다.

module.js

// export1
export function greeting(){
  return "Hello World!";
}

// export2
const CONSTANT = {
  "NAME": "CORN",
  "AGE": "31",
  "print": function(){
    return `${this.NAME} : ${this.AGE}`
  }
}

export { CONSTANT }

불러오기(import)

여러 객체(Named Exports)를 불러 올 때는 필요한 객체만 선택적으로 이용하거나, 모든 객체에 별명을 붙이고 그 별명을 통해 접근할 수 있다.

import { greeting, CONSTANT } from "./modules"

console.log(greeting());
console.log(CONSTANT.print());

import * as module from "./modules"
console.log(module.greeting())
console.log(module.CONSTANT.print())

>>> Hello World!
>>> CORN : 30
>>> Hello World!
>>> CORN : 30

단일 객체 내보내기/불러오기

하나의 자바스크립 모듈 파일에서 단 하나의 객체를 내보내고 불러오는 방법을 알아보자

내보내기(export)

단일 객체를 내보낼 때는 export default 키워드를 사용한다.

export default {
  greeting(){
    return "hello world!"
  },
  name: "Corn"
}

불러오기(import)

단일 객체(Default Export)를 불러올 때는 아무 이름이나 원하는 이름을 명시하고 해당 객체에 접근할 수 있다.

import corn from "./module2"

console.log(corn.greeting())
console.log(corn.name)

참고

  • 하나의 모듈(파일)에서는 하나의 default export만 가능하다
  • named export는 동일한 이름으로 가져올 수 있고, 이름을 바꾸려면 별칭(as)를 사용해야 한다.
728x90
반응형