아래 사진은 Node.js 홈페이지의 랜딩페이지에 나와있는 문장이다.
여기서 2가지 어려운 단어가 나온다. V8 과 런타임 이다.
V8은 무엇이고 런타임은 무엇일까?
V8은 C++로 작성된 오픈소스 자바스크립트 엔진이다.
자바스크립트를 바이트 코드로 컴파일하고 실행하는 방식을 사용한다.
여기서 바이트 코드란 단어가 어려워서 서칭해봤는데, 이진 표현법으로써 보통 한 번에 하나의 명령어를 읽은 후 실행한다고 한다.
이런 점에서 인터프리터 언어인 자바스크립트와 잘어울리겠다고 생각했다.
런타임이란 프로그래밍 컴퓨터 프로그램이 실행되고 있는 동안의 동작을 말한다.
Node.js가 나오기 전에는 자바스크립트는 런타임이 브라우저에서만 존재했다.
그래서 자바스크립트를 브라우저 밖에서도 사용할 수 있게 끌어낸 것이 Node.js이다.
흔히 Node.js를 백엔드 영역이라고 생각한다.
나도 Node.js에 대해 조사하기 전까지는 그렇게 생각했었다.
그렇게 착각하는 이유는 Node.js는 확장성이 있는 네트원크 어플리케이션을 위해 설계되었고, 이 말은 서버를 위해서 설계된 플랫폼이기 때문이다.
하지만 프론트 엔드 개발자도 Node.js를 빈번하게 사용한다.
ES6문법을 ES5 문법으로 트랜스파일 해주는 Babel이 그 예이다.
바벨 뿐만 아니라, npm으로 설치하는 모든 CLI는 Node.js를 이용한다고 볼 수 있다.
그리고 npm(Node Package Manger)을 쓴다는 것 자체가 Node.js를 이용하는 것이다.