출처: 매일 메일
두 방식 모두 자바스크립트에서 모듈을 관리하고 불러오는 시스템.
require()와 module.exports 사용// CommonJS 예시
const module = require('module');
module.exports = { data: 'value' };
import와 export 키워드 사용// ESM 예시
import module from 'module';
export const data = 'value';
| 특징 | CommonJS | ES Modules |
|---|---|---|
| 로딩 방식 | 동기적 | 비동기적 |
| 사용 환경 | Node.js | 브라우저 + Node.js |
| 문법 | require/exports | import/export |
| 정적 분석 | 불가능 | 가능 |
| 트리 쉐이킹 | 어려움 | 용이 |
Node.js는 버전 12부터 ESM을 네이티브로 지원하기 시작했으며, 풀스택 개발에서 ESM 사용이 증가하는 추세. 특히 비동기적 로딩과 트리 쉐이킹 같은 최적화 기능 때문에 ESM이 더욱 선호되고 있음.