← 목록

async/await를 활용한 JavaScript 비동기 프로그래밍 팁

작성: 2024년 11월 06일읽기: 약 2분

비동기 프로그래밍은 웹 개발에서 중요한 부분입니다. JavaScript에서 asyncawait를 사용하면 복잡한 비동기 코드를 쉽고 깔끔하게 작성할 수 있습니다. 이 글에서는 asyncawait를 이용하여 비동기 프로그래밍을 더 쉽게 다루는 몇 가지 팁을 공유하려고 합니다.

기본 사용법

먼저, async 함수는 항상 Promise를 반환합니다. await 키워드는 async 함수 내에서만 사용할 수 있으며, Promise가 완료될 때까지 기다립니다.

async function fetchData() {
  let data = await fetch('https://api.example.com/data');
  let jsonData = await data.json();
  console.log(jsonData);
}
fetchData();

이 코드는 웹 API로부터 데이터를 가져와서 콘솔에 출력합니다. fetch 함수는 Promise를 반환하며, await를 사용하여 Promise가 완료될 때까지 기다립니다.

에러 처리

비동기 함수에서 에러를 처리할 때는 try...catch 구문을 사용할 수 있습니다.

async function fetchData() {
  try {
    let data = await fetch('https://api.example.com/data');
    let jsonData = await data.json();
    console.log(jsonData);
  } catch (error) {
    console.error('데이터를 불러오는 중 에러가 발생했습니다:', error);
  }
}
fetchData();

이 방법을 사용하면 비동기 작업 중 발생할 수 있는 예외를 적절히 처리할 수 있습니다.

동시성

여러 비동기 작업을 동시에 실행하려면 Promise.all을 사용할 수 있습니다. 이는 모든 작업이 완료될 때까지 기다립니다.

async function fetchMultipleData() {
  let urls = ['https://api.example.com/data1', 'https://api.example.com/data2'];
  
  let promises = urls.map(url => fetch(url));
  let results = await Promise.all(promises);
  
  let data = await Promise.all(results.map(result => result.json()));
  console.log(data);
}
fetchMultipleData();

이 코드는 여러 URL에서 데이터를 동시에 가져옵니다. Promise.all을 사용하면 모든 fetch 호출이 완료될 때까지 기다린 후, 모든 응답을 JSON으로 변환합니다.

결론

asyncawait를 사용하면 JavaScript에서 비동기 코드를 훨씬 쉽게 작성하고 관리할 수 있습니다. 에러 처리와 동시성 관리도 간단해집니다. 이러한 팁을 활용하여 더 깔끔하고 효율적인 비동기 코드를 작성해 보세요.