콜백 지옥 탈출 하기
Last updated
Last updated
콜백 지옥(callback hell)은 콜백 함수를 익명 함수로 전달하는 과정이 반복되어 코드의 들여쓰기 수준이 감당하기 힘들정도로 깊어지는 현상을 얘기한다. 주로 이벤트 처리나 서버 통신과 같은 비동기적인 작업을 수행하기 위해 이런 형태가 자주 등장하는데, 가독성이 떨어지면서 코드를 수정하기 어렵다.
동기(synchronous)적 방식 : 현재 실행 중인 코드가 완료된 후 다음 코드를 실행 비동기(asynchronous)적 방식 : 현재 실행중인 코드의 완료 여부와 무관하게 즉시 다음 코드로 넘어가서 실행.
앱이 구동이 될 때, 비동기 통신이 수십번 일어나게 된다면 모든 결과를 콜백을 통해 처리하는데 그 떄 콜백 지옥에 빠질 수 있다. ES5에서 이를 코트로 작성 할 때 유틸리티 함수를 만들지 않는다면 콜백을 여러번 중첩하여 사용하는 이른바 콜백지옥에 빠지기 쉬웠다. 하지만 ES6에서 부터는 콜백 지옥으로 부터 해방시켜주는 Promise
가 나왔고 더 나아가서는 Promise
보다 더 간편하게 사용가능한 fetch
가 나왔다.
비동기로 거듭 제곱 함수를 사용한 콜백 지옥이다.
위와 같은 수평적인 형태의 코드를 Promise를 사용하면 수직적으로 보기 간편하게 바꿀 수 있다.
참고