본문 바로가기
프로그래밍/JavaScript

JavaScript Promise, Async/Await 비동기 프로그래밍 마스터하기

by 꾸션 2023. 5. 18.

자바스크립트는 단일 스레드 프로그래밍 언어입니다. 이것은 자바스크립트가 한 번에 하나의 작업만 수행할 수 있음을 의미합니다. 하지만 웹 브라우저에서 동작하는 자바스크립트는 API 호출, 이미지 로딩, 사용자 이벤트 등 비동기 처리가 필수입니다. 이를 가능하게 하는 방법 중 하나가 바로 Promise와 Async/Await입니다.

 

Promise

Promise는 자바스크립트에서 비동기 연산을 표현하는 객체입니다. Promise는 세 가지 상태를 가집니다: 대기(pending), 이행(fulfilled), 거부(rejected).

let promise = new Promise(function(resolve, reject) {
  // 비동기 작업을 수행하고,
  // 작업이 성공하면 resolve 호출
  // 실패하면 reject 호출
});

then 메서드를 이용해 Promise의 결과를 처리할 수 있습니다. 첫 번째 인자는 Promise가 성공적으로 이행된 경우를, 두 번째 인자는 거부된 경우를 처리합니다.

promise
.then(function(result) {
  // 이행된 경우 실행
}, function(error) {
  // 거부된 경우 실행
});

 

Async/Await

Async/Await는 ES7에서 도입된, Promise를 더 쉽게 사용할 수 있는 문법입니다. 함수 앞에 async 키워드를 사용하면 해당 함수는 항상 Promise를 반환합니다. 또한, async 함수 내부에서 await 키워드를 사용하면 Promise가 이행될 때까지 함수의 실행을 일시적으로 중단하고, 이행될 때 결과를 반환합니다.

async function foo() {
  try {
    let result = await someAsyncOperation();
    console.log(result);
  } catch (error) {
    console.error(error);
  }
}

Async/Await는 비동기 코드를 동기식으로 작성할 수 있게 해서 코드의 가독성을 크게 향상시킵니다.

 

마치며

비동기 프로그래밍은 자바스크립트의 핵심 부분입니다. Promise와 Async/Await를 이해하고 활용하면 복잡한 비동기 로직도 쉽게 관리할 수 있습니다. 이를 통해 더 효율적인 코드를 작성할 수 있을 것입니다.

반응형

댓글