[javascript] 비동기 코드에서의 오류 처리 방법

비동기 코드는 주로 사용자 인터페이스 응답성을 향상시키거나 네트워크 요청을 처리할 때 사용됩니다. 하지만 비동기 코드는 오류 처리가 중요한데요, 이번에는 JavaScript를 사용한 비동기 코드에서의 오류 처리 방법에 대해 알아보겠습니다.

1. 콜백 함수를 활용한 오류 처리

일반적으로 콜백 함수는 비동기 작업이 완료되었을 때 호출됩니다. 오류 파라미터를 첫 번째 인자로 받는 콜백 함수는 다음과 같이 작성할 수 있습니다.

function fetchData(callback) {
  // 비동기 작업 수행
  if (error) {
    callback(new Error('데이터를 불러오는데 오류 발생'));
  } else {
    callback(null, data);
  }
}

fetchData((err, result) => {
  if (err) {
    console.error(err);
  } else {
    console.log(result);
  }
});

2. Promise 객체를 활용한 오류 처리

Promise는 콜백 지옥을 피하기 위해 도입되었으며, 오류 처리를 간편하게 해줍니다. 다음은 Promise를 사용한 비동기 코드에서의 오류 처리 방법입니다.

function fetchData() {
  return new Promise((resolve, reject) => {
    // 비동기 작업 수행
    if (error) {
      reject(new Error('데이터를 불러오는데 오류 발생'));
    } else {
      resolve(data);
    }
  });
}

fetchData()
  .then(result => {
    console.log(result);
  })
  .catch(err => {
    console.error(err);
  });

3. async/await를 활용한 오류 처리

ES2017에서 도입된 async/await는 Promise를 더 쉽게 다룰 수 있게 해주며, 코드를 더 읽기 쉽게 만들어 줍니다. 아래는 async/await를 사용한 비동기 코드에서의 오류 처리 방법입니다.

async function fetchData() {
  // 비동기 작업 수행
  if (error) {
    throw new Error('데이터를 불러오는데 오류 발생');
  } else {
    return data;
  }
}

(async () => {
  try {
    const result = await fetchData();
    console.log(result);
  } catch (err) {
    console.error(err);
  }
})();

결론

JavaScript를 사용한 비동기 코드에서의 오류 처리 방법으로는 콜백 함수, Promise, 그리고 async/await를 활용하는 방법이 있습니다. 각 방법마다 장단점이 있으니 상황에 맞게 적절히 선택하여 사용하면 됩니다.

이상으로 JavaScript를 사용한 비동기 코드에서의 오류 처리 방법에 대해 알아보았습니다.