TypeScript를 사용하여 비동기 작업을 처리하는 방법은 여러 가지가 있습니다. 이 글에서는 JavaScript 및 TypeScript 모두에서 사용할 수 있는 다양한 방법들을 살펴보겠습니다. 우선 비동기 작업의 처리 방법에 대한 이해부터 시작해보죠.
비동기 작업 처리 방법
비동기 작업은 특정 작업이 완료되기를 기다리지 않고 다른 작업을 동시에 실행할 수 있는 것을 의미합니다. 일반적으로 파일 읽기/쓰기, 네트워크 통신, 데이터베이스 액세스 등이 비동기 작업으로 처리됩니다.
JavaScript와 TypeScript에서 비동기 작업을 처리하는 주요 방법은 다음과 같습니다:
- 콜백 함수
- Promise
- Async/Await
이제 각 방법에 대해 자세히 알아보겠습니다.
콜백 함수
콜백 함수는 가장 기본적인 비동기 처리 방법으로, 작업이 완료되면 호출되는 함수를 지정하는 방식입니다. 예를 들어, 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에서 비동기 작업을 처리하는 과정을 살펴보았습니다. 각 방법마다 장단점이 있으니, 원하는 상황에 맞게 적합한 방법을 선택하여 사용하면 됩니다.