- Node.js 소개
- 서버에서 실행가능한 자바스크립트 런타임 환경
- 논블로킹 / 비동기 방식
- Node.js는 서버에서 어떻게 자바스크립트를 실행할까?
- 구성요소
- V8엔진
- C++로 만든 오픈소스 자바스크립트 실행엔진
- 파서, 컴파일러, 인터프리터, 가비지콜렉터, 콜 스택, 힙 등으로 구성
- 인터프리터 역할을 하는 이그니션과 컴파일러 역할을 하는 터보팬을 사용해 컴파일 - JIT(Just In Time)컴파일러
- libuv
- 이벤트 루프, 스레드 풀 등 사용
- 아키텍처
- 구성요소
- 기술 특징
- 싱글스레드
- 콜스택 1개
- 이벤트 기반 아키텍처
- 루프를 실행하면서 운영체제/스레드 워커에서 I/O 처리
- 이벤트 루프
- 여러 개의 FIFO 큐
- 싱글스레드
- 장단점
- 장점
- 비동기 이벤트 기반이라 동시에 여러 요청 처리 가능
- 단점
- CPU 사용이 많은 작업의 경우 부적합
- 멀티코어 사용안됨
- 장점
- Node.js 연습
- k6로 성능 테스트