• 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 |