[ JavaScript ] ES Modules 정리하기

CommonJS vs ES Module

CommonJS와 ES Module은 자바스크립트 모듈화를 위해 사용되는 두 가지 방식입니다.

CommonJS는 서버 사이드 자바스크립트(Node.js) 환경에서 모듈을 구현하기 위해 제안된 표준입니다. require() 함수를 이용해 모듈을 가져오고, module.exports를 사용해 모듈을 내보냅니다.

ES Module은 브라우저 환경에서 자바스크립트 모듈을 구현하기 위해 제안된 표준입니다. import 구문을 이용해 모듈을 가져오고, export 구문을 사용해 모듈을 내보냅니다.

두 가지 방식 모두 모듈을 사용해 코드의 재사용성과 유지보수성을 높이는 장점이 있습니다. 하지만 CommonJS는 동기적으로 모듈을 로딩하기 때문에 브라우저 환경에서 사용하기에는 제약이 있습니다. 반면에 ES Module은 비동기적으로 모듈을 로딩할 수 있기 때문에 브라우저에서도 사용할 수 있습니다.

따라서, 서버 사이드에서 자바스크립트 코드를 작성할 때는 CommonJS를, 브라우저에서 자바스크립트 코드를 작성할 때는 ES Module을 사용하는 것이 좋습니다.