[node.js] node.js란?

swing·2021년 2월 28일
0

[node.js]

목록 보기
1/3
post-thumbnail

👉 Node.js 란?


공식 홈페이지에 따르면,

"크롬V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임 입니다. 이벤트 기반, non-blocking I/O 모델을 사용해 가볍고 효율적입니다. npm은 세계에서 가장 큰 오픈 소스 라이브러리 생태계 이기도 합니다." 라고 소개된다.

이제 이 의미들을 파헤쳐 보자!

🤷‍♂️ node.js는 크롬 V8 JS Engine으로 빌드 되었다?


  • JS Engine은 JS Code를 마이크로프로세서가 이해할 수 있는 더 낮은 수준의 언어(기계어)로 변환해주는 역할을 말한다.

    브라우저에는 다양한 JS Engine이 있다. FireFox는 SpiderMonkey , Safari는 Webkit등..그 중 크롬은 V8이라는 구글이 개발한 오픈 소스 JS Engine이다.

    우리가 알아야할 V8의 특징 중 하나는, 브라우저 인터프리팅이 빠르다는 것이다.

    이로 인해 V8엔진을 사용하는 Node.js는 버퍼링이 없고, 빠른 코드 실행을 제공한다.

🤷‍♂️ 자바스크립트 런타임?


  • JS Engine을 브라우저에서만 쓰는 것이 아닌 브라우저 밖에서 JS를 동작하게끔 하는 , 프로그래밍 언어가 구동되는 환경(플랫폼)이라고 이해하면 편할 것 같다.

🤷‍♂️ Node.js의 특징 => 단일 쓰레드 / 이벤트 루프 기반 / 비동기 방식


  • 하나의 쓰레드가 request를 받으면 바로 다음 처리에 요청을 보내놓고 다른 작업을 처리하다가 먼저 요청한 작업이 끝나면 이벤트를 받아서 응답을 보낸다.

    동시에 request가 오더라도 비동기처리로 인해 서버 부하가 적다.

    이로 인해 대용량 request를 처리할 수 있으며, 채팅 서비스 등 빠른 응답을 요구하는 서비스에 어울린다.


profile
if(기록📝) 성장🌱

0개의 댓글