우선 node.js와 브라우저 둘 다 자바스크립트 언어 기반으로 실행되며 자바스크립트 엔진을 내장하고 있다.
여기서 자바스크립트 엔진이란?
크롬의 경우 V8엔진, 파이어폭스는 스파이더몽키 등이 있다.
node.js는 V8엔진을 내장하고 있다.
node.js와 브라우저의 차이점은 바로 존재목적이다.
브라우저는 HTML, CSS, Javascript를 실행하여 웹 페이지를 화면에 띄우는 것이 목적이다.
node.js는 서버 개발 환경을 제공하는 것이 목적이다.
즉 javascript는 브라우저와 node.js(서버)를 위한 언어이며, 자바스크립트 런타임이라는 점은 브라우저와 서버 둘 다 동일하다.
하지만 여기서 사용되는 환경이 다른데 친구들 앞에서 하는 말투와 직장내에서 발표할때의 말투가 다른것으로 예를 들수가 있다.
API(Application Programming Interface)
어떤 플렛폼이나 실행 환경등에서 제공하는 인터페이스
즉, 개발자가 특정환경에서 자유롭게 가져다 쓸 수 있는 함수나 객체등을 의미한다.
브라우저의 경우 유저에게 해당 웹 페이지를 보여주어야하기 때문에 web API를 제공한다.
history, Fetch, window, setTimeout등이 있음
node.js의 경우 서버개발을 위해 사용되는 자바스크립트 런타임이므로 브라우저에서 제공되는 내장함수인 alert등을 사용할수없다. node.js는 파일 시스템을 제어하거나, 데이터를 핸들링하는 보안요소가 더해진 API가 제공된다.
crypto, filesystem(fs)등이 있음
모듈 시스템의 경우 어떠한 모듈을 불러올때
브라우저는 에크마스크립트 표준 모듈을 사용한다.
import 사용
노드는 commonJS모듈 시스템을 사용한다.
require()