인프런 커뮤니티 질문&답변

Rain D님의 프로필 이미지
Rain D

작성한 질문수

김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성

Future4 - 이유

future 가 자바스크립트의 promise 랑 비슷한 역할을 하는거라고 생각해도 될까용 ??

작성

·

21

0

JS 의 Promise 랑 개념이 비슷한거 같아서요 !!

 

MDN 설명

Promise 는 프로미스가 생성된 시점에는 알려지지 않았을 수도 있는 값을 위한 대리자로, 비동기 연산이 종료된 이후에 결과 값과 실패 사유를 처리하기 위한 처리기를 연결할 수 있습니다. 프로미스를 사용하면 비동기 메서드에서 마치 동기 메서드처럼 값을 반환할 수 있습니다. 다만 최종 결과를 반환하는 것이 아니고, 미래의 어떤 시점에 결과를 제공하겠다는 '프로미스(promise)'를 반환합니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. Rain D님.

자바의 Future와 자바스크립트의 Promise는 둘 다 비동기 작업에서 결과를 처리하기 위한 기법입니다. 둘 다 비동기 연산의 완료 후, 결과를 얻거나 에러를 처리합니다. 그러나 각각의 플랫폼과 동작 방식에 약간의 차이가 있습니다.

  • Java의 Future: 자바의 Future는 비동기 작업의 결과를 가져오는 인터페이스로, 특정한 작업이 완료될 때까지 기다려야 할 때 유용합니다. future.get()을 사용하면 비동기 작업의 종료를 기다리며 결과를 반환합니다. 기본적으로 Future는 블로킹 방식이므로, get()을 호출한 스레드는 결과가 준비될 때까지 대기합니다.

  • JavaScript의 Promise: 자바스크립트의 Promise는 비동기 작업을 처리하기 위한 좀 더 진보된 구조로, 콜백 지옥 문제를 해결하기 위해 설계되었습니다. 비동기 작업이 완료된 후 then, catch, finally 메서드를 사용하여 결과를 처리합니다. Promise는 비블로킹 방식으로, 결과를 기다리는 동안 다른 코드가 계속 실행될 수 있습니다.

두 기술은 비동기 작업을 처리한다는 공통점이 있으나, 사용법과 동작 방식에서 차이가 있습니다. 자바에서는 동시성 프레임워크가 보다 명시적이며 구조적으로 처리되는 경향이 있습니다.

다음 관련 링크를 참고하세요:
- Future 로 받아오는 방식이 자바스크립트의 await 비동기 방식과 유사한지 궁금합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Rain D님의 프로필 이미지
Rain D

작성한 질문수

질문하기