본문 바로가기

프론트엔드/자바스크립트

모듈 (Module)

반응형

프로젝트의 규모가 커지면 코드의 양이 늘어나고 가독성이 떨어지죠. 많은 언어에서 라이브러리, 패키지 등 다양한 이름으로 같은 기능을 하는 코드들을 분산해서 저장하고 필요할 때 불러와 쓰는 방식으로 이러한 문제를 해결하는데, 자바스크립트에서도 모듈화를 통해 효율적으로 코드를 작성할 수 있습니다.

 

모듈은 작성된 코드를 저장하는 별개의 자바스크립트 코드인데요. 어떻게 사용하는지 알아보겠습니다.


사용방법

index.html 파일에서 불러오는 메인스크립트에 type="module"을 추가합니다.

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="https://kit.fontawesome.com/833be080c6.js" crossorigin="anonymous"></script>
  <link rel="stylesheet" href="./main.css">
  <script defer type="module" src="./index.js"></script> <!-- main JS -->
</head>

 

이후 모듈 자바스크립트 파일에서 내보내기 (export)와 이를 사용하고자 하는 자바스크립트 파일 (여기서는 index.js)에서 가져오기 (import)를 통해 사용합니다.

 

module.js

function hiWorld() {
  console.log('hi')
}

export function byeWorld() { // 내보내기 문법1: 개별로 내보내기
  console.log('bye')  
}

export function withAlias() {
  console.log('with alias')  
}

// 변수
const one = 1
let two = 2
var three = 3

export {hiWorld, one, two, three} // 내보내기 문법2: 객체로 내보내기

주의할 점은 내보내기를 하는 코드는 파일의 공통영역 (global scope)에 위치해야 합니다.

export function byeWorld() {
  console.log('bye')
  var notExported = 'not exported'
}

export {notExported}

export error (지역변수는 내보내기 불가)

 

index.js

import { hiWorld, byeWorld, withAlias as alias, one, two, three } from './module.js'
hiWorld()
byeWorld()
alias()

console.log(one, two, three)

이상으로 자바스크립트에서 모듈을 활용하는 방법을 알아보았습니다.


참고

 

JavaScript modules - JavaScript | MDN

This guide gives you all you need to get started with JavaScript module syntax.

developer.mozilla.org

 

728x90
반응형

'프론트엔드 > 자바스크립트' 카테고리의 다른 글

프로젝트 - 계빨 게임 (Math Sprint)  (0) 2022.12.24
연산자 (Operators)  (0) 2022.12.24
웹팩 (webpack)  (0) 2022.12.21
Declarative Code VS Imperative Code  (0) 2022.12.21
데이터 요청  (0) 2022.12.17