Language

2장 Node.js로 백엔드 입문하기

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