node.jsasyncevent-loopnode
Node.js 기초 - 이벤트 루프와 비동기 처리
조회 0
Node.js는 비동기 I/O와 이벤트 기반 아키텍처로 동작하는 JavaScript 런타임입니다.
이 글에서는 Node.js의 핵심 개념인 이벤트 루프, 비동기 처리, 모듈 시스템을 정리합니다.
1. 이벤트 루프
Node.js는 단일 스레드에서 이벤트 루프를 통해 비동기 작업을 처리합니다.
console.log("1");
setTimeout(() => {
console.log("2");
}, 0);
Promise.resolve().then(() => {
console.log("3");
});
console.log("4");
// 출력: 1, 4, 3, 2
- 이벤트 루프는 콜백 큐를 순회하며 비동기 작업을 처리합니다.
2. 비동기 패턴
Callback
const fs = require("fs");
fs.readFile("file.txt", "utf8", (err, data) => {
if (err) {
console.error(err);
return;
}
console.log(data);
});
Promise
const fs = require("fs").promises;
fs.readFile("file.txt", "utf8")
.( .(data))
.( .(err));