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

[Node.js] Node.js의 ES6 문법에서 확장자에 관하여

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

Node.js의 ES6 문법에서 확장자

Node.js 환경에서 JavaScript 파일의 확장자(.js 또는 .mjs)는 파일이 모듈로 어떻게 취급되는지에 중요한 역할을 합니다. 여기서 .js.mjs 확장자에 대해 자세히 알아보겠습니다.

.js 확장자

기본적으로 .js 확장자는 JavaScript 파일을 나타냅니다. Node.js에서 이러한 파일은 오랫동안 CommonJS 모듈 시스템을 사용하여 처리되었습니다. CommonJS 모듈 시스템은 Node.js의 기본 모듈 시스템으로, requiremodule.exports를 사용하여 모듈을 가져오고 내보냅니다.

예를 들어, 다음과 같이 CommonJS 문법을 사용할 수 있습니다:

// sum.js
function sum(a, b) {
  return a + b;
}
module.exports = sum;

// app.js
const sum = require('./sum.js');
console.log(sum(1, 2)); // 출력: 3

package.json 파일에서 "type": "module"을 설정하지 않았다면, Node.js는 .js 파일을 CommonJS 스크립트로 취급합니다.

확장자의 변경으로 에러 해결

.mjs 확장자

.mjs 확장자는 "ECMAScript Module"을 나타내며, ES6(ECMAScript 2015) 이후로 JavaScript가 공식적으로 모듈을 지원하기 시작하면서 등장했습니다. 이 확장자를 사용하면 파일이 ES6 모듈로 취급되며, importexport 문법을 사용할 수 있습니다.

예를 들어, 다음과 같이 ES6 모듈 문법을 사용할 수 있습니다:

// sum.mjs
export function sum(a, b) {
  return a + b;
}

// app.mjs
import { sum } from './sum.mjs';
console.log(sum(1, 2)); // 출력: 3

.mjs 확장자를 사용하면 package.json에 별도로 설정을 추가하지 않아도 Node.js가 자동으로 ES6 모듈로 인식합니다. 이는 Node.js가 ES6 모듈과 CommonJS 모듈을 함께 지원할 수 있도록 하며, 개발자가 명시적으로 모듈의 타입을 결정할 수 있게 해 줍니다.

확장자 선택

확장자를 선택할 때는 프로젝트의 필요와 호환성을 고려해야 합니다. 만약 기존의 Node.js 프로젝트가 있다면, .js 확장자와 CommonJS 모듈 시스템을 계속 사용할 수 있습니다. 새로운 프로젝트이거나, 최신 모듈 기능을 최대한 활용하고 싶다면 .mjs 확장자와 ES6 모듈 문법을 사용하는 것이 좋습니다.

모듈 시스템을 혼용해야 하는 경우, 또는 팀 내에서 일관된 개발 환경을 유지해야 하는 경우에는 프로젝트 설정과 문서화를 통해 명확한 가이드라인을 제공해야 합니다.

이러한 차이점을 이해하는 것은 Node.js 환경에서 모듈을 관리하고 애플리케이션을 구성할 때 중요한 요소입니다. 개발자는 프로젝트의 요구 사항에 따라 적절한 확장자와 모듈 시스템을 선택해야 합니다.

댓글