JavaScript에서 모듈을 사용하는 방법은 크게 CommonJS와 ESModule(EMS) 두 가지가 있습니다. 각각의 특징과 차이점, 사용법을 정리해보겠습니다.
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 값을 가져옵니다.
동기 방식으로 작동합니다.
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 된 값을 불러올 때 사용
비동기 방식으로 작동
package.json 에서 "type" : "module" 로 설정하면 된다.

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