Promise란?
Promise는 자바스크립트에서 비동기 처리를 위한 객체로, 비동기 작업의 결과를 처리할 수 있는 대기 중(pending), 이행됨(fulfilled), 거부됨(rejected)의 상태를 가집니다. Promise는 then(),catch() 메서드를 사용하여 이행됨 상태와 거부됨 상태에 대한 처리를 지정할 수 있습니다.
Promise의 특징은 다음과 같습니다.
- 비동기 작업의 결과를 처리할 수 있습니다.
- 이행됨 상태와 거부됨 상태에 대한 처리를 지정할 수 있습니다.
- Promise 체인을 사용하여 여러 개의 비동기 작업을 순차적으로 처리할 수 있습니다.
- 콜백 지옥(callback hell)를 방지할 수 있습니다.
Promise는 서버와의 통신, 파일 업로드/다운로드, 데이터베이스 조회 등의 비동기 작업에서 자주 사용됩니다.
Async/Await이란?
async/await는 Promise를 기반으로 한 기술로, 비동기적인 코드를 작성하기 쉽도록 만들어졌습니다. async 함수는 Promise를 반환하며, await 키워드는 Promise가 이행될 때까지 함수의 실행을 일시 중지합니다. 이 때, await 키워드를 사용하는 함수는 반드시 async 함수 내부에서 호출되어야 합니다.
async/await의 특징은 다음과 같습니다.
- Promise를 사용하여 비동기 작업을 처리합니다.
- 코드가 동기적으로 작성될 수 있어 가독성이 좋습니다.
- try-catch 구문을 사용하여 에러 처리가 가능합니다.
- Promise 체인을 사용하여 여러 개의 비동기 작업을 순차적으로 처리할 수 있습니다.
- async/await는 Promise를 더 쉽게 사용할 수 있도록 만들어졌습니다.
async/await는 Promise와 마찬가지로 서버와의 통신, 파일 업로드/다운로드, 데이터베이스 조회 등의 비동기 작업에서 자주 사용됩니다.