Node.js vs 브라우저 환경

 Node.js vs 브라우저

Node.js

- Node.js 공식 사이트에서는

Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임

라고 설명되어 있다.

(런타임? -> 프로그래밍 언어가 실행되고 있는 환경)

 

쉽게 다른 버전의 JavaScript  또는 JavaScript 실행환경이라고 생각하자!

 

브라우저

- 우리가 일상생활에서 검색을 하는 사이트에 접속할 수 있는 도구

- HTML 문서, 이미지 등 여러 콘텐츠를 우리에게 화면으로 표현해줌

- 웹 정보를 화면에 표시하는 소프트웨어


 둘 다 JavaScript를 실행시키는데, Node.js가 왜 나왔나?

구글이 크롬 웹 브라우저의 베타 버전을 발표 -> V8 엔진 탑재

V8 엔진은 이전의 개발되었던 다른 엔진들보다 속도가 빨랐음

또한 크롬 웹 브라우저 코드를 오픈소스화함

 

=> V8 자바스크립트 엔진을 기반으로 Node.js 개발

 

Node.js는 Non-Blocking 방식이고 싱글 스레드 기반이라는 특징 (자세한 내용은 구글링 ..)


• 차이점

1. 목적

- 브라우저

HTML, CSS, JavaScript를 실행하여 웹 페이지를 화면에 띄워주는게 목적

 

- Node.js

JavaScript 코드를 서버에서 실행할 수 있도록 해주고, 어떤 기기에서도 실행할 수 있도록 만들어 줌

 

2. 엔진

node.js와 크롬 브라우저는 동일하게 V8 엔진을 사용

하지만 브라우저는 종류에 따라 사용하는 자바스크립트 엔진이 다름

실행 환경 자바스크립트 엔진
Node.js + Chrome V8
FireFox SpiderMonkey
Edge V8 + Chakra(이전버전)

 

3. API

- 브라우저

사용자에게 웹 페이지를 보여주는 것이 목적이기  때문에 Web API 제공

사용자 컴퓨터에서 동작하기 때문에, 브라우저를 통해 사용자 컴퓨터의 파일들 조작은 불가능 -> 보안이슈

 

- Node.js

주로 서버에서 데이터를 다루기 때문에 로컬 스토리지에 파일 생성,수정하는 파일 시스템 관련 API 제공됨

브라우저보다 컴퓨터의 깊숙한 곳까지 제어가능

 

4. 환경 제어 가능 여부

- 브라우저는 버전 선택 X. Node.js 버전 선택 O

'WEB' 카테고리의 다른 글

PWA란?  (0) 2023.05.14
CORS? 어떻게 해결하지?  (0) 2023.05.10
Rest API, RESTFUL API  (0) 2023.05.06
쿠키 vs 세션 vs 웹 스토리지  (0) 2023.05.05
XML, JSON, YAML  (0) 2023.04.28