node.js 란?

신병규·2024년 1월 3일
0

JS

목록 보기
8/8
post-custom-banner

Node.js 란

Node.js는 Chrome V8 JavaScript 엔진으로 빌드 된 JavaScript 런타임입니다.

⇒ 노드를 통해 다양한 자바스크립트 애플리케이션을 실핼할 수 있고, 서버를 실행하는데 제일 많이 사용됨.

⇒ V8 JavaScript 엔진은 JS파일을 컴퓨터가 읽을 수 있도록 변환해주는 역할, 구글이 Chrome의 성능을 높여려고 개발하여, 코드 번역 방식을 바꿔 속도를 개선해 오픈소스로 공개함

  1. JavaScript를 서버에서도 사용할 수 있도록 만든 프로그램
  2. V8이라는 JavaScript 엔진 위에서 동작하는 자바스클비트 런타임(환경) 이다.
  3. 서버사이트 스크립트 언어가 아닌, 프로그램 (환경)이다.
    1. 서버사이트 스크립트 언어 : 웹 서버에서 실행되면서 동적인 컨텐츠를 생성하는 언어를 의미⇒ PHP Python Ruby Java 등은 서버사이트 스크립트 언어에 해당
  4. 웹 서버와 같이 확장성 있는 네트워크 프로그램을 제작하기 위해 만들어졌다.

JavaScript가 높은 생산성과 편리함을 지녔고 프론트엔드 주요 언어이기 때문에 백엔드까지 영역을 확대해 풀스택 개발이 수월해졌다.

node.js의 내부는 어떻게 구성되어 있을까

Node.js의 내부는 크게 다음과 같은 주요 구성 요소로 이루어져 있습니다:

  • Event Loop (이벤트 루프):

    Node.js의 핵심이며, 비동기 이벤트를 처리하는 메인 루프입니다.
    이벤트 큐에서 이벤트를 받아 처리하고, 비동기 작업을 수행합니다.

  • Libuv 라이브러리:

    Node.js의 I/O 작업 및 이벤트 루프를 구현하는 주요 라이브러리로, 크로스 플랫폼을 지원합니다.
    I/O 작업, 타이머, 이벤트 처리 등을 담당합니다.

  • V8 엔진:

    Google Chrome 브라우저에서 사용되는 JavaScript 엔진으로, JavaScript 코드를 빠르게 실행합니다.
    JIT(Just-In-Time) 컴파일러를 사용하여 속도를 향상시킵니다.

  • C++ 바인딩:

    Node.js는 C++로 작성된 일부 코드와 V8 엔진을 연결하는 C++ 바인딩을 사용합니다.
    이를 통해 JavaScript 코드와 C++ 코드 간의 상호 작용이 가능합니다.
    Node.js의 내부 구성은 이러한 요소들이 함께 작동하여 비동기 및 이벤트 기반의 런타임 환경을 제공합니다.

출처
https://medium.com/@vdongbin/node-js-%EB%8F%99%EC%9E%91%EC%9B%90%EB%A6%AC-single-thread-event-driven-non-blocking-i-o-event-loop-ce97e58a8e21
https://coding-lks.tistory.com/174
https://medium.com/@gemma.croad/understanding-the-javascript-runtime-environment-4dd8f52f6fca

post-custom-banner

0개의 댓글