(JS) 콜백 함수

woong·2022년 10월 16일
0
post-thumbnail

일급 객체 (First Class Object)

콜백함수를 공부하기 전에 일급 객체에 대한 부분을 간단하게 알고 갈 필요가 있다. 일급 객체란 다른 객체처럼 모든 연산이 가능한 것을 말한다.

  • 변수나 자료구조(객체, 배열)에 담길 수 있다.
  • 함수의 매개변수에 전달될 수 있다.
  • 함수의 반환 값에 사용될 수 있다.
  • 런타임에 생성될 수 있다.

콜백 함수 (callback)

콜백함수는 매개변수(parameter)로 전달받은 함수를 말한다. 함수에서 매개변수로 콜백함수를 전달받고 필요할 때 호출하여 사용할 수 있다.
자바스크립트에서 함수는 일급 객체에 해당하기 때문에 이처럼 활용될 수 있다.

<예시>

function print (num, callback) {
    for (let i=0; i<=num; i++) {
        console.log(callback(i));
    }
}
const threeTimes = (a) => 3 * a;

print (3,threeTimes);
//0
//3
//6
//9
  • 매개변수로 num과 callback을 전달받아 0부터 주어진 숫자(num)까지 숫자를 순회하며 순회하는 숫자의 3배에 해당하는 값을 출력함.
  • print라는 함수가 먼저 호출되고 threeTimes 함수가 나중에 호출 된다.
  • 이 때 함수 print를 고차함수라 하고, print 함수의 매개변수로 전달받은 함수인 threeTimes 함수를 콜백 함수라 한다.

(참고) 고차함수: 함수를 전달 인자로 받거나(콜백함수) 함수를 반환하는 함수.

콜백 함수 사용 이유와 문제점

  • 자바스크립트는 기본적으로 동기적으로 순차적으로 코드를 실행하는데, 콜백 함수를 통해 비동기적인 프로그래밍을 할 수 있다.
  • 문제점으로는 콜백 지옥이 있다.

=> 비동기와 동기적인 프로그래밍의 특징과 차이에 대해 자세히 알아볼 것.

0개의 댓글