NodeJS는 자바스크립트 런타임으로 V8과 libuv로 구성되어 있다. 구글에서 만든 V8 엔진은 JavaScript 코드를 컴퓨터가 이해할 수 있는 기계 코드로 변환시킨다. 하지만, 그것만으로 Node와 같은 서버 사이드 프레임워크를 만들 수 없기에 libuv가 존재한다. libuv는 오픈 소스 라이브러리로 비동기성 IO에 중점을 두고 있다. 이 계층은 Node에게 기본 컴퓨터 운영 체제와 파일 시스템, 네트워킹 접근 권한을 준다. 그 외에 libuv는 노드의 아주 중요한 두 가지 기능을 구현한다. Event Loop와 Thread Pool이다.
Event Loop는 콜백 실행이나 네트워크 IO 같은 쉬운 작업을 처리한다. Thread Pool은 파일 엑세스나 압축 같은 더 무거운 작업을 한다. libuv는 JavaScript가 아니라 C++로 사용된다. V8의 경우도 JavaScript과 함께 C++ 코드를 사용한다.
V8과 libuv에 의존하여 사용되는 http-parser, c-ares, OpenSSL, zlib를 모두가 Node 아키텍처의 구성요소이다.
'NodeJS' 카테고리의 다른 글
[NodeJS] Event Loop (0) | 2024.10.25 |
---|