1. Promise 개요
Promise란 용어 그대로 약속이라는 의미를 가짐
누군가와 약속을 한 시점에는 약속이 지켜졌는지, 지키지 못했는지 알 수 없음
이러한 약속은 미래 어느 시점에 이행될 수도 있고(Fulfilled), 실패할 수도 있음(Rejected)
1. Promise in 프로그래밍
프로그래밍에서 Promise란 어떤 프로그램이 실행되는 흐름에서 수행해야할 어떤 작업의 처리 결과(성공/실패)에 대한 결과값이 담길 객체로,
해당 작업을 시작하는 시점에서는 아직 처리가 성공했는지, 실패했는지에 대해 알 수 없음
이러한 처리 결과는 미래의 어느 시점에 성공/실패 중 하나의 형태로 응답받게 됨
정리하면, Promise란 약속이 생성되는 당시에는 아직 알 수 없는 값(Pending)을 가진 Proxy 객체로, 처음에는 비어있는 값을 가지고 있음
자바에서는 Future 와 비슷
2. Promise in 자바스크립트
자바스크립트에서 Promise는 주로 외부 API를 활용하는 비동기 처리 작업에 사용됨
Promise를 통해 비동기 처리 작업에 대한 응답 성공 결과 값 또는 응답 실패 이유 메시지를 받을 수 있고, 이에 따라 적절한 처리를 수행할 콜백 핸들러와 연결하여 코드를 작성할 수 있음
2-1. Promise가 필요한 이유
비동기 로직은 여러 방식(패턴)으로 작성하여 처리할 수 있음
- 콜백 패턴
- Promise 패턴
Promise는 콜백 패턴과 비교했을 때 후속 처리 및 에러 처리 측면에서 전보다 더 간단하게 비동기 코드를 작성할 수 있게 도와줌
→ 가독성 향상
왜 Promise 객체?
- 비동기 작업이라는 관심사를 하나의 값의 형태로 담아 관리하기 위해 객체 형태로 래핑
- Promise는 “아직 존재하지 않는 미래의 값(성공/실패)을 나타내는 객체”
- Promise 객체는 생성되고, 즉시 반환됨(Pending)
→ 다음 코드 라인으로 실행 흐름을 이어나갈 수 있음- 반환된 값은 이후 .then() 등을 통해 실제 값을 받아서 처리할 수 있음
- 이를 통해 합성, 체이닝, 에러 전달이 가능해짐
Last updated on