본문 바로가기
면접 예상 질문

"프로미스(Promise)와 콜백(Callback)의 차이점에 대해 설명해주세요."

by 곰인간 2024. 3. 11.

promise와 callback은 둘다 비동기 작업을 처리하는 방법이다.

차이점으로는

구조와 가독성, 에러 처리, 상태 관리가 있으며,

구조와 가독성  - promise를 사용하면, 비동기 작업을 좀 더 선언적으로 표현할 수 있고, 코드의 가독성이 callback에 비해 향상된다. 반면, callback은 중첩 사용 시에 흔히 말하는 callback지옥에 빠질 수 있다.

 

에러처리 - promise는 catch() 메서드를 이용해서 에러 처리를 관리 할 수 있다. callback은 각 callback 함수마다 에러 처리 로직을 적용해야한다.

 

상태 관리 - promise는 pending, fullfiled, rejected 3가지 상태를 가지고, 이 상태들을 이용해서 비동기 작업의 결과를 명확하게 다룰 수 있다.

아, 또 하나 더 차이를 들자면, callback함수는 다른 함수에 인자로 전달되는 함수인데, 특정 작업이 완료되어야 실행된다.

그치만 promise는 .all() 메서드를 사용하여 병렬적으로 비동기 작업을 처리할 수 있다.