NodeJS에서 require, ReactJS에서는 Import?

2021. 4. 7. 16:56생각해볼 내용

JavaScript에서 가장 인기있는 웹서버 플랫폼 중 하나인 NodeJS와 가장 있기있는 웹 프레임워크 중 하나인 React JS는 모두 JavaScript를 언어로 한다.

그런데 module을 불러올때, NodeJS require를, React JSimport를 사용하는 것을 알 수 있다.

module을 불러오는 기능은 동일하고, 같은 언어를 사용하는데 이 차이는 뭘까?

결론만 간단하게 말하자면,

NodeJS : CommonJS 명세

React JS : ES6 표준

의 차이에서 비롯된다.

JavaScript는 여러 표준이 있는데, Node같은 경우는 모듈을 사용하기 위해 CommonJS의 명세를 따르고, React JS는 ECMAScript 2015, 즉 ES6를 따르기 때문이다. ES5까지만 하더라도 JavaScript는 모듈화를 정식 지원하지 않았기 때문에, CommonJS 등을 사용하여 module을 require, exports 해야 했으나, ES6로 넘어오면서 모듈화를 정식 지원하기 떄문에 import , from을 이용하여 module을 불러올 수 있다.

그러나 현재까지는  ES6를 완벽하게 지원하는 브라우저가 없기 때문에, webpack이나 Babel등의 컴파일러를 사용해야 한다.