[javascript] 콜백 함수 사용 개선
콜백 함수는 자바스크립트에서 비동기적인 작업을 처리할 때 자주 활용됩니다. 그러나 콜백 함수를 중첩하다 보면 코드의 가독성이 떨어지고 유지보수가 어려워지는 문제가 발생할 수 있습니다. 이러한 문제를 해결하기 위해 몇 가지 개선 방법을 알아보겠습니다.
1. Promise 활용
Promise는 비동기 작업의 성공 또는 실패를 나타내는 객체로, 콜백 지옥을 방지하고 가독성을 향상시키는데 도움이 됩니다. 아래는 Promise를 사용하여 비동기 작업을 처리하는 예제입니다.
function fetchData() {
return new Promise((resolve, reject) => {
// 비동기 작업 수행
if (작업성공) {
resolve(데이터);
} else {
reject('에러메시지');
}
});
}
fetchData()
.then(data => {
// 데이터 처리
})
.catch(error => {
// 에러 처리
});
Promise를 활용하면 작업의 성공 또는 실패를 쉽게 다룰 수 있으며, 가독성이 향상되고 유지보수가 쉬워집니다.
2. Async/Await 사용
Async/Await는 Promise를 더욱 쉽게 다룰 수 있도록 도와주는 문법입니다. 아래는 Async/Await를 사용하여 동일한 작업을 처리하는 예제입니다.
async function getData() {
try {
const data = await fetchData();
// 데이터 처리
} catch (error) {
// 에러 처리
}
}
getData();
Async 함수 내부에서 비동기 작업을 수행하고, 해당 작업이 완료될 때까지 기다리는 데 사용할 수 있습니다. 이를 통해 코드를 보다 간결하게 작성할 수 있고, 가독성을 향상시킬 수 있습니다.
결론
콜백 함수의 중첩으로 인한 코드의 복잡성과 가독성 저하 문제를 해결하기 위해 Promise와 Async/Await를 적절히 활용할 수 있습니다. 이를 통해 코드의 가독성을 향상시키고, 유지보수를 보다 쉽게 할 수 있습니다.
참고 자료: MDN web docs, JavaScript.info