반응형
자바스크립트에서 콜백(callback)은 함수의 매개변수로 전달되는 함수입니다. 콜백은 특정 동작이 완료된 후에 실행되어야 할 코드를 포함하고 있을 수 있으며, 비동기 프로그래밍에서 자주 사용됩니다.
콜백 함수의 예제
아래의 코드는 setTimeout 함수를 사용하여 콜백 함수를 예약하는 간단한 예제입니다.
function myCallback() {
console.log('2초 후에 실행됩니다.');
}
setTimeout(myCallback, 2000);
setTimeout은 첫 번째 인자로 콜백 함수를 받고, 두 번째 인자로 지연시킬 밀리초 시간을 받습니다. 위의 예제에서는 myCallback 함수가 2초 후에 실행됩니다.
콜백의 문제점
콜백은 강력한 기능을 제공하지만, 복잡한 비동기 로직을 구현할 때 콜백 지옥(callback hell)이라는 문제가 발생할 수 있습니다. 콜백 지옥은 여러 콜백 함수가 중첩되어 코드의 가독성과 유지보수가 어려워지는 현상입니다.
예를 들어, 아래와 같은 중첩된 콜백이 있을 수 있습니다.
getData(function(a) {
getMoreData(a, function(b) {
getEvenMoreData(b, function(c) {
// 코드...
});
});
});
이런 문제를 해결하기 위해 프로미스(Promise)나 async/await와 같은 현대 자바스크립트의 기능들을 사용하면, 비동기 코드를 더 깔끔하게 작성할 수 있습니다.
콜백 사용의 현대적인 접근
ES6부터 도입된 프로미스는 비동기 작업의 결과를 보다 명확하게 표현할 수 있게 해줍니다. async/await는 프로미스를 더 읽기 쉬운 형태로 사용할 수 있게 해주는 문법입니다.
예를 들어:
async function fetchData() {
let data = await getData();
let moreData = await getMoreData(data);
let evenMoreData = await getEvenMoreData(moreData);
// 코드...
}
이렇게 하면 콜백 지옥 문제를 피하면서도 비동기 로직을 간결하고 가독성 좋게 구현할 수 있습니다.
반응형
'JavaScript' 카테고리의 다른 글
JavaScript setInterval 함수 사용법 및 활용법 (0) | 2023.08.24 |
---|---|
JavaScript async & await 사용법 (0) | 2023.08.24 |
JavaScript 자주하는 실수들 (0) | 2023.08.24 |
JavaScript 코딩 규칙 + 알아둬야 할 센스 (0) | 2023.08.24 |
JavaScript Debugging 오류 찾고 수정하기 (0) | 2023.08.24 |