[typescript] 함수와 메서드를 사용하여 비동기 작업 처리하기

TypeScript를 사용하여 비동기 작업을 처리하는 방법은 여러 가지가 있습니다. 이 글에서는 JavaScript 및 TypeScript 모두에서 사용할 수 있는 다양한 방법들을 살펴보겠습니다. 우선 비동기 작업의 처리 방법에 대한 이해부터 시작해보죠.

비동기 작업 처리 방법

비동기 작업은 특정 작업이 완료되기를 기다리지 않고 다른 작업을 동시에 실행할 수 있는 것을 의미합니다. 일반적으로 파일 읽기/쓰기, 네트워크 통신, 데이터베이스 액세스 등이 비동기 작업으로 처리됩니다.

JavaScript와 TypeScript에서 비동기 작업을 처리하는 주요 방법은 다음과 같습니다:

이제 각 방법에 대해 자세히 알아보겠습니다.

콜백 함수

콜백 함수는 가장 기본적인 비동기 처리 방법으로, 작업이 완료되면 호출되는 함수를 지정하는 방식입니다. 예를 들어, setTimeout 함수를 사용한 비동기 작업을 살펴보겠습니다.

setTimeout(() => {
  console.log("작업 완료");
}, 1000);

Promise

Promise는 ES6부터 도입된 객체로, 비동기 작업의 상태를 관리하고 처리하는 패턴입니다. Promise를 사용하면 작업이 성공 또는 실패했을 때, 각각 다른 함수를 실행할 수 있습니다.

function fetchData(): Promise<string> {
  return new Promise((resolve, reject) => {
    // 비동기 작업 수행
    if (작업완료) {
      resolve("데이터");
    } else {
      reject("에러 발생");
    }
  });
}

fetchData()
  .then((data) => {
    console.log(data);
  })
  .catch((error) => {
    console.error(error);
  });

Async/Await

Async/Await는 ES2017에서 도입된 문법으로, Promise를 보다 간결하고 가독성 있게 사용할 수 있도록 해줍니다. async 함수 내에서 await 키워드를 사용하여 Promise가 처리될 때까지 기다릴 수 있습니다.

async function fetchData() {
  try {
    const data = await fetch("https://api.example.com/data");
    console.log(data);
  } catch (error) {
    console.error(error);
  }
}

fetchData();

결론

JavaScript 및 TypeScript에서 비동기 작업을 처리하는 과정을 살펴보았습니다. 각 방법마다 장단점이 있으니, 원하는 상황에 맞게 적합한 방법을 선택하여 사용하면 됩니다.