콜백함수를 두 가지 레벨로 설명할 것이다. 첫 번째는 초보자 레벨, 그리고 두 번째는 중급자 레벨.
초보자 레벨에서는 정의와 용도까지만 알면 된다. 먼저 정의는 그냥 함수 안에 파라미터 형태로 들어가는 함수를 콜백함수라고 부른다. 그리고 용도는 JavaScript에서 순차적으로 코드를 실행하고 싶을 때 콜백함수를 쓰는 것이다. 그 이상의 용도는 없다.
그래서 우리가 초보 때 이벤트 리스너 같은 걸 배울 때 콜백함수를 가장 먼저 발견한다. 우리가 HTML의 어떤 버튼을 눌렀을 때 특정 JavaScript 코드를 실행하고 싶다면 이벤트 리스너를 이용해 코드를 짠다. 이벤트 리스너를 붙이고 싶으면 이런 addEventListener()라는 함수를 갖다 쓰면 된다.
그런데 이 함수를 사용할 때 콜백함수를 넣게 되어 있다. addEventListener()는 함수인데 파라미터 자리에 또 하나의 함수를 쓰고 있다. 이걸 콜백함수라고 한다. 그리고 콜백함수는 뭔가를 순차적으로 실행하고 싶을 때 쓴다.
setTimeout()이라는 코드 안에서도 콜백함수를 발견할 수 있다. setTimeout()은 1초 경과 후 괄호 속 코드를 실행하는 함수이다. 그런데 여기에서도 콜백함수를 넣게 되어 있다.
여기에서 특징을 두 가지 정도만 정리해보자. 먼저 콜백함수는 다른 데서 만든 함수도 넣을 수 있다.
그리고 콜백함수에 함수명을 작명할 수도 있다. 이게 두 번째 특징이다.
그리고 콜백함수를 아무 데나 다 넣을 수 있는 게 아니라 콜백함수를 넣으라고 되어 있는 함수들에만 넣을 수 있다. 대표적으로 setTimeout()이 있다.
출처: 코딩앙마, 콜백함수가 뭔지 한국어로 쉽게 설명하는 영상