함수를 파라미터로 전달하는 경우는 대부분 비동기 프로그래밍(Non-Blocking Programming) 방식으로 코드를 만들 때이다. 예를 들어, 더하기 함수를 실행한 후 결과 값이 반환될 때까지 기다리지 않고 그 다음 코드를 실해앟려면 비동기 방식으로 코드를 만들어야 한다. 즉, 더하기 함수를 실행하는 데 시간이 걸릴 수 있기 때문에 그 다음 코드를 바로 실행한다.
그리고 연산이 끝났을 때 파라미터로 전달한 함수가 실행될 수 있다면 그 시점에 결과를 처리할 수 있으므로 효율적인 프로그램을 만들 수 있다.
이 때 파라미터로 전달되는 함수를 콜백 함수(Callback function)이라고 한다. 콜백 함수는 함수가 실행되는 중간에 호출되어 상태 정보를 전달하거나 결과 값을 처리하는 데 사용된다.
ch03_test15.js 파일을 새로 만들고 다음과 같이 입력한다.
function add(a, b, callback) {
var result = a + b;
callback(result);
}
add(10, 10, function(result) {
console.log('파라미터로 전달된 콜백 함수 호출됨.');
console.log('더하기 (10, 10)의 결과 : %d', result);
});
더하기 함수를 정의할 때는 더 이상 값을 반환하지 않도록 return 키워드를 사용하는 코드 부분을 삭제한다.
그 대신 더하기 연산을 한 결과 값은 파라미터로 전달된 콜백 함수를 호출하면서 그 콜백 함수로 전달한다.
콜백 함수는 미리 변수에 할당해 두었다가 add() 함수를 호출할 때 파라미터로 전달할 수도 있지만, add() 함수를 호출할 때 익명 함수로 만들어서 파라미터로 바로 전달할 수도 있다.
콜백 함수는 더하기 연산을 하는 코드 아래에서 호출되는데 이 때 콘솔 창에 메시지를 출력한다. 파일을 실행하면 다음과 같은 메시지를 볼 수 있다.
▲ 콜백 함수로 더하기 연산을 받아 출력하기
'Study > Node.js' 카테고리의 다른 글
[노드JS] 프로토타입 객체 만들기 (0) | 2019.03.16 |
---|---|
[노드JS] 함수 안에서 값을 반환할 때 새로운 함수를 만들어 반환하기 (0) | 2019.03.16 |
[노드JS] 콜백 함수 이해하기 (0) | 2019.03.16 |
[노드JS] slice() 메소드 활용하기 (0) | 2019.03.16 |
[노드JS] splice() 메소드 활용하기 (0) | 2019.03.16 |