[javascript] 자바스크립트 에러 핸들링에서 익명 함수와 콜백 함수의 차이점
자바스크립트에서는 익명 함수와 콜백 함수를 사용하여 에러를 핸들링할 수 있습니다. 이 두 가지 함수의 차이에 대해 알아보겠습니다.
익명 함수
익명 함수는 이름을 갖지 않는 함수로, 주로 함수 표현식 또는 콜백으로 사용됩니다. 아래는 익명 함수를 사용한 예시입니다.
const divideNumbers = function(a, b) {
try {
if (b === 0) {
throw new Error('Divisor cannot be zero');
}
return a / b;
} catch (error) {
console.error('Error: ' + error.message);
// 에러를 처리하는 코드
}
};
divideNumbers(6, 0);
위 예시에서 divideNumbers
함수는 익명 함수로 정의되어 있습니다.
콜백 함수
콜백 함수는 다른 함수의 매개변수로 전달되는 함수로, 특정 이벤트 발생 시 호출됩니다. 아래는 콜백 함수를 사용한 예시입니다.
function fetchData(url, callback) {
fetch(url)
.then(response => response.json())
.then(data => callback(null, data))
.catch(error => callback(error, null));
}
function handleData(error, data) {
if (error) {
console.error('Error: ' + error.message);
// 에러를 처리하는 코드
} else {
// 데이터를 처리하는 코드
}
}
fetchData('https://example.com/api/data', handleData);
위 예시에서 handleData
함수가 콜백 함수로 사용되었습니다.
익명 함수와 콜백 함수의 차이점
주요 차이점은 다음과 같습니다:
- 호출 시점: 익명 함수는 정의된 위치에서 직접 호출되지만, 콜백 함수는 다른 함수나 이벤트에 의해 호출됩니다.
- 활용: 익명 함수는 주로 변수에 할당되어 사용되거나 즉시 실행되는 함수로 활용되며, 콜백 함수는 비동기적인 작업이 완료되었을 때 실행되는 콜백으로 활용됩니다.
- 에러 핸들링: 익명 함수와 콜백 함수 모두 에러 핸들링을 위해
try-catch
나 에러 콜백을 사용할 수 있지만, 콜백 함수는 주로 비동기적인 작업의 에러 핸들링에 활용됩니다.
이렇듯 자바스크립트에서 익명 함수와 콜백 함수는 에러 핸들링을 비롯한 다양한 상황에서 유용하게 활용됩니다. 적절한 상황에 맞게 선택하여 사용하는 것이 중요합니다.