Welcome :っ)

Devlog/Web

Node.js 란?

lazy.won 2022. 4. 6. 22:58
728x90
반응형

 

 

Node.js 란?

 

웹서비스 개발에 빠질 수 없는 Node.js

대체 Node.js 는 뭘까? 개념을 확실히 하고자 찾아본 내용을 정리해본다. 

 

nodejs.org

 

Node.js는 크롬 V8 자바스크립트 엔진으로 만들어진 JavaScipt 런타임이다. 

 

JavaScript는 누가 돌릴까? Javascript의 해석은 누가 할까?

 

바로 브라우저 이다. 

 

브라우저마다 JavaScript를 해석할 수 있는 엔진이 존재한다. 

  • 크롬 브라우저 - V8 엔진
  • Mozilla / Firefox 브라우저 - SpiderMonkey 엔진
  • 익스플로러 브라우저 - Chakra 엔진

 

Node.js는 Chrome의 JavaScript 해석 엔진인 V8 엔진으로 이루어져 있다. 

 

 

 

Node.js를 만든 이유?

Node.js가 나오기 전에는 자바스크립트를 구동하려면 웹 브라우저를 통해서 실행시킬 수 밖에 없었다. 

Node.js는 자바스크립트 언어를 브라우저 내에서 말고도 다른 환경에서도 실행할 수 있게 하기 위해 만들어졌다. 

 

쉽게 말해, Node.js는 자바스크립트 실행창, 실행 환경이다. (=런타임) 자바스크립트를 구동시킬 수 있는 환경이다.

브라우저를 키지 않아도 Node.js만 있으면 자바스크립트 문법을 실행 할 수 있다. 

 

Node.js 덕분에 JavaScript를 프로그래밍 언어처럼 사용하기 시작했다.

또한 많이들 사용하는 방식인 Node.js로 쉽게 서버를 만들 수 있다. 

 

브라우저의 엔진을 사용하는 것이 아니라 서버에 Node.js를 설치하고 서버 쪽에서 자바스크립트를 구동할 수 있게 만들어 준 것이 Node.js가되는것이다.

 

그래서 Node.js를 활용한 서버 구동이라는 말이 많이 나오게 되는 것이다. 

 

 

Node.js 특징

Node.js는 기본적으로 이벤트 기반 ( Event-Driven ), 논블로킹 I/O( Non - Blocking I/O), 싱글 스레드 라는 특성을 갖는다. 

 

1. 단일쓰레드 이벤트 루프 기반 비동기 방식( Non-Blocking I/O)

  • 하나의 쓰레드가 request를 받으면 바로 다음 처리에 요청을 보내놓고 다른 작업을 처리하다가 먼저 요청한 작업이 끝나면 이벤트를 받아서 응답을 보낸다. 
  • 동시 request가 오더라도 처리가 완료될때까지 기다리지 않아도 되기 때문에 서버 부하가 적다. 
  • 즉, 일단 요청을 다 받고, 요청 온 순서에 상관없이 처리 속도가 빠른 것부터 응답을 주기 때문에 Node.js 서버로 구현한 서비스는 요청이 많거나, 오래걸리는 요청이 있어도 멈추거나 대기하고 있지 않는다. 

2. 이러한 Non-Blocking I/O 덕분에 채팅/SNS에 주로 사용된다. 

 

3. 코드가 매우 짧고 쉬워서 빠르게 개발이 가능하다. 

 

 

320x100
반응형