[TIL] Node.js와 브라우저의 차이점

김은혁·2022년 1월 8일
0

Node.js vs 브라우저

Node.js와 브라우저는 공통적으로 자바스크립트 언어를 기반으로 실행되며 자바스크립트 엔진을 내장하고 있다. Node.js와 크롬은 V8 엔진을 내장하고 있고 브라우저마다 사용하는 자바스크립트 엔진은 상이하다.

존재 목적의 차이

같은 언어를 기반으로 하지만 둘은 존재의 목적부터가 다르다. 브라우저는 HTML, CSS, JS를 실행하여 웹 페이지를 화면에 띄워주는 것이 목적이지만, Node.js는 서버 개발 환경을 제공하는 것이 목적이다. 즉, 브라우저와 서버는 JS 런타임이라는 점은 동일하지만 사용되는 환경이 다르다. 두 경우에 모두 ECMAScript를 실행할 수 있지만, 각 환경에서 자신의 특수한 목적을 실현시키기 위해 제공되는 API들은 서로 호환되지 않는다.

API의 차이

브라우저는 유저에게 웹 페이지를 보여줘야 하기 때문에 Web API를 제공한다. 예를 들면 history, window, setTimeout 등이다. Node.js는 서버 개발을 위해 사용되는 JS 런타임이기 때문에 브라우저에서 제공하는 내장함수를 사용할 수 없다. Node.js는 crypto나 filesystem 등의 파일 시스템을 제어하거나 데이터를 핸들링하는 등 보다 보안요소가 더해진 API가 제공된다.

환경 제어 여부와 모듈 키워드

Node.js는 사용자가 버전을 선택할 수가 있지만 브라우저에서는 불가능하다. 때문에 js는 빠르게 발전하는데 브라우저의 업데이트가 뒤쳐지면서 종종 문제가 발생하기도 한다. 이럴 때 Babel이란 js 컴파일러를 통해 문제를 해결할 수 있다.

Node.js는 commonJS 모듈 시스템을 사용하고, 브라우저는 ES 모듈 표준을 사용하기 때문에 Node.js에서는 다른 파일의 코드를 불러올 때 require() 키워드를 사용하고 브라우저에서는 import 키워드를 사용한다.

0개의 댓글