Cs

26. NodeJS란?

ITSEONG 2022. 6. 9. 14:58

2009년 Ryan Dahl이 처음 개발했으며, 오픈소스 Javascript 엔진인 크롬 v8에 비동기 이벤트 처리 라이브러리인 libuv를 결합한 플랫폼이다.

 

javascript로 브라우저 밖에서 서버를 구축하는 등의 코드를 실행할 수 있게 해주는 런타임 환경이다. 

빈번한 I/o 처리에 있어서의 우수한 성능, 서버 확장의 용이성, 무엇보다도 javascript라는 프론트엔드 필수 언어로 백엔드까지 작성할 수 있다는 엄청난 장점 때문에 출시 이후로 빠르게 점유율을 높여가고 있다. 특히 넷플릭스 처럼 엄청나게 많은 양의 인풋 아웃풋 데이터를 처리해야 하는 서비스에 있어서 강점이 두드러진다.

 

 

NodeJs 특징

  • 자바스크립트를 활용하여 논 블럭킹(Non Blocking) I/O와 단일 스레드 이벤트 루프를 통한 높은 처리성능을 가지고 있다. -> 함수가 호출 시 당장 실행하지 않고 다른곳에 쌓아두고 동시에 요청을 처리하고 처리가 완료된 순서대로 처리한다.
  • 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별동의 소프트웨어 없이 동작하는 것이 가능하며 이를 통해 웹서버의 동작에 있어 더 많은 통제를 가능케 한다.
  • javascript로 서버를 구동할 수 있다.
  • nodeJS 는 싱글 스레드, 논 블럭킹 모델로 싱글스레드가 혼자서 일을 처리하지만 들어오는 요청 순서가 아닌 논 블럭킹 방식으로 이전작업이 완료가 되지 않아도 대기하지 않고 다음작업을 수행한다.

 

반응형