async/await를 활용한 JavaScript 비동기 프로그래밍
비동기 프로그래밍은 웹 개발에서 중요한 부분입니다. JavaScript에서 async
와 await
는 이를 더 쉽게 만들어줍니다. 이 글에서는 이 두 키워드를 사용하여 비동기 코드를 어떻게 간단하고 읽기 쉽게 만들 수 있는지 알아보겠습니다.
async와 await란 무엇인가?
async
와 await
는 JavaScript에서 비동기 작업을 다루는 현대적인 방식입니다. async
함수는 항상 프로미스(Promise)를 반환하며, await
키워드는 프로미스가 완료될 때까지 함수의 실행을 일시적으로 멈춥니다.
기본 사용법
async
함수 안에서 await
를 사용하는 기본적인 형태를 살펴봅시다.
async function fetchData() {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
}
fetchData();
위 코드에서 fetchData
함수는 async
로 선언되었습니다. 이는 함수 내부에서 await
를 사용할 수 있음을 의미합니다. fetch
함수는 네트워크 요청을 비동기적으로 처리하고, await
는 그 요청의 결과가 나올 때까지 기다립니다. 그 후, 응답을 JSON 형태로 변환하고, 최종 데이터를 콘솔에 출력합니다.
에러 처리
비동기 함수에서 에러를 처리하는 방법은 try...catch
구문을 사용하는 것입니다.
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error('데이터를 불러오는 중 에러가 발생했습니다:', error);
}
}
fetchData();
이 코드는 fetch
호출이 실패할 경우를 대비하여 에러 처리를 추가했습니다. try
블록 안에서 코드를 실행하다가 에러가 발생하면, catch
블록이 실행되어 에러를 처리합니다.
결론
async
와 await
를 사용하면 JavaScript에서 비동기 코드를 작성하는 것이 훨씬 간단해집니다. 복잡한 프로미스 체인 대신, 마치 동기 코드처럼 보이는 깔끔하고 읽기 쉬운 코드를 작성할 수 있습니다. 이 기능을 활용하여 더 효율적이고 관리하기 쉬운 비동기 코드를 만들어 보세요.