[javascript] 자바스크립트에서 Promise를 이용한 비동기 프로그래밍
자바스크립트는 비동기 프로그래밍에 적합한 언어로, 웹 애플리케이션에서는 서버 요청, 파일 읽기/쓰기, 사용자 입력 처리 등의 작업을 비동기적으로 수행해야 합니다.
비동기 프로그래밍시 처리 로직의 복잡도를 낮추는데 유용한 Promise는 ES6부터 기본적으로 내장되어 있습니다.
Promise란 무엇인가?
Promise는 비동기 작업의 결과를 나타내는 객체로, 완료 또는 실패를 나타내는 상태와 그 결과 값을 제공합니다. Promise는 3가지 상태를 가질 수 있으며, 이는 다음과 같습니다.
- 대기(pending): 비동기 작업이 아직 완료되지 않은 상태
- 이행(fulfilled): 비동기 작업이 성공적으로 완료된 상태
- 거부(rejected): 비동기 작업이 실패한 상태
Promise 사용 예시
function getServerData() {
return new Promise((resolve, reject) => {
// 서버에서 데이터를 가져오는 비동기 작업
setTimeout(() => {
const serverData = { id: 1, name: 'example' };
if (serverData) {
resolve(serverData); // 성공 시 처리
} else {
reject('Failed to get data'); // 실패 시 처리
}
}, 2000);
});
}
// Promise를 사용한 비동기 작업 호출
getServerData()
.then(data => {
console.log('Data received:', data);
})
.catch(error => {
console.error('Error:', error);
});
위 예시에서는 getServerData
함수가 Promise를 반환하고, 해당 Promise는 2초 후에 서버 데이터를 반환하거나 실패할 수 있습니다. 그 후 .then
과 .catch
를 사용하여 성공 또는 실패 시의 처리를 정의합니다.
Promise를 이용하면 비동기 코드를 간결하고 가독성 있게 작성할 수 있으며, 여러 개의 비동기 작업을 순차적이나 병렬로 처리할 수 있습니다. Promise는 자바스크립트 비동기 프로그래밍에서 필수적이며, ES8부터 도입된 async/await
와 함께 많이 사용됩니다.
참고문헌:
위의 글은 자바스크립트에서 Promise를 이용한 비동기 프로그래밍에 대한 소개입니다. Promise를 잘 활용하면 비동기 코드를 효과적으로 관리할 수 있습니다.