[typescript] 비동기 프로그래밍과 Promise

본 포스트에서는 TypeScript에서의 비동기 프로그래밍과 Promise에 대해 알아보겠습니다.

비동기 프로그래밍

대부분의 웹 애플리케이션은 사용자와 상호작용하면서 여러 가지 작업을 동시에 처리해야 합니다. 이를 비동기적으로 처리하기 위해 JavaScript 및 TypeScript에서는 비동기 프로그래밍이 사용됩니다.

대표적인 예로, 서버에서 데이터를 가져오거나 사용자의 입력에 따라 화면을 업데이트하는 등의 작업이 비동기적으로 처리됩니다.

Promise

Promise는 JavaScript 및 TypeScript에서 비동기 작업을 보다 효율적으로 다룰 수 있도록 도와주는 객체입니다. Promise는 비동기 작업이 완료되었을 때 또는 실패했을 때의 결과를 나타내는 대표적인 방법입니다.

예를 들어, 서버에서 데이터를 가져오는 비동기 작업을 Promise로 처리하면 성공적으로 데이터를 가져왔을 때와 실패했을 때 각각 다른 로직을 수행할 수 있습니다.

function fetchData(): Promise<string> {
  return new Promise((resolve, reject) => {
    // 비동기 작업 수행
    if (/* 성공적으로 데이터를 가져왔을 때 */) {
      resolve('Data successfully fetched');
    } else {
      reject('Failed to fetch data');
    }
  });
}

// 데이터 가져오기
fetchData()
  .then((result) => {
    console.log(result); // 성공적으로 데이터를 가져왔을 때의 로직
  })
  .catch((error) => {
    console.error(error); // 데이터 가져오기에 실패했을 때의 로직
  });

위 예제에서는 fetchData 함수가 Promise를 반환하고 있으며, 데이터를 가져오는 과정에서 성공 혹은 실패에 따라 resolvereject를 호출하여 Promise의 상태를 변경하고 있습니다.

Promise를 사용함으로써 비동기 작업을 보다 구조적으로 다루고, 코드의 가독성을 높일 수 있습니다.

요약

이번 포스트에서는 TypeScript에서의 비동기 프로그래밍과 Promise에 대해 알아보았습니다. Promise는 비동기 작업을 보다 구조적으로 처리할 수 있는 방법을 제공하며, TypeScript에서 많이 활용되고 있습니다.

내용에 대한 보다 더 자세한 학습을 위해 다음 자료를 참고하시기를 권장드립니다.