← 목록

JavaScript Promises를 활용한 비동기 코드 처리 🌟

작성: 2025년 02월 15일읽기: 약 2분

비동기 코드 처리는 웹 개발에서 중요한 부분입니다. JavaScript에서는 이를 위해 Promises와 Async/Await를 사용합니다. 이 글에서는 이 두 가지 방법을 쉽게 이해할 수 있도록 설명하겠습니다.

JavaScript Promises란?

Promise는 비동기 작업이 끝나고 나서 결과를 다루기 위한 대기 중인 약속과 같습니다. 이는 성공(resolve) 또는 실패(reject)의 결과를 가질 수 있습니다.

예를 들어, 웹에서 데이터를 가져오는 작업을 살펴봅시다:

let dataPromise = new Promise((resolve, reject) => {
  // 데이터를 가져오는 비동기 작업
  let dataLoaded = true; // 가정: 데이터가 성공적으로 로드되었다.
  if(dataLoaded) {
    resolve('데이터 로드 성공');
  } else {
    reject('데이터 로드 실패');
  }
});

dataPromise.then((message) => {
  console.log(message); // 성공 시 실행
}).catch((message) => {
  console.log(message); // 실패 시 실행
});

Async/Await 사용하기

asyncawait는 Promises를 더 쉽게 다루기 위해 도입되었습니다. async 함수는 항상 Promise를 반환하며, await는 Promise가 처리될 때까지 함수의 실행을 일시 중지합니다.

다음은 asyncawait를 사용한 예제입니다:

async function loadData() {
  try {
    let response = await fetch('https://api.example.com/data'); // 데이터를 가져옵니다.
    let data = await response.json(); // 응답을 JSON으로 변환합니다.
    console.log(data); // 데이터를 콘솔에 출력합니다.
  } catch (error) {
    console.error('데이터 로드 중 오류 발생:', error);
  }
}

loadData();

이 예제에서 fetch 함수는 네트워크 요청을 비동기적으로 수행하고, await는 요청의 결과가 나올 때까지 기다립니다. 만약 요청이 성공하면 데이터를 출력하고, 실패하면 오류 메시지를 출력합니다.

결론

JavaScript의 Promises와 Async/Await는 비동기 코드를 처리하는 강력한 방법입니다. 이를 통해 코드를 더 읽기 쉽고 관리하기 쉬운 형태로 만들 수 있습니다. 주니어 개발자 여러분도 이 기술들을 활용하여 멋진 웹 애플리케이션을 만들어 보세요!