공부 및 일상기록

[Javascript] promise와 callback비교 본문

개발/Javascript

[Javascript] promise와 callback비교

낚시하고싶어요 2023. 1. 5. 01:58

콜백함수와 프로미스의 차이점

콜백함수는 비동기 로직의 결과값을 처리하기 위해서 callback 안에서만 처리를 해야한다.

콜백 밖에서는 비동기에서 온 값을 알 수가 없다.

프로미스를 사용하면 비동기에서 온 값이 프로미스 객체에 저장되기 때문에 코드 작성이 용이해진다.


콜백함수란 무엇인가?

콜백함수는 함수를 활용하는 방법 중 하나이다.

정확하게는 콜백함수는 파라미터로 전달받은 함수를 의미한다.

파라미터로 콜백함수를 받고 함수 내부에서 필요할 때 콜백함수를 호출할 수 있다.

 

콜백함수의 장점

함수를 인자로 받기 때문에 필요에 따라 함수의 정의를 달리해 전달할 수 있다.

함수를 굳이 정의하지 않고 익명함수로 전달 가능하다.

비동기 처리방식의 문제점을 해결할 수 있다.

 

콜백함수의 단점

콜백함수를 너무 남용하면 코드의 가독성이 떨어진다.

에러처리가 어렵다.


콜백지옥 해결법

콜백지옥이란 콜백함수의 파라미터로 또 콜백함수가 불려오고 그 불려온 콜백함수에 또 콜백함수가 불러와지는 형식으로 가독성이 매우 떨어지고 코드의 수정 및 관리가 어려운 상태를 말한다.

Promise나 async await를 사용하여 비동기 처리를 해주면 콜백 지옥을 해결할 수 있다.