JavaScript의 실행환경
JavaScript의 실행 환경이란?
자바스크립트 코드가 동작하기 위해 필요한 전체 시스템
을 의미한다. 이 시스템에는 자바스크립트 엔진, API, 이벤트 처리 메커니즘 등이 포함된다. 자바스크립트는 이런 실행 환경이 갖춰진 다양한 환경에서 실행될 수 있으며, 대표적으로 브라우저
와 Node.js
가 있다.
브라우저 vs Node.js
브라우저 JS | Node.js | |
---|---|---|
사용 환경 | 웹 브라우저 | 서버, 터미널 |
목적 | 웹 페이지 제어 | 서버 구축, 백엔드 개발 |
사용 API | DOM, BOM, alert 등 | fs, http, process 등 |
실행 방식 | HTML 내 <script> 로 실행 | node 파일명.js 로 실행 |
브라우저 (JavaScript for Web)
- 웹 브라우저에는 자바스크립트 코드를 해석하고 실행하는 자바스크립트 엔진이 내장되어 있다.
- 대표적인 브라우저: Chrome, Safari, Firefox, Edge, Opera 등
- DOM, BOM, alert, prompt, document, window 등 브라우저 API 사용 가능
js
// 예시: 브라우저 환경에서만 실행 가능한 코드
alert("안녕!");
document.body.style.backgroundColor = "pink";
Node.js (서버 측 JavaScript)
- 서버나 터미널 등 자바스크립트를 실행할 수 있도록 만든 런타임 환경이다.
- V8 엔진을 기반으로 하며, 파일 시스템, 네트워크, 프로세스 등 브라우저에는 없는 다양한 기능을 사용할 수 있다.
- 브라우저 API 없음 (DOM, alert 등 사용 불가)
- 파일 시스템, 네트워크, 서버 구축 등 다양한 기능 지원 (fs, http 등 모듈 사용)
js
// 파일 생성 예시 (Node.js 환경)
const fs = require("fs");
fs.writeFileSync("hello.txt", "안녕하세요!");
런타임(Runtime)이란?
런타임(Runtime)이란?
브라우저와 Node.js는 외형상 다른 실행 환경
이지만, 그 내부에는 자바스크립트 코드를 실제로 실행하기 위한 공통 구조
, 즉 런타임
을 가지고 있다. 런타임은 단순히 자바스크립트 엔진만 있는 것이 아니라, 다음과 같은 구성 요소로 이루어진다:
- 자바스크립트 엔진 (V8, SpiderMonkey)
- 내장 API (브라우저: DOM, Node.js: fs, http 등)
- 이벤트 루프와 콜백 큐를 포함한 비동기 처리 시스템
즉, 브라우저와 Node.js는 공통된 런타임 구조
를 기반으로 자바스크립트를 실행한다는 점에서 연결된다.