Node.js 아키텍처 깊이 파기

V8 엔진과 libuv의 관계

node.js는 크게 두 부분으로 구성됩니다.

  • V8 Javascript 엔진: Javascript 코드 실행
  • libuv: 이벤트 루프, 파일 시스템, 네트워킹 등 시스템 레벨 기능
console.log('Hello World');
 
const fs = require('fs'); fs.readFile('./data.txt', (err, data) => { console.log('File read complete'); });

싱글 스레드의 진실

Node.js가 “싱글 스레드”라고 하지만, 정확히는:

  • 메인 스레드: JavaScript 코드 실행 (싱글 스레드)
  • 스레드 풀: I/O 작업 처리 (멀티 스레드)