Node.js 란 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임
Chrome V8 엔진과 JavaScript 런타임 이라는 용어를 이해하지 못하면
Node.js 에 대해 제대로 이해하기가 어렵기 때문에 먼저 이 2가지를 알아보자!
그 전에 웹 브라우저의 동작 과정에 대해 이해하는 것이 좋다
우리가 일반적으로 보게 되는 웹 화면은 HTML, CSS, JavaScript 이 세가지로 이루어져 있다
이 세가지는 브라우저를 통해서 해석된 후 화면으로 출력되게 되는데 이 과정을 "렌더링" 이라고 표현한다.
그런데 HTML,CSS 와 JavaScript 는 브라우저에서 해석되는 방법의 차이가 있다.
먼저 HTML, CSS 는 브라우저 내에 있는 렌더링 엔진을 통해서 해석
자바스크립트의 경우에는 브라우저 내에 있는 자바스크립트 엔진을 통해서 해석되게 된다.
우리에게 중요한 부분은 바로 자바스크립트 엔진 부분이다.
그 중에서도 크롬에서 만든 V8 이라는 엔진이 있다.
이 엔진이 개발되고 나서 자바스크립트의 속도가 비약적으로 빨라지게 되고 자바스크립트의 사용도가 엄청나게 증가하게 된다.
이 크롬 V8 엔진을 기반으로 Node.js 도 만들어지게 되었고 빠른 속도와 독립적 실행 이라는 특징을 가지게 되었다.
이제 JavaScript 런타임이라는 용어에 대해 알아보자
우선 JavaScript 는 HTML 요소를 조작하기 위한 언어,
브라우저에서 동작하며 HTML 요소를 조작하는 언어라는 뜻이다.
브라우저는 자바스크립트가 동작할 수 있는 런타임이라고 표현하기도 한다.
그래서 자바스크립트의 런타임이라는 뜻은 자바스크립트가 동작할 수 있는 환경을 의미한다.
원래 자바스크립트는 브라우저라는 런타임만 가지고 있었지만
Node.js 가 개발이 되면서 브라우저 외에 다른 곳에서 동작할 수 있는 새로운 런타임이 생겨난 것
또한 가끔 Node.js에 대해 단순히 서버라고만 이해하는 경우가 있는데
Node.js 로 구성되는 대부분이 서버이기 떄문에 이렇게 이해하는 경우도 큰 무리는 없지만
Node.js 는 Chrome V8으로 만들어진 자바스크립트가 동작할 수 있는 독립적인 환경이라고 이해하는 것이 더 좋다.
'Node.js' 카테고리의 다른 글
[Node.js] Node.js CJS로 간단한 HTTP 서버 만들기 (0) | 2024.11.05 |
---|---|
[Node.js] Node.js 의 특징 : 확장성 (1) | 2024.11.05 |
[Node.js] Node.js 의 특징 : 구조 (0) | 2024.11.05 |