Node.js

안정태·2021년 5월 3일
1

Study

목록 보기
12/33
post-thumbnail

Node.js 란?

비동기 이벤트 주도 js런타임으로써 확장성 있는 네트워크 애플리케이션을 만들 수 있도록 도와준다. Non-blocking IO와 단일 스레드 이벤트 루프를 통해 높은 처리 성능을 가지고 있다.

앞서 설명 했듯이 Node.js 라이브러리 내의 API는 모두 비동기식이다. Non-blocking 즉, 멈추지 않는다. API를 실행하고 기다리지 않고 바로 다음 API를 실행한다. 그리고 이전에 실행한 API가 값을 반환하면 이벤트 루프가 이를 확인하고 값을 받아온다. 단일 쓰레드 모델을 사용하고, 이벤트 메커니즘을 통해 서버가 멈추지 않고 반응할 수 있어 확장성을 키워준다.

그리고 Chrome의 V8 JavaScript 엔진을 사용해서 코드 실행이 빠르고 버퍼링이 없습니다.
이와 같은 특징으로 데이터를 실시간으로 다루는 어플이나 싱글페이지 애플리케이션, 입출력이 잦은 애플리케이션을 개발 할 때 뛰어난 효율을 발휘한다.
단, 싱글 스레드이기 때문에 하나의 작업이 오래 걸리면 성능이 매우 나빠지므로 CPU 사용률이 높은 어플에선 사용을 권장하지 않는다.

이러한 Node.js를 통해서 이제 Javascript는 웹 브라우저 뿐만 아니라 컴퓨터 자체를 제어 할 수 있게 된다.

profile
코딩하는 펭귄

0개의 댓글