[nodejs] Promise 기반 비동기 프로그래밍

이번에는 JavaScript에서 비동기 프로그래밍을 돕는 Promise에 대해 알아보겠습니다. Promise는 비동기 작업의 결과를 다루는 객체로, 콜백 지옥과 비교해 가독성이 좋고, 에러 핸들링이 쉽다는 장점을 갖고 있습니다.

Promise란?

Promise는 JavaScript에서 비동기 처리를 위한 객체로, 비동기 작업이 완료되기 전에 프로미스화된 코드가 실행되며, 작업 완료 후에는 콜백 함수가 실행됩니다. 이를 통해 코드가 훨씬 더 읽기 쉽고 유지보수하기 쉬워집니다.

Promise 사용하기

다음은 Promise를 사용한 예제 코드입니다.

function fetchData() {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      const data = 'Some fetched data';
      if (data) {
        resolve(data);
      } else {
        reject('Error fetching data');
      }
    }, 2000);
  });
}

fetchData()
  .then(data => {
    console.log('Fetched data:', data);
  })
  .catch(error => {
    console.error('Error:', error);
  });

위 코드에서 fetchData 함수는 Promise를 반환하며, 2초 후에 데이터를 반환하거나 에러를 발생시킵니다. fetchData 함수를 호출한 후 then으로 성공 시의 동작과 catch로 실패 시의 동작을 정의할 수 있습니다.

정리

Promise를 사용하면 비동기 작업을 보다 효과적으로 다룰 수 있으며, 코드의 가독성과 유지보수성을 높일 수 있습니다. 프로미스를 사용하여 복잡한 비동기 작업을 처리하고, 더 나은 사용자 경험을 제공하세요.

더 많은 정보는 MDN web docs에서 찾아볼 수 있습니다.