자바스크립트에서는 함수가 일급 객체(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와 같은 비동기 처리 패턴을 사용할 수 있습니다.
'개발기초' 카테고리의 다른 글
데이터베이스와 ORM (0) | 2023.04.18 |
---|---|
[자바스크립트] 동기와 비동기, 코드 실행 방식에 대해서 (0) | 2023.04.14 |
[자바스크립트] 비동기적 처리를 위한 '이벤트 루프'에 대해 알아보자 (1) | 2023.04.13 |
객체 지향 설계 5원칙(SOLID) - 의존 역전 원칙 DIP [핵심간단] (0) | 2023.02.22 |
객체 지향 설계 5원칙(SOLID) - 인터페이스 분리 원칙 ISP [핵심간단] (0) | 2023.02.21 |
댓글