LG CNS AM Inspire Camp

[JavaScript] 자바스크립트 콜백 함수

hseoky 2025. 3. 28. 17:59
728x90

콜백(Callback) 함수란?


function greet(name, callback) {
    console.log("Hello, " + name);
    callback(); // 전달받은 콜백 함수 실행
}

function sayGoodbye() {
    console.log("Goodbye!");
}

greet("Alice", sayGoodbye);

콜백(Callback) 함수란 다른 함수에 매개변수로 전달되어 실행되는 함수를 말한다.

위에서 보이는 예시 코드에서 `greet`함수는 `callback`이라는 매개변수를 받고 있는데, 내부 로직에서 이를 함수로써 사용하고 있다. 이처럼 다른 함수에 매개 변수로 전달되는 `callback`과 같은 함수가 콜백 함수이다.

 

 

콜백(Callback) 함수 사용 방식


[익명 함수(Anonymous Funciton)  방식]


위에서 본 코드처럼 새로운 함수(`sayGoodbye`)를 정의하고 해당 함수를 매개변수로써 사용할 수 있지만, 위와 같이 간단한 내부 로직으로 구성되고, 일회성으로 사용할 함수를 새로 정의하는 방법은 적합하지 않다. 따라서 일회성으로 콜백 함수를 이용할 때는 익명 함수 (Anonymous Funciton)을 사용할 수 있다.

 

[익명 함수 방식 사용 예시]

function greet(name, callback) {
    console.log("Hello, " + name);
    callback();
}

greet("Bob", function() {
    console.log("This is an anonymous callback.");
});

 

위 코드에서는 익명 함수를 콜백 함수로 직접 전달하고 있다. 이렇게 일회성 콜백 함수를 익명 함수를 사용하면 코드가 간결해지는 장점이 있고, 혹시라도 이후에 발생할 함수 이름의 충돌을 방지할 수 있다. 그렇지만 재사용이 불가능하고 코드가 너무 길어지면 오히려 가독성을 해치는 상황이 발생할 수 있으므로, 적절한 상황에만 사용해야 한다.

 

[화살표 함수(Arrow Function) 방식]


화살표 함수 방식은 `=>` 표현식을 사용하여 함수를 작성하는 방식으로, 익명 함수 방식과 비슷하지만 `function` 키워드나 중괄호`{}`, return을 생략할 수 있어 더 짧고 간결한 함수 표현이 가능하다.

function greet(name, callback) {
    console.log("Hello, " + name);
    callback();
}

greet("Bob", () => console.log("This is an anonymous callback.");
});

 

화살표 함수를 사용하면 위처럼 정말 간결하게 콜백함수를 작성할 수 있지만, 익명 함수와 같이 재사용이 불가능하고 코드가 너무 길어지면 가독성이 떨어지므로 이 방식 또한 적절한 곳에서만 사용해야 한다.

 

 

 

728x90