본문 바로가기

JS

commonJS와 ESModule

CommonJS

CommonJS는 Node.js 환경에서 주로 사용되는 모듈 시스템

require 함수와 module.exports 또는 exports 객체를 사용하여 모듈을 가져오고 내보냄

 

 

module.exports.add = function(a, b) {
    return a + b;
}

----------------------------------------

const add = function(a, b) {
	return a + b;
}

module.exports = { add };

---------------------------------------
// 사용시
const math = require('./math');

특징

 

  • 동기적 로딩: 서버 사이드 환경(Node.js)에서 일반적으로 문제가 되지 않지만, 브라우저 환경에서는 성능에 영향을 줌
  • 단순한 모듈 구조: CommonJS는 모듈을 객체로 취급하여 간단하고 직관적으로 사용 가능

 

ESModule (ECMAScript Module)

ESModule은 ES6(ECMAScript 2015) 표준에서 도입된 모듈 시스템으로, JavaScript의 공식적인 모듈 시스템

import와 export 키워드를 사용

 

특징

  • 비동기적 로딩: 브라우저 환경에서 특히 유용하며, 성능 최적화에 도움이 됨
  • 정적 구조: ESModule은 정적 분석이 가능하므로 모듈의 종속성을 컴파일 타임에 확인할 수 있어 최적화나 트리 쉐이킹(Tree Shaking, 사용되지 않는 코드를 제거하는 최적화 기법)이 가능
  • 스코프: ESModule은 파일마다 별도의 스코프를 가지므로 전역 변수 오염을 방지하는 데 도움이 됨
  • 엄격 모드: ESModule은 항상 strict mode(엄격 모드)에서 실행

 

'JS' 카테고리의 다른 글

fetch API와 axios 비교  (0) 2024.09.02
번들러  (0) 2024.08.28
Node.js  (0) 2024.08.21
Event  (0) 2024.08.21
파일 입출력  (0) 2024.08.06