본문 바로가기

JavaScript

node.js, JavaScript Runtime Environment

Node.js

Node.js 는 웹브라우저 밖에서도 자바스크립트 코드를 실행할 수 있는 실행환경(Runtime Environment) 이다.

 

 

node.js 에 대해 갖고있던 오해

 

"Node.js" 는 JavaScript를 이용해서 서버를 만들 수 있는 개발 도구 입니다"

 

Node.js 관련 서적을 읽으며 처음 접한 Node.js 의 정의였다. 오해는 여기서부터 시작된 것 같다. 부끄럽게도 최근까지 node.js를 웹 서버 프레임워크로 알고있었다.

 

 

https://nodejs.org/en/about/ 에 들어가면 가장 먼저 볼 수 있는 예제이다. http://localhost:3000 으로 접속하면 "Hello World" 를 출력하는 간단한 "웹 애플리케이션" 이다.

 

 

위 코드는 SpringBoot 로 만든 http://localhost:8080/ 으로 접속했을 때, Hello World을 출력하는 코드이다. 이 두 코드를 놓고서 "Spring 프레임워크" 처럼 node.js를 JavaScript 백엔드 프레임워크 로 잘못 이해하고 있었다.

 

node.js ≠ SpringBoot

 

 

Node.js Http Module

 

node.js에서 http 모듈을 이용해 Response를 만들어 내보내는 형태는 SpringBoot를 이용해 구현한 것보다 Servlet을 구현한 코드와 비슷해 보인다.

 

hello.js

HelloServlet.java

 

http Module ≒  Tomcat

 

 

JRE, node.js

 

node.js 는 웹 브라우저 밖에서 JavaScript 코드를 실행할 수 있는 JavaScript runtime environment 이다. Java는 javac에서 컴파일해서 나온 바이트 코드를 JRE 로 실행한다. node.js는 jre에 대응할 수 있다.

 

 

node.js ≒  JRE

 

Java, JavaScript 비교

  Java JavaScript
실행환경 JRE node.js
웹서버 라이브러리 Tomcat Http
백엔드 프레임워크 Spring Framework 등 Nest.js 등
빌드, 의존성 관리 도구 Maven, Gradle  npm, yarn