본문 바로가기
개발공부/NodeJS

[Node.js 프로젝트 투입 일주일 전] 모듈 Module Require/Import

by bzerome240 2023. 5. 21.

모듈 Module

: 분리된 각각의 자바스크립트 파일, 각 파일은 특정한 목적을 가진 여러 개의 함수와 변수의 집합

사용하는 이유: 재사용을 위해!

함수와 변수를 객체에 담고 다른 자바스크립트 파일에서 사용하기 위해 module.exports에 대입하면 모듈로 적용된다.

모듈로 만들어진 자바스크립트 파일은 require()함수를 통해 가져올 수 있다.

 


 

Require VS Import

둘 다 외부 모듈/라이브러리를 불러오는데 사용된다.

Import라는 es6 모듈 시스템을 많이 사용하는 추세이지만, <script> 태그를 사용하는 브라우저 환경에서나, NodeJS 환경 또는 Babel 사용이 불가할 때 Require 를 사용하므로 알아둬야한다.

 

  • commonjs
    • equire / exports
  • es6
    • import / export / export default
// commonjs
const moment = require("moment");

// es6
import moment from "moment";

 

es6 모듈 설정 환경에서 commonjs 문법을 사용하거나, 반대로 사용할 경우에도 에러가 난다.

 

 

Nodejs에서 import/export 사용하는 방법

package.json 에 type을 module로 설정해준다.

{
  ...
  "type" : "module"
  ...
}

 

 

 


 

ES6 import/export

require를 사용하는 commonJs 모듈 방식은 모듈 전체를 불러왔지만 ES6 부터는 모듈 내 정의된 것들중에 필요한 객체만 불러올 수 있기 때문에 성능과 메모리 측면에서도 좋아졌다.

 

ES6 import 방법

import { export된 변수명 } from " ./파일경로 "
import * as { 원하는 이름 } from " ./파일경로 "

 

 

ES6 export 방법

방법 1) Named exports

여러값을 export 하는데 유용하다

 

방법 2) Default exports

모듈 당 딱 한개의 default export만 있어야 한다.

 


 

CommonJS import/export

 

CommonJS require 방법

const foo = require('./파일경로')

 

CommonJS export 방법

방법 1) exports

여러개의 객체를 내보낼 경우

 

방법 2) module.exports

딱 하나의 객체를 내보낼 경우

 

 

 

 

 

 

728x90
반응형

댓글