[Node.js] require vs import (CommonJs와 ES6 차이점)

Zero·2023년 3월 12일

Node

목록 보기
4/11

require vs import (CommonJs와 ES6)

기본적으로 require와 import는 모듈 키워드이다. 외부 파일이나 라이브러리를 불러올 때 사용하고 require는 Node.js에서 사용되고 있는 CommonJs 키워드이며 import는 ES2015에서 새롭게 도입된 키워드이다. 둘다 다른 파일의 코드를 불러온다는 같은 목적을 가지고 있지만 다른 문법 구조를 가지고 있다

const library = require('library');
const library from 'library';

최근 ES6(ES2015) 모듈 시스템인 import가 많이 사용되고 있지만, 아직까지는 import 키워드가 100% 대체되어 사용될 수 없다. script태그를 사용하는 브라우저 환경과, Node.js에서도 CommonJS를 기본 모듈 시스템으로 채택하고 있기 때문에 Babel과 같은 ES6코드를 변환해주는 도구를 사용할 수 없는 경우에는 require 키워드를 사용해야 한다.



Node.js에서 import 키워드 사용 방법

정식적으로 노드의 CommonJS를 대체할 순 없지만 자바스크립트 노드 프로젝트에서 import키워드를 사용하도록 지정 설정할 수 있는 방법 또한 존재한다.

과거에는 import,export를 인식시키기 위해 따로 .mjs라는 확장자를 사용해 모듈 키워드를 구분하는 방법을 사용했었다. 예를 들어 app.js 대신에 app.mjs로 소스 파일을 만드는 식으로 사용했었지만 이제는 package.json을 통해서 간편하게 설정할 수 있어서 확장자를 바꾸지 않아도 import, export를 쓸 수 있게 되었다.

{
	"type" : "module"
}
  • 해당 부분만 package.json 파일에 추가해주면 된다.

0개의 댓글