본문 바로가기

언어/Node.js

Node.js ESM(ECMAScript) 모듈 사용해 보기

반응형

Node.js ECMAScript 모듈은 ECMAScript 6 (ES6)의 모듈 시스템을 Node.js에서 사용할 수 있도록 한 것입니다. 이 모듈 시스템은 importexport 문을 사용하여 모듈을 정의하고 내보내고 가져오는 방법을 제공합니다.

Node.js에서 ECMAScript 모듈을 사용하는 방법은 다음과 같습니다.

1. 모듈 정의 (export)

다른 파일에서 사용할 함수, 클래스 또는 변수를 export 키워드를 사용하여 내보냅니다.

// myModule.js
export function greet(name) {
  console.log(`Hello, ${name}!`);
}

export const pi = 3.141592;

2. 모듈 가져오기 (import)

다른 파일에서 모듈을 가져올 때 import 문을 사용합니다.

// index.js
import { greet, pi } from './myModule.js';

greet('World'); // 출력: Hello, World!
console.log(pi); // 출력: 3.141592

3. 확장자 .mjs 사용

ECMAScript 모듈은 기본적으로 .mjs 확장자를 사용합니다. 따라서 모듈 파일의 확장자를 .mjs로 지정해야 합니다. Node.js에서는 .js 파일도 ECMAScript 모듈로 사용할 수 있지만, 이 경우에는 "type": "module" 옵션을 사용하여 활성화해야 합니다.

// package.json
{
  "type": "module"
}

 

node index.js
Hello, World!
3.141592

4. 기본 내보내기 (default export)

모듈에서 하나의 항목만 내보낼 경우 export default 문을 사용할 수 있습니다.

data라는 이름 대신에 import 할 때 지정된 이름으로 사용됩니다.

 

// myModule.js
const data = [1, 2, 3, 4, 5];
export default data;
// index.js
import myData from './myModule.js';
console.log(myData); // 출력: [1, 2, 3, 4, 5]

5. 모듈 간 상대 경로 사용

import 문에서 다른 모듈을 가져올 때는 상대 경로를 사용하여 모듈의 경로를 지정합니다.

import { someFunction } from './otherModule.js';

 

ECMAScript 모듈을 사용하면 더 모듈화된 코드를 작성할 수 있으며, 의존성 관리가 용이해집니다. 그러나 현재까지 Node.js에서는 아직 CommonJS 모듈과의 호환성 문제가 있어 전환 시 주의가 필요합니다.

반응형