Node.js 개요 (V8 엔진과 논블로킹 I/O)
Node.js는 구글 크롬의 V8 자바스크립트 엔진을 떼어내어, 브라우저가 아닌 운영체제(Windows, Mac, 리눅스) 위에서 직접 자바스크립트를 실행할 수 있게 만든 환경(런타임)입니다.
🏃♂️ 논블로킹(Non-blocking) I/O 란?
식당에서 웨이터(서버)가 손님의 주문(DB 조회 등 오래 걸리는 작업)을 주방에 넣고 기다리는 것이 아니라, 주문만 넣고 바로 다음 손님의 주문을 받으러 가는 방식입니다. 덕분에 엄청난 수의 동시 접속자를 하나의 웨이터(싱글 스레드)로 처리할 수 있습니다.
// 브라우저 밖으로 나온 자바스크립트!
console.log("Hello, Node.js!");
// 비동기(논블로킹) 동작 예시
setTimeout(() => {
console.log("2. 서버 통신 완료 (나중에 실행됨)");
}, 1000);
console.log("1. 메인 로직 먼저 실행");