개발자

JS promise 이름은 왜 promise인가요?

2022년 11월 02일조회 362

안녕하세요~ 자바스크립트의 promise는 왜 promise라는 이름이 지어진건가요?? 구글링해도 잘 못찾겠네요.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

손정현님의 프로필 사진

안녕하세요! promise라는 개념을 언급한 논문이 있는데요. https://heather.miller.am/teaching/cs7680/pdfs/liskov1988.pdf 저자가 해당 단어를 사용한 이유는 명확히 나오지는 않지만, 이 qna (https://discuss.codecademy.com/t/why-is-it-called-a-promise/407009)의 답처럼 실행 결과를 항상 되돌려 받을 것을 보장한다는 의미에서 promise라는 단어를 사용하지 않았나 싶습니다. 자바스크립트에서의 Promise는 위 논문에서 언급된 개념을 좀더 발전해서 구현한 구현체다보니 이름을 그대로 사용하지 않았나 싶네요. - https://medium.com/javascript-scene/master-the-javascript-interview-what-is-a-promise-27fc71e77261

profile picture

익명

작성자

2022년 11월 02일

우왓 너무 감사합니다!!

김대현님의 프로필 사진

그렇게 깊이 생각해본 적 없는 뇌피셜입니다만, 전 그냥 단순하게 직역해서 "약속"이라고 이해했습니다. "네가 요청한 걸 해줄게"라는 약속인 건데, 이게 언제될지, 정말 꼭 지켜질지 모르는 상태인 거죠. 약속이 안 지켜질 수도 있다는 점에서 실패할 수도 있는 것과 마찬가지고요. 약속 자체는, 약속의 실행 결과물이 아니라는 점도 비슷합니다. 내가 너에게 500원을 갚을게라는 약속은 500원이 아닙니다. 약속이 이행됐을 때, 500원이 있거나 없거나 하겠죠. 당장 이뤄지지 않을 일이나 오래 걸리는 일도, 약속 자체는 미리 받을 수가 있습니다. 다음 달까지 500원 갚는다고 약속했다고 할 때, 500원은 아직 없지만, 약속을 믿고 어느 정도 나름의 경제 활동(?)을 지금 당장부터 다음 달까지 계획하고 진행할 수 있겠습니다. 500원이 없는 상태에서도 말이죠! 자바스크립트 환경에서는, 비동기 처리를 Promise로 감싸서 처리하는 걸로 알고 있는데요, 어떤 행위를 요청해서 약속을 받아내고, 그 결과를 어떻게할지, Promise를 통해서 처리하는 식이죠. 약속만 미리 받아 놓고, 그 약속이 (나중에) 이행되고 나면 뭘할지 선제 대응해둘 수 있겠습니다. 다른 언어 환경에서는 Future/Promise라고 쓰는 경우도 있는데, 제한적 역할이나 이름만 다를 뿐, 사용하는 취지는 비슷한 것 같습니다. 이번에도 꽤 추상적인 답변인 것 같은데요, 구체적인 정보는 앞서 손정현님이 남겨주신 좋은 내용 참고하시면 좋을 것 같습니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!