[기술면접/JS] 콜백 함수(Callback Function)

강민혁·2023년 2월 16일
0

기술면접 | JS

목록 보기
3/17

콜백 함수(callback Function)에 대해 설명하세요

Keyword

함수의 매개변수, 전달, 함수형 프로그래밍, 비동기 처리, 콜백 패턴, 비동기 처리 결과, 상위 스코프 할당, 후속 처리


Script

자바스크립트에서는 함수의 매개변수를 통해 다른 함수의 내부로 함수를 전달할 수 있습니다. 이때, 이 함수를 콜백 함수(callback function)이라고 합니다. 콜백 함수는 이렇게 함수형 프로그래밍 패러다임을 적용하기 위해 활용할 수 있고, 이외에 비동기 처리 (이벤트 처리, Ajax 통신, 타이머 함수 등)에도 중요하게 활용됩니다. 예를 들어 이벤트 리스너에 이벤트 핸들러로써 넣어주는 함수, setTimeout에 인자로 넣어주는 함수들은 콜백 함수입니다.

콜백 함수와 비동기에 대해 조금 더 이야기해보자면, 자바스크립트는 비동기 처리를 위한 하나의 패턴으로 콜백 함수를 사용합니다. 사실 콜백 패턴으로 비동기 처리를 하게 되면, 콜백 지옥이 발생해서, Promise를 사용하는 것이 ES6 이후부터는 일반적이기는 합니다.

그래도 콜백 패턴으로 비동기 처리를 하는 케이스를 간단히 설명해보자면, 기본적으로 비동기 함수는 비동기 작업 처리 결과를 외부에 반환하거나 상위 스코프의 변수에 할당할 수 없습니다. 그래서 비동기 함수에 콜백 함수를 전달해서 후속 처리를 수행하도록 합니다. 이때 전달되는 콜백 함수는 해당 비동기 함수의 외부에서 선언되었기 때문에, 결과를 외부에 반환하거나 상위 스코프의 변수에 할당할 수 있게 됩니다.


Additional


Reference

BOOK - modern javascript deep dive

profile
with programming

0개의 댓글