본 포스트에서는 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를 반환하고 있으며, 데이터를 가져오는 과정에서 성공 혹은 실패에 따라 resolve
와 reject
를 호출하여 Promise의 상태를 변경하고 있습니다.
Promise를 사용함으로써 비동기 작업을 보다 구조적으로 다루고, 코드의 가독성을 높일 수 있습니다.
요약
이번 포스트에서는 TypeScript에서의 비동기 프로그래밍과 Promise에 대해 알아보았습니다. Promise는 비동기 작업을 보다 구조적으로 처리할 수 있는 방법을 제공하며, TypeScript에서 많이 활용되고 있습니다.
내용에 대한 보다 더 자세한 학습을 위해 다음 자료를 참고하시기를 권장드립니다.
- TypeScript 공식 문서: TypeScript 공식 문서
- MDN web docs: MDN web docs - Promise