Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript 기본 내보내기(Default Export) vs 명명된 내보내기(Named Export), 차이점 완벽 이해

JavaScript 모듈 시스템에서는 크게 두 가지 방식으로 값을 내보낼 수 있습니다. 바로 기본 내보내기(Default Export)명명된 내보내기(Named Export)입니다.

두 방식의 핵심적인 차이는 다음과 같습니다.

  • 기본 내보내기(Default Export): 파일마다 단 하나만 존재할 수 있으며, 가져올 때(import) 원하는 이름을 자유롭게 지정할 수 있습니다.
  • 명명된 내보내기(Named Export): 한 파일에 여러 개를 만들 수 있으며, 반드시 내보낼 때 사용한 이름 그대로 중괄호({ }) 안에 넣어 가져와야 합니다.

예제 코드

아래 예제는 JavaScript에서 기본 내보내기와 명명된 내보내기의 차이를 보여주는 코드입니다.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
    body {
        font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
    }
    .result {
        font-size: 18px;
        font-weight: 500;
        color: rebeccapurple;
    }
</style>
</head>
<body>
<h1>Default export vs Named Export</h1>
<div class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>Click on the above export function as named and default export</h3>
<script src="script.js" type="module">
</script>
</body>
</html>

sample.js

먼저 함수를 내보내는 모듈 파일입니다. testImport 함수는 기본 내보내기로, tellTime 함수는 명명된 내보내기로 작성했습니다.

export default function testImport(){
    return 'Module testImport has been imported'+'';
}
export function tellTime(){
    return new Date();
}

script.js

이제 위에서 내보낸 함수들을 가져와 사용하는 파일입니다. 기본 내보내기는 이름을 지정하지 않고 바로 받고, 명명된 내보내기는 중괄호 안에 정확한 이름을 적어 가져오는 것을 확인할 수 있습니다.

import defaultExport from "./sample.js";
import {tellTime} from "./sample.js";
let resultEle = document.querySelector('.result');
document.querySelector('.Btn').addEventListener('click',()=>{
    resultEle.innerHTML+=defaultExport();
    resultEle.innerHTML+=tellTime();
})

실행 결과

위 코드를 실행하면 다음과 같은 화면이 나타납니다.

JavaScript 기본 내보내기(Default Export) vs 명명된 내보내기(Named Export), 차이점 완벽 이해

'CLICK HERE' 버튼을 클릭하면 기본 내보내기로 가져온 함수의 반환 문자열과, 명명된 내보내기로 가져온 현재 날짜·시간 정보가 함께 출력됩니다.

JavaScript 기본 내보내기(Default Export) vs 명명된 내보내기(Named Export), 차이점 완벽 이해

정리

구분기본 내보내기(Default)명명된 내보내기(Named)
파일당 개수1개만 가능여러 개 가능
import 방법임의의 이름 사용 가능중괄호 { } 안에 원래 이름 사용
선언 방법export defaultexport

모듈에서 대표적인 하나의 기능(클래스, 컴포넌트 등)을 제공할 때는 기본 내보내기를, 유틸리티 함수처럼 여러 기능을 제공할 때는 명명된 내보내기를 사용하는 것이 일반적인 관례입니다.