ECMAScript 6 (ES6)부터 JavaScript에는 default export
라는 개념이 추가되었습니다. 모듈 내에서 default export
는 해당 모듈에서 기본적으로 내보내는 것으로, import
문에서 명시하지 않으면 default export
가 가져와집니다.
예를 들어, 다음과 같이 user.js
모듈에서 default export
를 정의하면:
// user.js
export default {
name: 'John',
age: 30
};
다음과 같이 main.js
모듈에서 import
할 수 있습니다:
// main.js
import user from './user.js';
console.log(user.name); // "John"
console.log(user.age); // 30
위 코드에서 user
변수에는 user.js
모듈에서 내보낸 default export
객체가 할당됩니다.
한 모듈에서 default export
는 하나만 존재할 수 있으며, default export
가 없는 모듈에서는 named export
를 사용하여 내보낸 항목들을 가져와야 합니다.
default export
는 모듈에서 주요 항목을 단일 값으로 정의할 때 유용합니다. 함수, 클래스, 객체, 배열 등 모듈에서 단일 값으로 내보낼 때 사용할 수 있습니다.
Node.js에서 http
모듈은 기본 내보내기(default export)가 없기 때문에, import
문에서 default
키워드를 사용할 수 없습니다.
// 잘못된 방법
import http from 'http'; // 에러: Module '"http"' has no default export.
// 올바른 방법
import * as http from 'http'; // 모든 것을 가져옴
// 또는
const http = require('http'); // require 문으로 가져옴
위와 같이 http
모듈을 가져오는 방법은 두 가지가 있습니다:
모든 것을 가져오기(import * as http from 'http'
): 이 방법으로 http
모듈을 가져오면, http
객체의 메서드 및 속성에 접근할 때 http.
을 사용해야 합니다. 예를 들어, http.createServer()
를 호출할 때 http.
을 사용해야 합니다.
require
문 사용하기: 이 방법으로 http
모듈을 가져오면, http
객체를 직접 사용할 수 있습니다. 예를 들어, http.createServer()
를 호출할 때 http.
을 사용하지 않고 createServer()
를 호출할 수 있습니다.