패스잇
백엔드 개발 · 중급

Promise와 async/await의 차이점과 각각의 사용 시나리오를 비교해주세요.

힌트 · async/await는 Promise 기반의 syntactic sugar로, 동기적인 코드처럼 작성할 수 있게 해줍니다.

Promiseasync/await가독성에러 핸들링동기적 코드

모범답안

Promise와 async/await는 둘 다 비동기 처리를 위한 JavaScript 기능입니다. Promise는 비동기 작업의 성공 또는 실패를 나타내는 객체이고, async/await는 Promise를 더 쉽게 사용할 수 있도록 해주는 문법입니다.

가장 큰 차이점은 가독성입니다. async/await를 사용하면 비동기 코드를 동기 코드처럼 순차적으로 작성할 수 있어서 훨씬 읽기 쉽고 이해하기 쉽습니다. Promise는 .then().catch()를 계속 연결해야 해서 코드가 복잡해질 수 있습니다.

에러 핸들링 측면에서도 async/await가 더 직관적입니다. try...catch 구문을 사용해서 비동기 코드에서 발생하는 에러를 쉽게 잡을 수 있습니다. Promise는 .catch()를 통해 에러를 처리해야 합니다.

사용 시나리오는 다음과 같습니다. 간단한 비동기 작업에는 Promise가 적합할 수 있지만, 복잡한 비동기 로직이나 여러 개의 Promise를 연결해야 하는 경우에는 async/await를 사용하는 것이 코드 가독성을 높이는 데 도움이 됩니다. 결국 async/await는 Promise 기반으로 동작하기 때문에, Promise를 이해하는 것이 중요합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Node.js 면접 질문

← Node.js 면접 질문 전체 보기