본문 바로가기
컴퓨터과학과

[Node.js] JavaScript에서 모듈 내보내기(exporting)와 가져오기(importing)

by 공부하는노년 2024. 4. 10.
반응형

JavaScript에서 모듈 내보내기(exporting)와 가져오기(importing)

JavaScript에서 모듈 내보내기(exporting)와 가져오기(importing)에는 두 가지 주요 문법이 있습니다: 기본 내보내기(export default)와 명시적 내보내기(export). 각 문법은 다른 모듈이 사용할 수 있도록 해당 모듈의 함수, 객체, 클래스 등을 외부로 공개하는 방법을 제공합니다.

기본 내보내기 (export default)

  • 모듈에서 단 하나의 항목만 기본 내보내기로 설정할 수 있습니다.
  • 가져올 때 (import)는 중괄호 없이 이름을 지정하여 가져올 수 있습니다. 이 이름은 내보낼 때 지정된 이름과 다를 수 있습니다.
  • 기본 내보내기는 모듈의 주요 내보내기로 사용되며, 간단하게 가져올 수 있도록 설계되었습니다.

문법 예시:

// Page 클래스를 기본 내보내기로 내보냅니다.
export default Page;

가져오는 방법 예시:

// 다른 모듈에서 Page 클래스를 기본 가져오기로 가져옵니다.
import Page from './Page.mjs';

명시적 내보내기 (export)

  • 하나의 모듈에서 여러 항목을 명시적으로 내보낼 수 있습니다.
  • 가져올 때는 중괄호 {} 안에 정확한 이름을 사용해야 합니다.
  • 명시적 내보내기는 내보낼 항목들을 세밀하게 제어하고 싶을 때 사용됩니다.

문법 예시:

// Notebook 클래스를 명시적으로 내보냅니다.
export { Notebook };

가져오는 방법 예시:

// 다른 모듈에서 Notebook 클래스를 명시적 가져오기로 가져옵니다.
import { Notebook } from './Page.mjs';

코드 파일(Page.mjs) 내에서의 사용

제공된 Page.mjs 파일 내에서의 문법 사용은 다음과 같습니다:

class Page {
    // Page 클래스의 정의
}

class Notebook {
    // Notebook 클래스의 정의
}

// Page 클래스를 기본 내보내기로 내보냅니다. 다른 모듈에서 import 시 중괄호 없이 가져올 수 있습니다.
export default Page; 

// Notebook 클래스를 명시적으로 내보냅니다. 다른 모듈에서는 중괄호를 사용하여 import 해야 합니다.
export { Notebook };

명시적 모듈 가져오기

정리

여기서 export default Page;Page 클래스가 해당 모듈의 기본 내보내기임을 의미합니다. 따라서 Page 클래스는 다른 모듈에서 중괄호 없이 가져올 수 있습니다. 반면에 export { Notebook };Notebook 클래스를 명시적으로 내보내는 것이므로, 중괄호를 사용하여 해당 이름으로 가져와야 합니다.

 

이러한 내보내기 방식을 사용함으로써, 모듈의 사용자는 자신의 필요에 따라 모듈 내에서 특정 항목을 선택적으로 가져올 수 있으며, 모듈 작성자는 내보내기를 통해 모듈의 사용 방식을 제어할 수 있습니다.

댓글