개발기초

[자바스크립트] 비동기적 처리를 돕는 '콜백 함수'

Veams 2023. 4. 13.

자바스크립트에서는 함수가 일급 객체(First-class Object)로 취급되므로, 함수를 다른 함수의 인자로 전달하고, 함수에서 새로운 함수를 반환하거나, 함수 내부에서 함수를 정의하여 사용할 수 있다.

 

콜백 함수다른 함수의 인자로 전달되어, 해당 함수의 작업이 완료된 후 호출되는 함수를 말한다. 다시 말해, 어떤 함수의 파라미터로 들어가서 나중에 호출되는 함수이다.

 

function add(a, b, callback) {
    const result = a + b;
    callback(result);
}

function printResult(result) {
    console.log(result);
}

add(1, 2, printResult); // 3

콜백함수, 왜 필요한가? 

 

주로 웹 브라우저에서 실행되는 자바스크립트는 비동기적인 작업을 처리할 때가 많다. 비동기적인 작업이란, 작업이 순차적으로 처리되지 않고, 병렬적으로 처리되는 작업을 말한다.

 

콜백 함수는 비동기적인 작업을 처리할 때 많이 사용된다. 콜백 함수는 프로그램의 흐름을 제어하고, 비동기 작업의 결과를 처리하는 데 필요하다. 예를 들어, 파일을 읽거나 데이터를 가져오는 작업이 완료된 후 콜백 함수를 호출하여 결과를 처리할 수 있다. 코드의 재사용성이나 모듈화에도 도움이 된다. 콜백함수를 통하여 비동기적인 작업이 완료 될 때까지 기다리는 동안 브라우저가 멈추는 현상을 방지하고 다른 작업을 처리할 수 있게 된다.

 

과도한 콜백 함수 사용은 코드의 가독성을 저해하는 콜백 지옥을 초래할 수 있다. 이런 문제를 해결하기 위해 프로미스(Promise)나 async/await와 같은 비동기 처리 패턴을 사용할 수 있습니다.

댓글