핵심 답변
📌 Promise는 비동기 연산의 결과를 나타내는 객체로,
.then(), .catch(), .finally() 체인을 사용합니다.📌 async/await는 Promise를 기반으로 하되, 비동기 코드를 동기처럼 작성할 수 있게 해주는 문법적 설탕(Syntactic Sugar)입니다.
Promise: 체인이 길어질수록 콜백 중첩 구조가 생길 수 있음
async/await: try/catch로 에러 처리, 가독성이 좋음
둘 다 비동기 처리 방식이며 async/await는 내부적으로 Promise를 사용
예시 코드
javascript
// Promise 방식
function fetchUser() {
return fetch('/api/user')
.then(res => res.json())
.catch(err => console.error(err));
}
// async/await 방식
async function fetchUser() {
try {
const res = await fetch('/api/user');
return await res.json();
} catch (err) {
console.error(err);
}
}핵심 용어
📌 Promise비동기 작업의 완료 또는 실패를 나타내는 객체입니다. pending(대기), fulfilled(이행), rejected(거부) 세 가지 상태를 가집니다.
📌 async/awaitasync 함수는 항상 Promise를 반환하며, await는 Promise가 처리될 때까지 함수 실행을 일시 정지합니다.
📌 문법적 설탕(Syntactic Sugar)기존 기능을 더 읽기 쉽게 표현하는 문법입니다. async/await는 Promise 체인을 동기 코드처럼 보이게 합니다.