← 목록

JavaScript Promises의 기본 원리와 활용법

작성: 2025년 11월 01일읽기: 약 3분

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의 장점

Promises는 JavaScript에서 비동기 작업을 다루는 강력한 방법입니다. 이를 통해 코드의 가독성을 높이고, 오류 처리를 간편하게 할 수 있으며, 비동기 작업을 효율적으로 관리할 수 있습니다. Promises에 익숙해지면, JavaScript로 더욱 풍부하고 복잡한 웹 애플리케이션을 만들 수 있게 될 것입니다.