본문 바로가기
Javascript

[Node.js] Node.js와 브라우저의 차이

by SeanK 2022. 3. 23.

 

Node.js와 브라우저의 차이점이라... 서로 확연하게 다른 개념이라 이런 걸 굳이 알아야 하나 싶은 질문이지만

 

놀랍게도 공식문서에서 해당 개념을 설명해 놓았다!

 

https://nodejs.dev/learn/differences-between-nodejs-and-the-browser

 

Differences between Node.js and the Browser

How writing JavaScript application in Node.js differs from programming for the Web inside the browser

nodejs.dev

 

시간이 없으신 분들을 위해 번역해 옮겨 본다. 

 

Differences between Node.js and the Browser

 

브라우저와 Node.js는 모두 자바스크립트를 프로그래밍 언어로 사용합니다. 

 

하지만 브라우저 상에서 돌아가는 어플을 마드는 것과 Node.js 어플리케이션을 제작하는 것은 완전히 다릅니다. 

 

모두 같은 자바스크립트를 사용함에도 불구하고, 이 둘을 서로 확연히 다르게 결정짓는 부분이 있습니다. 

 

자바스크립트를 사용해왔던 프론트엔드 개발자에게 Node.js는 엄청난 이점을 가져다줍니다. 하나의 언어로 프런트와 백엔드를 모두 작성할 수 있으니까요.

 

프런트 개발자는 이미 자바스크립트 언어를 잘 알고 있기 때문에 동일한 언어를 클라이언트와 서버 모두 이용하면 유리한 이점을 얻을 수 있습니다.

 

하지만 에코시스템에서 차이점이 발생합니다. 

 

브라우저에서 개발자가 상호작용하는 것들은 DOM 혹은 쿠키와 같은 다른 웹 플랫폼의 API입니다. 이러한 것들은 Node.js에는 존재하지 않습니다. 물론 document, window와 같이 브라우저에서 제공되는 객체도 없습니다. 

 

브라우저에서는 파일시스템 접근과 같이 Node.js가 모듈로 제공하는 멋진 API가 없습니다.

 

또 다른 차이점은 Node.js는 환경 제어가 가능합니다. 누구나 사용할 수 있는 오픈소스 애플리케이션을 제작하는 것이 아니라면 어떤 Node.js 버전을 사용할지 알 수 있습니다. 반면, 브라우저에서는 방문자가 어떤 브라우저를 이용할지 개발자가 결정할 수 없습니다.   

 

이 뜻은 당신의 Node.js 버전이 지원하는 모던 ES6-7-8-9 자바스크립트를 모두 사용 할 수 있다는 뜻입니다. 

 

자바스크립트는 너무나도 빠르게 변화하는 반면 브라우저는 업그레이드 속도가 다소 느려 가끔씩 오래된 자바스크립트 문법으로 실행에 문제가 생기기도 합니다. 

 

브라우저에서는 ES5 문법으로 변환을 하기 위해 바벨을 이용하기도 하나, Node.js는 그런것이 필요 없습니다. 

 

또 다른 차이점은 Node.js는 CommonJs와 ES 모듈 시스템을 모두 지원한다는 점입니다. 반면 브라우저는 ES 모듈이 이제 적용되기 시작하고 있는 추세입니다. 

 

예를 들어 보자면, Node.js에서는 require()와 import 모두 사용할 수 있지만 브라우저에서는 import만 사용 가능합니다.