그 동안 Node를 이용하여 웹 서버를 구축할 때, npm에 공유되어 있는 많은 모듈들을 받아서 쓸려면 당연히(?) require를 통해 코드를 가져와야 한다 라고 막연히 생각하고 있었다.
그래서 require는 뭔지 import는 뭔지 궁금증이 생겨, 먼저 Require에 대해 정리하고자 한다.
require 문법은 CommonJs에서 사용한다. 즉, Node.js의 환경에서 작동하는 문법이다.
Node.js 환경이란 결국 브라우저가 아닌 런타임(보통 서버사이드)에서 실행된다는 것을 의미한다.
그래서 브라우저에서는 require가 아닌 import라는 ES6에서 새롭게 도입된 문법을 사용한다.
Node.js에서는 module.exports와 exports를 통해 모듈을 바깥으로 내보낼 수 있다.
// export-ex.js
class Foo {
console.log('예시 모듈 실행!');
}
module.exports = Foo;
// import-ex.js
const foo = require('./export-ex.js');
foo(); // '예시 모듈 실행!'