본문 바로가기
개발(Development)/JS(자바스크립트)

[자바스크립트] 실행 환경 ECMA Script, Web API, Node.js

by 카레유 2020. 12. 10.

예전에 node.js를 처음 다룰 때,

 

document.getElementById()나 XMLHttpRequest가 왜 안되지... 하면서 헤매곤 했었다.

반대로 브라우저 환경에서 __dirname 등이 안 먹어서 어리둥절 했었다.

 

이는 자바스크립트는 실행환경에 따라 제공되는 API가 다르기 때문이다.

 

 

# 자바스크립트 실행 환경

: 자바스크립트라고 하면 아래의 4가지가 연상된다.

 

1) ECMA Script의 문법 기준을 따르는 프로그래밍 언어

: 변수, 객체, if문, for문 등

 

2) 브라우저 전용 Web API

: BOM, DOM, XMLHttpRequest 등

 

3) Node.js API(키워드, 객체, 모듈 등)

: __dirname, process, path, fs 등

 

4) 기타 라이브러리 API

: JQuery, express 등

 

 

자바스크립트는 기본적으로 ECMAScript 문법을 따르는 프로그래밍 언어이다.

이 문법에 따라 변수나 객체를 생성하고, if문이나 for문으로 흐름을 제어한다.

따라서 어느 환경에서나 이 문법에 따라 자바스크립트 프로그래밍이 가능하다.

 

단, 실행환경에 따라 제공되는 API가 다르다.

 

브라우저에서는 HTML요소 조작 및 AJAX를 위한 "브라우저 전용 Web API"가 제공된다.

BOM, DOM, XMLHttpRequest 등은 브라우저 환경에서만 작동한다.

Node.js 에서는 제공되지 않는 옵션이다.

 

node.js 환경에서는 파일/운영 시스템 등을 컨트롤하기 위한 "노드 전용 API"가 제공된다.

__dirname, process, path, fs 등은 Node.js 환경에서만 작동한다.

브라우저 환경에서는 제공되지 않는 옵션이다.

 

또한 추가적인 설치 등을 통해

브라우저 환경에서는 JQuery 라이브러리 등을 사용할 수 있고,

Node.js 환경에서는 express 모듈 등을 사용할 수 있다.

 



* 결론

ECMAScript 기반의 자바스크립트 언어는 거의 대부분의 환경에서 작동하지만,

document.getElementById() 등의 WebAPI는 브라우저에서만 작동하며,

_dirname, porcess, fs, path 등의 node.js 키워드/객체/모듈은 node.js 환경에서만 작동한다.

 

 

댓글