JavaScript Promises의 기본 원리와 활용법
JavaScript를 배우는 여러분, 비동기 작업이란 무엇인지 궁금해하신 적 있나요? 예를 들어, 웹사이트에서 데이터를 불러오거나, 사용자가 어떤 동작을 할 때까지 기다리는 것들 말이죠. 이런 작업들을 우리는 '비동기적(asynchronous)'이라고 부릅니다. 그리고 이 비동기 작업을 편리하게 다루기 위해 JavaScript에서는 'Promises'를 제공합니다.
Promises란 무엇인가?
간단히 말해서, Promise는 비동기 작업의 최종 완료(또는 실패)와 그 결과값을 나타냅니다. 즉, 어떤 작업이 나중에 완료될 것이라는 '약속'을 나타내며, 그 결과가 성공일 수도 있고, 실패일 수도 있습니다.
Promises의 기본 사용법
Promise를 사용하는 기본적인 형태는 다음과 같습니다:
let myPromise = new Promise(function(myResolve, myReject) {
// 비동기 작업을 수행합니다.
// 성공하면, myResolve를 호출합니다.
// 실패하면, myReject를 호출합니다.
});
myPromise.then(
function(value) { /* 작업 성공 시 수행할 동작 */ },
function(error) { /* 작업 실패 시 수행할 동작 */ }
);
예제: 데이터 불러오기
웹 개발을 하다 보면, 서버에서 데이터를 불러와야 할 때가 많습니다. Promises를 사용하면 이런 비동기 작업을 간결하게 처리할 수 있습니다. 예를 들어, 간단한 데이터를 불러오는 예제를 살펴봅시다.
function fetchData() {
return new Promise((resolve, reject) => {
fetch('https://some-api.com/data')
.then(response => response.json())
.then(data => resolve(data))
.catch(error => reject(error));
});
}
fetchData().then(
data => console.log(data),
error => console.error(error)
);
이 코드는 웹 API에서 데이터를 불러오고, 성공적으로 불러왔다면 데이터를 출력하고, 실패했다면 오류를 출력합니다.
Promises의 장점
- 코드의 가독성: Callback 함수를 사용하는 대신, Promises를 사용하면 코드가 훨씬 읽기 쉽고 이해하기 쉬워집니다.
- 오류 처리:
.catch()를 사용하여 오류를 쉽게 처리할 수 있습니다. - 체이닝: 여러 비동기 작업을 순차적으로 처리할 때
.then()을 연결하여 사용할 수 있습니다.
Promises는 JavaScript에서 비동기 작업을 다루는 강력한 방법입니다. 이를 통해 코드의 가독성을 높이고, 오류 처리를 간편하게 할 수 있으며, 비동기 작업을 효율적으로 관리할 수 있습니다. Promises에 익숙해지면, JavaScript로 더욱 풍부하고 복잡한 웹 애플리케이션을 만들 수 있게 될 것입니다.