본문 바로가기
Javascript

Javascript - 모듈(Module)

by DGK 2021. 10. 1.

 

인프런 자바스크립트 입문 수업을 듣고 중요한 내용을 정리했습니다.
개인 공부 후 자료를 남기기 위한 목적이므로 내용 상에 오류가 있을 수 있습니다.

 

모듈(Module)

 

  • Module 이란?
Module은 scripts 파일에서 원하는 함수만을 확인하고 가져와서 사용할 수 있는 기능이다.

<기본 개념>
//Module 기능 없이, 일반적으로 scripts 파일을 사용하는 경우

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
    <script src="/scripts/3-13.Module.js"></script>
    
    <script>
        	          
    log("log로 메시지 출력");	// 결과 : log로 메시지 출력
    
    error("error로 메시지 출력");	// 결과 : error로 메시지 출력


    //이 경우에는 scripts 파일에 존재하는 모든 함수를 확인하고,
    //에러가 있는지 파악한 후에 함수를 호출한다.
    
    //만약 scripts 파일 안에 상당히 많은 함수가 있고,
    //scripts 파일에서 사용하고 싶은 함수는 오직 2~3개 정도라면,
    //2~3개의 함수를 사용하기 위해 scripts 파일에 존재하는 모든 함수를
    //확인하는 것은 리소스 낭비이며 비효율적이다.
    
    //이러한 문제를 해결하기 위해 Module 기능이 필요하다.
    
    //Module은 scripts파일에서 원하는 함수만을 확인하고,
    //가져와서 사용할 수 있는 기능이다.(해당 파일의 모든 함수를 확인할 필요 X)
    
    </script>
</body>
</html>

 

//scripts 파일

function log(message){
    console.log(message);
}


function error(message){
    console.error(message);
}



//Module 기능을 사용하는 경우

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
    <script type="module">		
    import {log, error, PI} from "/scripts/3-13.module.js";
    
    //반드시 type="module"를 정의해야 한다.

    log("log로 메시지 출력");	// 결과 : log로 메시지 출력
    
    error("error로 메시지 출력");	// 결과 : error로 메시지 출력
    
    log(PI);			// 결과 : 3.14

    //이렇게 scripts 파일에서 원하는 함수만을 import { }의 
    //파라미터로 가져와서 사용할 수 있다.
    
    //이 경우, scripts 파일을 모두 해석할 필요가 없어서,
    //더욱 효율적이고 리소스 낭비도 줄일 수 있다.

    </script>
</body>
</html>

 

//scripts 파일

export function log(message){
    console.log(message);
}

export function error(message){
    console.error(message);
}

export const PI = 3.14;		//변수도 export 가능



//Module 기능을 사용하여, scripts 파일에서 다른 scripts 파일을 받는 경우

<!DOCTYPE html>
<html>
<head>
    <title>Document</title>
</head>
<body>
    <script src="/scripts/3-13.ref.js" type="module">
    
    // 결과 : REF에서 메시지 출력(scripts 파일의 함수가 바로 실행됨)
    
    //scripts 파일을 html 파일뿐만 아니라 scripts 파일에서도 받을 수 있다.
    
    //Module을 사용하면 기능별로 자바스킙트 파일을 분리해서 관리할 수 있고,
    //필요한 함수만을 가져올 수 있기 때문에, 더욱 효율적인 코드를 작성하여, 
    //다양한 기능을 구현할 수 있다.
    
    </script>
     
</body>
</html>

 

//scripts 파일(다른 scripts 파일로부터 import한 code 포함)

import {log} from "/scripts/3-13.module.js"

log("REF에서 메시지 출력");

'Javascript' 카테고리의 다른 글

Javascript - Error(try, catch, finally)  (0) 2021.10.01
Javascript - 클래스(Class)  (0) 2021.10.01
Javascript - Async/Await  (0) 2021.10.01
Javascript - Promise  (0) 2021.10.01
Javascript - Array Destructuring  (0) 2021.09.30

댓글