모듈 시스템
개발하는 애플리케이션의 크기가 커지면 언젠간 파일을 여러 개로 분리해야 하는 시점이 온다. 이때 분리된 파일 각각을 모듈(module)이라고 부른다. 필요한 모듈을 불러올 수 있게 해준다거나 코드를 모듈 단위로 구성해주는 방법을 만드는 등의 역할을 모듈 시스템이 지원한다. Node.js에는 CommonJS(CJS), ECMAScript Modules(ESM)이라는 두 가지 모듈 시스템이 존재한다.
CJS
require
와modules.export
를 사용한다.- module loader가 동기적으로 작업을 한다.
- Tree shaking이 어렵다.
ESM
import
와export
를 사용한다.- module loader가 비동기적으로 작업을 한다.
- Tree shaking이 쉽다.
Module Loader
요청된 모듈을 찾아 불러오는 역할을 한다.
[작성중]
Reference
[1] https://ko.javascript.info/modules-intro