require
와 import
는 모두 자바스크립트에서 외부 모듈을 가져오는 방법입니다. 하지만 둘은 사용하는 문법이나 동작 방식이 다릅니다.
require
는 CommonJS 방식으로 모듈을 가져오는 방법입니다. require
는 모듈을 가져와서 해당 모듈 객체를 반환합니다. require
를 사용하는 경우, 가져온 모듈이 객체로 반환되므로 해당 모듈의 함수와 변수에 접근하기 위해서는 해당 객체의 속성으로 접근해야합니다.
const module = require('module-name');
module.functionName();
import
는 ES6(ECMAScript 2015)에서 도입된 모듈 로딩 방식입니다. import
는 가져온 모듈에서 지정한 변수나 함수를 바로 사용할 수 있게 해줍니다. import
문은 모듈을 가져와서 해당 모듈의 모든 변수와 함수를 현재 파일의 스코프 내에 바로 가져올 수 있습니다.
import { functionName } from 'module-name';
functionName();
따라서 import
는 require
와 달리 가져온 모듈에서 바로 사용할 변수와 함수를 선택적으로 가져올 수 있습니다.
일반적으로 Node.js에서는 require
를 사용하고, React, Vue.js와 같은 프론트엔드에서는 import
를 사용합니다. 하지만 최신 버전의 Node.js에서도 import
를 사용할 수 있으며, 바벨과 같은 도구를 사용하면 ES6의 import
를 CommonJS 방식의 require
로 변환할 수 있습니다.