[nodejs] 비동기식 시간 관리
Node.js는 비동기식 이벤트 기반 아키텍처를 특징으로 하며, 이로 인해 시간 관리가 중요합니다. 이 아키텍처는 작업을 차단하지 않고 동시에 여러 작업을 처리할 수 있도록 합니다.
setTimeout과 setInterval
Node.js에서 시간을 다루는 가장 기본적인 기능으로는 setTimeout
과 setInterval
함수가 있습니다. 이들 함수를 사용하여 비동기식으로 코드를 실행하거나 반복적인 작업을 수행할 수 있습니다.
setTimeout(() => {
console.log('이 코드는 1초 후에 실행됩니다.');
}, 1000);
setInterval(() => {
console.log('이 코드는 1초마다 실행됩니다.');
}, 1000);
콜백 함수와 이벤트
비동기식 시간 관리는 주로 콜백 함수나 이벤트를 통해 이루어집니다. Node.js에서는 주로 타이머나 이벤트 핸들러를 등록하여 비동기적으로 시간을 관리합니다.
const EventEmitter = require('events');
const eventEmitter = new EventEmitter();
eventEmitter.on('start', () => {
console.log('시작 이벤트가 발생했습니다.');
});
setTimeout(() => {
eventEmitter.emit('start');
}, 1000);
Promise와 async/await
ES6부터 도입된 Promise와 async/await는 비동기식 시간 관리를 보다 효율적으로 처리하는 데 도움을 줍니다. Promise는 비동기 작업의 결과를 다루는 데 유용하고, async/await는 Promise 기반의 코드를 더 읽기 쉽고 유지보수하기 쉽도록 만들어줍니다.
function wait(ms) {
return new Promise(resolve => {
setTimeout(resolve, ms);
});
}
async function delayedFunction() {
await wait(1000);
console.log('이 코드는 1초 후에 실행됩니다.');
}
delayedFunction();
Node.js에서는 이러한 다양한 방법을 통해 비동기식 시간 관리를 수행할 수 있습니다. 이러한 기능들을 적절하게 활용하여 효율적이고 안정적인 애플리케이션을 개발할 수 있습니다.
참고 문헌: