개인공부
require vs import 차이
somm12
2022. 7. 3. 15:42
node로 개발하다가 require 와 import의 차이가 궁금해서 알아보았다.
JS로 개발할 때, require나 import로 외부 라이브러리를 불러온다.
require는 NodeJS에서 사용되고 있는 CommonJS 키워드이며
import는 ES6에서 새롭게 도입된 키워드이다.
const http = require("http");
import http from "http";
위의 코드는 동일한 작업을 수행한다.
ES6가 최근에 많이 사용되고 있지만 아직까지는 import 키워드가 완전히 대체되어 사용될 수 없다고 한다.
Babel과 같은 ES6코드 변환 도구를 사용할 수 없는 경우일 시, require를 사용해야한다.
문법 차이
모듈 정의(export)
ES6
// 모듈 전체를 export, 파일내 한번만 사용가능하다.
var module = {};
export default module
// 모든 속성을 export
export *;
// 함수를 직접 export
export function moduleFunc() {};
var property = "some property";
export {property};
CommonJS
// 모듈 전체를 export
module.exports = module
// 함수를 직접 export
exports.moduleFunc = function() {}
모듈 가져오기(import)
ES6
// 모듈 전체를 import
import module
import module as myModule
// 모든 속성 import
import * as name from module
// 특정 멤버(함수 등)만 import
import {moduleFunc, moduleFunc2} from module
CommnJS
// 모듈 전체를 import
var module = require('./someModule.js')
// 특정 멤버(함수 등)만 import, 위의 module을 이용한다.
module.moduleFunc1
module.moduleFunc2
var {moduleFunc, moduleFunc2} from require('./someModule.js')
일반적으로는 import는 필요한 모듈 부분만 선택하고 로드할 수 있어서 더 선호되고 require보다 성능이 우수하고 메모리를 절약한다고 한다.
참고자료
[NODE] 📚 require ⚔️ import (CommonJs와 ES6) 차이
require vs import 자바스크립트 개발을 하다보면 require나 import 키워드를 통해 외부 라이브러리를 불러오는 코드를 자주 보게 됩니다. require는 NodeJS에서 사용되고 있는 CommonJS 키워드이고, import는..
inpa.tistory.com