JavaScript/AboutJS

[JavaScript ]CommonJS 모듈 ES 모듈 차이

머지?는 병합입니다 2024. 8. 26. 12:55

 

1. 문법

 - CommonJS 모듈

   const module = require('module');
   module.exports = { ... };

 

- ES 모듈

   import module from 'module';
   export const something = { ... };

 

2. 로딩방식

 

CommonJS: 동기적으로 로드
ES 모듈: 비동기적으로 로드

3. 사용환경

CommonJS: 주로 Node.js 환경
ES 모듈: 브라우저와 최신 Node.js 버전에서 지원

4. 정적 분석

CommonJS: 런타임에 동적으로 모듈 결정
ES 모듈: 컴파일 시간에 정적으로 분석 가능

5. 캐싱

CommonJS: 모듈을 캐시하여 여러 번 호출해도 한 번만 실행
ES 모듈: 모듈을 한 번만 평가하고 결과를 공유

6. this 값

CommonJS: 모듈 내 this는 exports 객체를 가리킴
ES 모듈: 모듈 내 this는 undefined

7.  순환 의존성 처리

CommonJS: 부분적으로 완성된 객체 반환 가능
ES 모듈: 더 엄격한 처리, 순환 의존성 감지 용이