(Javascript) 콜백함수

콜백함수 (Callback function)

콜백함수란

콜백함수란 call back, 말 그대로 ‘다시 불려져오는’ 함수이다.

코드가 실행되면 여러 객체가 일을 하게된다.

콜백함수는 이때 모든 객체가 일이 끝날때 까지 기다린 후 한번에 결과를 배출하는 대신

어떤 객체에게 일을 시키고, 그 객체의 일이 끝날때까지 다른 일을 하는 방식을 취한다.

비동기 (Asynchronous) 방식의 함수로 사용된다.

동기(Synchronous), 비동기(Asynchronous)

여기서 동기, 비동기 방식의 차이점에 대해 알아보고 넘어가자.

  • 동기(Synchronous)

동기 방식은 동시에 일어난다는 의미. 프로그램이 끝난 후 결과물이 한번에 반납된다.

  • 비동기(Asynchronous)

비동기 방식은 동시에 일어나지 않는다는 의미. 한번에 결과물이 반납되지 않고 각각의 작업이 끝나는대로 결과물이 반납된다.

즉, 두 방식의 차이점은 결과물을 가져오는 시점이 다르다는 것이다.

사용 방식

콜백함수는 특정 함수의 동작이 끝남과 동시에 다른 여러가지 함수를 호출해야 할 경우에 사용된다.

매개 변수를 통해 함수를 받고, 그 함수를 통해 결과값을 호출한다.

간단한 예시 코드로 알아보자.

multiply = function(a, b, callback) {
    var result = a*b;
    callback(result);
}

multiply(3, 4, function(res){
    console.log(res);
})

곱셈연산을 하는 코드.

multiply함수를 선언후 a, b, callback을 인자로 받아 a와 b의 곱셈값을 result에 넣고 result를 callback함수의 인자로 넣는다.

아래 부분에서 callback함수 인자 자리에

function(res) {
	console.log(res);
}

위 함수가 들어가 있으므로 multiply함수에서 전달받은 result값을 출력하게 된다.

그러므로 위 코드는 12를 출력한다.

이번에는 콜백함수 개념에 대해 알아보았다.

콜백개념은 아직까지 많이 헷갈린다. 완전히 이해하려면 시간이 걸릴듯 하다.