상세 컨텐츠

본문 제목

CommonJS module 와 ES module

JavaScript

by 폴리프레임 2023. 11. 1. 18:21

본문

반응형

 CommonJS(CJS) 모듈 시스템과 ECMAScript (ESM) 모듈 시스템은 다른 JavaScript 모듈 시스템이며, 각각의 특징과 사용 방식이 다릅니다. 이 두 시스템의 주요 차이점은 다음과 같습니다:

 

1. CommonJS (CJS) 모듈:

  • CommonJS는 Node.js에서 주로 사용되며, 서버 측 JavaScript 개발에 널리 사용됩니다.
  • require() 함수를 사용하여 모듈을 가져옵니다.
  • 동기적으로 모듈을 로드하므로 모든 종속성이 로드될 때까지 실행이 차단될 수 있습니다.
  • 모듈은 객체로 래핑되어 내보내는 값을 모듈 변수로 가져올 수 있습니다.
  • 주로 CommonJS는 파일 기반 모듈 로딩 및 서버 사이드 환경에 적합합니다.
const fs = require('fs');
const path = require('path');
module.exports = { ... };

 

2. ECMAScript 모듈 (ESM):

  • ESM은 브라우저 및 Node.js에서도 사용 가능하며, 모던 JavaScript 개발에서 점점 더 많이 사용됩니다.
  • import 및 export 키워드를 사용하여 모듈을 가져오고 내보냅니다.
  • 비동기적으로 모듈을 로드하므로 모든 종속성을 기다리지 않고도 코드를 실행할 수 있습니다.
  • 모듈은 엄격한 모드로 실행되며, 파일 범위에서 변수를 공유하지 않습니다.
  • ESM은 정적 모듈 시스템으로, 모듈의 구조와 종속성은 런타임에 동적으로 변경할 수 없습니다.
import fs from 'fs';
import path from 'path';
export { ... };

관련글 더보기