module
javascript 모듈 시스템에 대해서 살펴본다
module
module은 프로그램을 단위 별로 개발하여 필요한 내용들을 불러와 사용할 수 있도록 고안된 시스템이다. export와 import를 통하여 내보내기 및 불러오기를 처리할 수 있다.
module의 장점
module의 장점은 다음과 같다.
export를 통해 원하는 항목만 외부에서 이용하도록 처리할 수 있다.
import를 통해 대상에서 원하는 항목만 호출하여 사용할 수 있다.
cdn처럼 선언 순서가 중요하지 않다.
module 사용을 위한 script 구성
module을 사용하기 위해서는 다음과 같은 <script>
구성이 필요하다.
named export
이름을 기반으로 하여 export와 import를 할 수 있다. 프로젝트를 다음과 같이 구성하여 module을 사용해본다.
test01.html
에서는 script 부분 외는 기본 템플릿을 사용한다.
실행하면 정상적으로 값이 로드되어 출력까지 잘 되는 것을 확인할 수 있다.
CDN 방식과의 비교
cdn 방식이라면 위의 예제는 다음과 같이 구현되었을 것이다.
import 대신 <script>
태그를 사용하여 js 파일을 불러와 해당 파일의 내용을 사용한다. 이 경우 발생하는 문제점은 여러 가지가 있다.
js에 작성된 내용의 이름을 바꿀 수 없다.
js에 작성된 내용을 반드시 모두 가져와야 한다.
불러오는
<script>
를 반드시 위에 따로 작성해야 한다.
export default
default를 사용하여 이름을 생략하고 export와 import를 할 수 있다. 프로젝트를 다음과 같이 구성한다.
js와 html에 각각 코드를 작성한다.
아래의 그림처럼 불러오며, named export와 차이점은 import 시 { }
를 사용하지 않는다는 것이다.
rename import
import 할 때 충돌을 방지하기 위해서 이름을 변경할 수 있다. 프로젝트를 다음과 같이 구성한다.
실행하면 정상적으로 나오지만 alert
과 같은 경우 window.alert
함수와 충돌이 발생한다. 따라서 이름을 바꿔서 불러올 수 있다. 이름을 바꾼 코드는 다음과 같다.
default rename import
export default에 대한 rename은 다음과 같이 할 수 있다.
Last updated