Node.js와 크롬 브라우저는 같은 JavaScript 엔진을 사용하지만, 완전히 동일한 환경은 아닙니다.
노드JS 와 크롬브라우저의 엔진
노드JS 와 크롬브라우저의 엔진
위의 목차를 클릭하면 해당 글로 자동 이동 합니다.
공통점: V8 JavaScript 엔진
- Node.js와 Chrome 브라우저는 모두 V8 엔진을 사용합니다. V8은 Google이 개발한 오픈소스 JavaScript 엔진으로, JavaScript를 빠르게 실행하기 위해 설계되었습니다.
- V8은 JavaScript 코드를 바이트코드로 컴파일하고 실행하며, JIT(Just-In-Time) 컴파일을 통해 성능을 최적화합니다.
차이점: 실행 환경
1) 목적
Chrome 브라우저
- 웹 브라우저에서 HTML, CSS, JavaScript를 실행하기 위한 환경입니다.
- JavaScript는 DOM(Document Object Model) 조작, 이벤트 핸들링, UI 렌더링 등과 같은 웹 관련 작업을 수행합니다.
- Web APIs, HTML5, CSS 지원 등이 포함됩니다.
Node.js
- 서버 사이드 JavaScript 실행 환경으로 설계되었습니다.
- JavaScript로 파일 시스템, 네트워크 요청, 데이터베이스 등 백엔드 관련 작업을 수행합니다.
- Node.js는 브라우저와 달리 DOM이나 Web APIs를 제공하지 않고, 대신 자체적인 모듈(fs, http 등)을 제공합니다.
2) API 및 기능
Chrome 브라우저
- DOM 조작: document, window, localStorage와 같은 브라우저 전용 API를 제공합니다.
- Web APIs: fetch, WebSocket, Canvas API, Geolocation API 등을 사용할 수 있습니다.
- 제한된 파일 시스템 접근: 브라우저 내에서 파일 접근은 보안상의 이유로 제한적입니다.
Node.js
- 서버 API: fs, http, net, path, crypto와 같은 서버 관련 모듈을 제공합니다.
- Web APIs가 없으므로 DOM, fetch 등의 기능은 기본적으로 사용할 수 없습니다.
- npm(Node Package Manager): 수많은 패키지를 쉽게 설치 및 관리할 수 있는 시스템을 제공합니다.
3) 글로벌 객체
Chrome 브라우저
- 글로벌 객체는 window 입니다.
- 예: window.alert(), window.setTimeout()
Node.js
- 글로벌 객체는 global 입니다.
- 예: global.setTimeout()
- 브라우저의 window 와는 다른 환경을 제공합니다.
4) 모듈 시스템
Chrome 브라우저
- ES6 모듈(import/export)을 기본적으로 지원합니다.
- 브라우저는 번들링 없이 모듈을 로드할 수 있습니다.
Node.js
- 기본적으로 CommonJS(require/module.exports)를 사용합니다.
- ES6 모듈도 지원하지만, 설정이 필요합니다(type: "module").
요약
- 엔진: Node.js와 크롬 브라우저 모두 V8 엔진을 사용합니다.
- 환경: Node.js는 서버 측 작업에 최적화된 환경을 제공하며, 브라우저는 웹 작업에 초점을 맞춘 기능을 제공합니다.
- API: Node.js는 브라우저에서 제공하지 않는 파일 시스템 및 네트워크 모듈을 제공하며, 반대로 브라우저는 DOM 및 Web APIs를 제공합니다.
즉, Node.js와 Chrome 브라우저는 같은 엔진을 기반으로 하더라도 목적과 기능 면에서 차이가 있습니다.
반응형
'기록하고 싶은 모든 것 > 지식' 카테고리의 다른 글
탄핵이란 무엇인가? (1) | 2024.12.18 |
---|---|
javascript 에서 document 는 네이티브 함수가 맞아? (0) | 2024.11.22 |
ISO 국제표준화기구 세탁기호 (한국 외 다른나라) (1) | 2024.11.05 |
구글애드센스 무효클릭(티스토리 블로그) 신고하기 (0) | 2022.05.23 |
티스토리 구글애드센스(google AdSense) 계좌 등록 방법 (0) | 2022.04.06 |