Node.js란?

윤동환·2022년 12월 8일
0

Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임(실행창)입니다.
런타임이란?
특정 언어로 만든 프로그램을 실행할 수 있는 환경

  • JavaScript를 서버에서도 사용할 수 있도록 만든 프로그램이다.
  • V8이라는 JavaScript 엔진 위에서 동작하는 자바스크립트 런타임(환경)이다.
  • 웹서버와 같이 확장성 있는 네트워크 프로그램을 제작하기 위해 만들어졌다.

사용 이유

  • Javascript를 브라우저에서 독립시켜 브라우저와 무관한 프로그램을 만들기 위해서
    -> 즉, JS라는 한가지 언어를 사용하여 Client - Server를 만들수 있다.

특징

이벤트 기반

  • libuv 라이브러리를 사용하여 이벤트 기반, Non-blocking I/O 모델을 구현하고 있다.
  • 특정 이벤트가 발생할 때 무엇을 할지 미리 등록해두고, 등록한 이벤트를 이벤트 리스너에 콜백함수로 등록한다.

이벤트 루프

  • 여러 이벤트가 동시에 발생시 콜백함수 호출의 우선순위를 정하여 처리한다.
  • 이벤트가 종료될때 까지 처리를 위한 작업을 반복한다.

Non-blocking I/O

  • 함수 호출시 어느곳에 쌓아두고 비동기적(논블록킹)으로 처리하여 요청이 완료된 순서대로 처리(스택이용)한다.

싱글 스레드

  • node는 싱글스레드이기 때문에 논블록킹방식을 사용하여 요청이 들어온 순서가 아닌 작업이 완료된 순서로 처리한다.
profile
모르면 공부하고 알게되면 공유하는 개발자

0개의 댓글