본문 바로가기
All Side/Runtime > NodeJS

[NodeJS] VM (Virtual Machine) - 가상머신 모듈

by developerBeluga 2022. 2. 28.
728x90
반응형

 

 

VM이란?

물리적 하드웨어 시스템에 구축되어 자체 CPU, 메모리, 네트워크 인터페이스 및 스토리지를 갖추고 가상 컴퓨터 시스템으로 작동하는 가상 환경이다.

 

즉, VM를 이용하여 OS 운영체제에서 윈도우나 리눅스를 돌릴 수 있다는 것이다.

하지만 무거운 운영체제를 포함하고 있기 때문에 경량화 한 것이 컨테이너이다.

 

NodeJS는 원래 V8엔진을 사용한다.

NodeJS내에서 엔진을 쉽게 액세스 할 수 있는데 그 방법이 VM모듈에서 제공한다.

 

const express = require("express")
const vm = require("vm")

const context = {
  express: express, 
}

vm.createContext(context)

const code = `
const app = express()
app.get('/', (req, res) => {
  res.send('hello world')
})
app.listen(8080)
`

vm.runInContext(code, context)

 

 

장점

VM이 해당 운영체제에 맞게 지원만 해준다면 플랫폼에 독립적으로 실행할 수 있다.

초기 컴파일 단계를 통해 바이트코드로 기계어에 더 가까운 언어로 번역을 한 번 해놓았기 때문에 속도도 기존 인터프리터 언어에 비해 빠르다.

 

 

하지만

VM은 가상화 기술이 나오기 전에 한대의 서버를 하나의 용도로만 사용하기 위해 사용되었다.

그러다보니 남는 서버 공간은 그대로 방치되었으며

하나의 서버에 하나의 운영체제, 프로그래만 운영하다보니 비효율적이라는 단점을 가지고 있다.

성능비교를 하더라도 Docker 컨테이너가 VM보다 더 나은 성능을 발휘한다고 할 수 있다.

관련글 : https://artistdata.tistory.com/5

 

[ Docker #03 알아보기 3/5 ] - VM vs Docker 성능비교

도커를 공부다보면 Docker와 VM의 차이를 알게 됩니다. 하지만 실제 성능은 어느정도 차이가 있을까요? 이번 포스팅은 신빙성 있는 해외 논문 자료를 기반으로 Docker vs VM 성능비교에 대해 설명

artistdata.tistory.com

 

 

 

 

 

 

728x90
반응형

댓글