[nodejs] 비동기식 데이터 전송 방법
Node.js는 멀티스레딩이 아닌 단일 스레드 이벤트 루프를 기반으로한 비동기식 프로그래밍 언어입니다. 이렇게 설계된 Node.js에서는 데이터를 비동기식으로 전송하는 방법이 중요합니다. 이 블로그 포스트에서는 Node.js에서 비동기식으로 데이터를 전송하는 방법에 대해 알아보겠습니다.
1. 콜백 함수 활용
Node.js에서 가장 흔히 사용되는 비동기식 데이터 전송 방법은 콜백 함수를 활용하는 것입니다. 콜백 함수는 데이터 전송이 완료되었을 때 실행될 작업을 정의하는 데 사용됩니다.
// 비동기식 데이터 전송 예제
function sendData(data, callback) {
// 데이터 전송 로직
// ...
// 데이터 전송 완료 후 콜백 함수 호출
callback(result);
}
// 콜백 함수를 활용한 데이터 전송
sendData(myData, function(result) {
console.log('데이터 전송 완료: ' + result);
});
2. Promise 활용
ES6부터 도입된 Promise는 콜백 지옥을 피할 수 있는 강력한 도구입니다. Promise를 활용하면 데이터 전송 작업을 보다 구조화되고 읽기 쉬운 형태로 작성할 수 있습니다.
// Promise를 활용한 데이터 전송 예제
function sendData(data) {
return new Promise((resolve, reject) => {
// 데이터 전송 로직
// ...
// 데이터 전송 성공시 resolve 호출
resolve(result);
});
}
// Promise를 활용한 데이터 전송
sendData(myData)
.then(result => {
console.log('데이터 전송 완료: ' + result);
})
.catch(error => {
console.error('데이터 전송 오류: ' + error);
});
3. async/await 활용
async/await는 ES8부터 도입된 비동기 처리를 보다 간결하고 동기식 코드와 유사하게 작성할 수 있는 방법입니다. async 함수 내에서 await 키워드를 사용하여 Promise를 처리할 수 있습니다.
// async/await를 활용한 데이터 전송 예제
async function sendData(data) {
try {
// 데이터 전송 로직
// ...
// 데이터 전송 성공시 완료
return result;
} catch (error) {
throw new Error(error);
}
}
// async/await를 활용한 데이터 전송
async function processData() {
try {
const result = await sendData(myData);
console.log('데이터 전송 완료: ' + result);
} catch (error) {
console.error('데이터 전송 오류: ' + error);
}
}
processData();
Node.js에서는 콜백 함수, Promise, 그리고 async/await를 활용하여 데이터를 비동기식으로 전송할 수 있습니다. 개발자는 각 방법을 적절히 활용하여 프로젝트의 요구 사항에 맞는 데이터 전송 방식을 선택할 수 있습니다.
이상으로 Node.js에서의 비동기식 데이터 전송에 대한 블로그 포스트를 마치겠습니다.
관련 참고 자료:
- Node.js 공식 문서
- “Learning Node.js” by Marc Wandschneider (O’Reilly Media, 2016)