한 줄 요약 V8? Javascript 코드를 Ignition이라는 인터프리터와 Turbofan이라는 컴파일러를 통해 JIT 컴파일을 수행하는 Javascript 오픈소스 엔진이다. V8이란? 구글이 개발한 Javascript 엔진이다. C++로 작성되었고, Nodejs, 크로미움 웹 브라우저 등을 지원한다. JIT(Just In Time) 컴파일러로, 프로그램을 실행하기 위한 바이트 코드를 생성한다. Ignition 인터프리터와, Turbofan 컴파일러를 사용한다. V8의 구조 및 Javscript 코드의 컴파일 순서 nodejs로 예를 들자면, 자바스크립트 코드는 아래 그림과 같은 절차로 컴파일 된다. 1. Parsing : 아래와 같이 JS 코드를 파싱하고(구문 분석) AST로 바꾼다. const..
한 문장 요약 libuv란 javascript 엔진(싱글 스레드)을 사용하는 nodejs에서 비동기 I/O를 가능하도록 해주는 C언어 기반 라이브러리 이다. Libuv 란? nodejs를 구성하는 여러 라이브러리 중 하나입니다. javascript를 사용하는 node 특성 상 어쩔 수 없이 싱글 스레드 기반인데, 비동기 I/O를 처리하기 위해서 libuv를 채택하여 사용하고 있습니다. (libuv of nodejs official repository) Libuv의 특징 공식 문서에 따르면 다음과 같은 특징이 있습니다. epoll, kqueue, IOCP, 이벤트 포트가 지원하는 모든 기능을 갖춘 이벤트 루프. 비동기 TCP 및 UDP 소켓 비동기 DNS 확인 비동기 파일 및 파일 시스템 작업 파일 시스템..