티스토리 뷰

카테고리 없음

ES Modules vs CommonJs

Mr.Ban 2022. 12. 16. 18:46

공통점

두 가지 모두 Javascript Code를 모듈화 해주는 format이다.

역사

javascript는 code를 모듈화 하는 방법이 없었다.

그렇기에 코드를 재사용 하기 위해서는 해당 코드를 global scope에 설정을 해야 했다.

그러다 보니 메모리 문제가 대두 되었고, 이로서 필요한 곳에서만 코드를 가져올 수 있는 방법이 필요했다. 그렇게 나온 것이 CommonJS이다.

CommonJS가 나온 이후 현재 javascript 표준 module format인 ES Module이 나왔다.

차이

Common JS

node.js 에서 기본적으로 사용되는 포멧이다. 그러나 현재는 node.js에서도 안정적으로 ES Modules를 지원한다.

사용 예제

// import
const {add, subtract} = require('./util')
// export
module.exports.subtract = function(a, b) {
        return a - b;
}

ES Modules

javascript 표준 포맷이다.

사용 예제

// import
import {add, subtract} from './util.mjs'

// export
export function add(a, b) {
        return a + b;
}

무엇을 사용해야 할까?

node.js가 ES Modules를 안정적으로 지원하기 때문에, 현재 표준으로 자리 잡은 ES Modules를

사용하는 것이 바람직하다.

 

관련 링크

https://blog.logrocket.com/commonjs-vs-es-modules-node-js/

댓글