상위 질문
타임라인
채팅
관점

퓨처와 프로미스

동시 프로그래밍에서, 계산이 완료되지 않아 처음에는 알 수 없는 결과를 대신하는 객체를 지칭합니다(이러한 객체는 진행 중이거나 아직 시작되지 않은 계산의 최종 결과를 나타내는 데 중요 위키백과, 무료 백과사전

Remove ads

컴퓨터 과학에서 퓨처(future), 프로미스(promise), 딜레이(delay), 디퍼드(deferred)는 일부 병행 프로그래밍 언어에서 프로그램 실행을 동기화하려고 쓰는 구조체다. 프록시 역할을 하는 객체로 설명되며 값의 연산이 아직 이루어지지 않은 상태이므로 결과는 미리 알 수 없다.

프로미스(promise)라는 용어는 1976년 대니얼 P. 프리드먼과 데이비드 와이즈가 제안하였으며,[1] 피터 히버드는 eventual로 명명하였다.[2] 일부 비슷한 개념인 퓨처(future)는 1977년 헨리 베이커칼 히위트의 논문에 등장하였다.[3]

퓨처, 프로미스, 딜레이, 디퍼드라는 용어는 종종 번갈아 사용되지만 퓨처와 프로미스 사이에는 이용 면에서 일부 차이가 있다. 퓨처는 변수의 읽기 전용 플레이스홀더인 반면 프로미스는 미래의 값을 저장하는, 쓰기가 가능한 단일 할당 컨테이너이다.[4] 퓨처는 어느 특정 프로미스가 값을 설정할지를 지정하지 않고 정의할 수 있으며 각기 다른 잠재적인 프로미스들이 주어진 퓨처의 값을 설정할 수 있지만 주어진 퓨처에 대해 오직 한 번만 수행이 가능하다. 그 밖의 경우 퓨처와 프로미스는 함께 만들어지며 서로 연결된다. 즉, 퓨처는 값이고 프로미스는 값을 설정하는 함수, 특히 비동기 함수(프로미스)의 반환값(퓨처)을 의미한다. 퓨처의 값을 설정하는 것은 바인딩(binding), 풀필링(fulfilling), 리졸빙(resolving)으로 부른다.

Remove ads

구현체 목록

요약
관점

일부 프로그래밍 언어들은 퓨처, 프로미스, 병행 논리 변수, 데이터플로 변수, l-var을 지원하며 이는 직접 언어 지원을 통해서나 표준 라이브러리를 통해 제공된다.

프로그래밍 언어에 따른 퓨처와 프로미스 관련 개념 목록

프로미스 파이프라이닝을 지원하는 언어:

  • E

비표준 라이브러리 기반 퓨처 구현체 목록

Remove ads

같이 보기

각주

외부 링크

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads