CommonJS vs ESModule

진 솔·2025년 6월 19일

JavaScript에서 모듈을 사용하는 방법은 크게 CommonJSESModule(EMS) 두 가지가 있습니다. 각각의 특징과 차이점, 사용법을 정리해보겠습니다.

CommonJS

node.js에서 기본적으로 사용되는 모듈 시스템입니다.

// math.js
const add = (a, b) => a + b;
module.exports = { add };

// app.js
const math = require('./math');
console.log(math.add(2, 3)); // 5
  • module.exports 로 모듈에서 외부로 어떤 값을 내보낼지 정의하고

  • require() 로 다른 파일의 module.exports 값을 가져옵니다.

  • 동기 방식으로 작동합니다.

ESModule

ES6(ES2015)에서 도입된 자바스크립트 표준 모듈 시스템입니다.

// math.mjs
export const add = (a, b) => a + b;

// app.mjs
import { add } from './math.mjs';
console.log(add(2, 3)); // 5
  • export 로 외부로 값을 내보내고

  • import 로 다른 파일에서 export 된 값을 불러올 때 사용

  • 비동기 방식으로 작동

Node.js에서 ESM 사용 방법

package.json 에서 "type" : "module" 로 설정하면 된다.

commonJS 사용하고 싶다면 "type": "commonjs" 로 바꿀것 !

마무리

CommonJS는 여전히 많은 프로젝트에서 쓰이고 있지만, ESModule이 점점 표준이 되어가고 있습니다. 새로운 프로젝트를 시작한다면 ESModule을 고려해보는 것이 좋습니다!

profile
FE Developer Wannabe / 내가 인정 받을 때까지!! / https://github.com/sorrybro2 <- 깃허브 !

0개의 댓글