Node.js와 웹 브라우저의 차이점?

정종화·2021년 11월 29일
0

Node.js와 웹 브라우저의 차이점은 뭐가 있어?

1. 두 가지 모두 자바스크립트 엔진을 내장하고 있기 때문에 자바스크립트라는 프로그래밍 언어를 기반으로 실행된다. 하지만 이 두 가지 실행환경은 존재 목적이 매우 다르다.

  • 우선 브라우저는 HTML, CSS, 자바스크립트를 실행하여 웹 페이지를 화면에 띄워주는게 목적이지만, Node.js는 서버 개발 환경을 제공하는 것이 목적이다.

  • 브라우저의 경우, 사용자에게 웹 페이지를 보여주는 것이 목적이기 때문에 HTML 요소를 선택하고 조작하는 DOM API를 제공한다. 또한, 이런 작업을 수행하기 위해서 브라우저는 window / document 객체에 접근할 수 있다.

  • 이와 달리 Node.js는 주로 서버에서 데이터를 다루는 목적으로 사용되기 때문에 로컬 스토리지에 파일을 생성하고 수정하는 File 시스템 관련 API가 제공된다. 이러한 작업을 수행하기 위해서 Node.js는 브라우저보다 컴퓨터의 깊숙한 곳까지 제어할 수 있다. 브라우저는 사용자 컴퓨터에서 동작하기 때문에 브라우저를 통해 사용자의 컴퓨터에 있는 파일들을 조작할 수 있다면 보안적으로 매우 위험하기 때문에 브라우저 환경에서는 이러한 동작을 하지 않는다.

2. 자바스크립트 엔진의 차이도 있을 수 있다. 기본적으로 Node.js와 크롬은 V8 자바스크립트 엔진을 사용하고 있지만 다른 브라우저 같은 경우에는 다른 엔진을 사용하고있다. (파폭은 스파이더몽키, 엣지는 V8 + Chakra)

3. 환경 제어 가능 여부의 차이도 있을 수 있다. Node.js에서는 사용자가 앱에서 어떤 버전의 Node.js 버전을 사용할 것인지 선택이 가능하다. 그러나, 브라우저 환경에서는 방문자가 어떤 브라우저를 사용할 것인지 선택할 수 없다.

4. 모듈 키워드의 차이도 있을 수 있다. Node.js에서 CommonJS 모듈 시스템을 사용하는 반면, 브라우저는 ES 모듈 표준을 사용하고 있다. 즉, Node.js에서는 require()를, 브라우저에서는 import를 이용하여 다른 파일의 코드를 불러올 수 있다.

profile
Hello?

0개의 댓글