require와 module.exports를 사용하여 모듈을 가져오고 내보냄 require할 때, 그 모듈이 즉시 실행. 이는 서버에서는 문제가 없지만, 브라우저에서는 비효율적일 수 있음const express = require('express');
module export = {
sayHello : function() {
console.log("Hello");
}
};
import와 export키워드를 사용하여 모듈을 가져오고 내보낼 수 있음.import할 때, 비동기적으로 로드되고 이는 브라우저 환경에서 더 적합한 방식. import express form 'express';
export const sayHello = () => {
console.log("Hello");
}
| -제목- | -제목2= | -제목- |
|---|---|---|
| 모듈로딩 | 동기적(require) | 비동기적(import) |
| 문법 | require / module.exports | import / export |
| 트리 쉐이킹 | 지원X | 지원O(사용하지 않는 코드는 제거( |
| Node.js기본 | Nodejs의 기본 모듈 시스템 | package.json에서 "type":"module"로 지정해야 사용가능 |
| 사용 환경 | 주로 Nodejs환경 | 브라우저 및 Nodejs 모두 사용 O |
두 시스템은 호환이 가능하지만, ES Modules가 더 많이 사용되고 있으며 최신 Nodejs버전에서도 ES Modules를 권창하는 추세다.