개발하는 애플리케이션의 규모가 커지면 파일을 여러 개로 분리해야 하는 시점이 옵니다. 이때 분리된 하나의 파일을 모듈(module)
이라고 부르는데, 모듈은 대개 클래스 하나 혹은 특정한 목적을 가진 여러개의 함수를 포함하는 라이브러리로 구성되어 있습니다.
그리고 이러한 모듈을 필요시에 언제든지 불러올 수 있도록 하는 다양한 방법들이 있습니다. 이렇게 모듈을 불러오는 방법을 모듈 시스템
이라고 하며, 그 모듈 시스템
은 다음과 같은 방법들이 있습니다.
AMD
- 가장 오래된 모듈 시스템 중 하나로 require.js라는 라이브러리를 통해 처음 개발되었습니다.CommonJS
- NodeJS 환경을 위해 만들어진 모듈 시스템 입니다.UMD
- AMD와 CommonJS와 같은 다양한 모듈 시스템을 함께 사용하기 위해 만들어졌습니다.ES Module
- ES6(ES2015)
에 도입된 자바스크립트 모듈 시스템 입니다ES6(ES2015)
에 도입된 자바스크립트 모듈 시스템 입니다. <script>
태그에 type="module"
속성을 추가해주면, 이 파일은 모듈로서 동작합니다.
<!DOCTYPE html>
<html lang="en">
<head>
<title>ES Modules</title>
<script type="module" src="module/index.js"></script>
</head>
<body></body>
</html>
모듈을 외부에서 사용할 수 있도록 내보낼 때는 named export
, default export
와 같은 키워드를 사용하며, 외부에서 모듈을 불러올 때는 import
를 사용하여 모듈을 불러올 수 있습니다.