Skip to content

JavaScript의 실행환경

JavaScript의 실행 환경이란?

자바스크립트 코드가 동작하기 위해 필요한 전체 시스템을 의미한다. 이 시스템에는 자바스크립트 엔진, API, 이벤트 처리 메커니즘 등이 포함된다. 자바스크립트는 이런 실행 환경이 갖춰진 다양한 환경에서 실행될 수 있으며, 대표적으로 브라우저Node.js가 있다.

브라우저 vs Node.js

브라우저 JSNode.js
사용 환경웹 브라우저서버, 터미널
목적웹 페이지 제어서버 구축, 백엔드 개발
사용 APIDOM, 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는 공통된 런타임 구조를 기반으로 자바스크립트를 실행한다는 점에서 연결된다.