← 목록

비동기 프로그래밍의 기초: Promise와 Async/Await

작성: 2024년 09월 02일읽기: 약 2분

비동기 프로그래밍은 웹 개발에서 매우 중요한 부분입니다. 이를 통해 우리는 웹 애플리케이션을 더 빠르고 효율적으로 만들 수 있습니다. 오늘은 비동기 프로그래밍의 두 가지 기본 개념인 Promise와 Async/Await에 대해 알아보겠습니다.

Promise

Promise는 미래에 완료될 작업의 결과를 나타냅니다. 이는 작업이 성공적으로 완료되었을 때 결과를 반환하거나, 실패했을 때 오류를 반환합니다. Promise는 세 가지 상태를 가집니다: 대기(pending), 이행(fulfilled), 거부(rejected).

Promise 예제

let myPromise = new Promise(function(myResolve, myReject) {
  // "Producing Code" (May take some time)

  myResolve(); // when successful
  myReject();  // when error
});

// "Consuming Code" (Must wait for a fulfilled Promise)
myPromise.then(
  function(value) { /* code if successful */ },
  function(error) { /* code if some error */ }
);

Async/Await

Async/Await는 Promise를 더 쉽게 사용할 수 있게 해주는 문법입니다. async로 함수를 선언하면, 해당 함수는 자동으로 Promise를 반환합니다. await는 async 함수 내에서만 사용할 수 있으며, Promise가 완료될 때까지 함수의 실행을 일시 중지합니다.

Async/Await 예제

async function myFunction() {
  let value = await promise; // wait until the promise resolves (*)
  console.log(value);
}

myFunction();

이 코드에서 await promise는 Promise가 이행될 때까지 기다립니다. Promise가 이행되면 그 결과 값이 value에 할당되고, 함수의 나머지 부분이 실행됩니다.

결론

비동기 프로그래밍은 웹 개발에서 매우 중요한 부분입니다. Promise와 Async/Await는 JavaScript에서 비동기 작업을 처리하는 데 사용되는 주요 개념입니다. 이러한 개념을 이해하고 사용하는 것은 웹 개발자로서의 능력을 향상시키는 데 큰 도움이 됩니다.