[nodejs] 비동기식 시간 관리

Node.js는 비동기식 이벤트 기반 아키텍처를 특징으로 하며, 이로 인해 시간 관리가 중요합니다. 이 아키텍처는 작업을 차단하지 않고 동시에 여러 작업을 처리할 수 있도록 합니다.

setTimeout과 setInterval

Node.js에서 시간을 다루는 가장 기본적인 기능으로는 setTimeoutsetInterval 함수가 있습니다. 이들 함수를 사용하여 비동기식으로 코드를 실행하거나 반복적인 작업을 수행할 수 있습니다.

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에서는 이러한 다양한 방법을 통해 비동기식 시간 관리를 수행할 수 있습니다. 이러한 기능들을 적절하게 활용하여 효율적이고 안정적인 애플리케이션을 개발할 수 있습니다.

참고 문헌: