[nodejs] 비동기식 코드 리팩토링
Node.js는 비동기식 프로그래밍을 지원하여 효율적인 코드 실행을 가능케 합니다. 그러나 비동기식 코드는 보기가 어렵고 관리하기 어려울 수 있습니다. 이런 문제를 해결하기 위해 코드 리팩토링이 필요합니다.
Promise 활용
기존의 콜백 함수를 사용한 비동기 코드를 Promise로 리팩토링하는 것이 첫 번째 단계입니다.
// 기존 코드
function fetchData(callback) {
// 비동기 작업
setTimeout(function() {
callback('Data fetched');
}, 1000);
}
fetchData(function(data) {
console.log(data);
});
// 리팩토링된 코드
function fetchData() {
return new Promise(resolve => {
setTimeout(() => {
resolve('Data fetched');
}, 1000);
});
}
fetchData().then(data => {
console.log(data);
});
Async/Await 활용
Promise를 사용한 코드도 보기가 좋아졌지만 Async/Await을 활용하면 더 깔끔한 코드를 작성할 수 있습니다.
// Promise 활용한 코드
function fetchData() {
return new Promise(resolve => {
setTimeout(() => {
resolve('Data fetched');
}, 1000);
});
}
async function getData() {
const data = await fetchData();
console.log(data);
}
getData();
암묵적 반환 활용
함수에서 명시적으로 Promise를 반환할 필요 없이, 암묵적으로 반환하여 코드를 더 간결하게 만들어 줍니다.
// 기존의 Promise를 반환하는 코드
async function fetchData() {
return new Promise(resolve => {
setTimeout(() => {
resolve('Data fetched');
}, 1000);
});
}
// 암묵적으로 반환하는 코드
async function fetchData() {
setTimeout(() => {
return 'Data fetched';
}, 1000);
}
Node.js에서 비동기식 코드를 리팩토링하는 방법에 대해 알아보았습니다. 이러한 리팩토링을 통해 코드를 더욱 읽기 쉽고 유지보수하기 쉽게 만들 수 있습니다.