[nodejs] 비동기 콜백 함수

Node.js는 비동기적인 이벤트 처리를 위해 콜백 함수를 널리 사용합니다. 이는 파일 읽기, 네트워크 요청, 데이터베이스 조회 등과 같이 시간이 걸리는 작업을 비차단적으로 처리할 수 있게 해줍니다.

콜백 함수란?

콜백 함수는 다른 함수의 실행이 끝났을 때 실행되는 함수입니다. 이는 특히 이벤트 처리나 비동기 작업에서 매우 유용합니다.

Node.js에서는 주로 콜백 함수를 사용하여 파일 시스템 액세스, 네트워크 요청, 데이터베이스 조회 등과 같은 비동기 작업을 처리합니다.

const fs = require('fs');

fs.readFile('example.txt', (err, data) => {
  if (err) throw err;
  console.log(data);
});

위의 예시에서 readFile 함수의 두 번째 인자로 전달된 콜백 함수는 파일 읽기 작업이 완료되면 실행됩니다.

콜백 지옥과 해결책

콜백 지옥(callback hell)은 콜백 함수를 중첩하여 사용할 때 코드가 복잡해지고 가독성이 떨어지는 현상을 말합니다. 이를 해결하기 위해 Promise나 Async/Await과 같은 기술을 사용할 수 있습니다.

예를 들어, Promise를 사용하여 파일 읽기 예제를 다음과 같이 작성할 수 있습니다.

const fs = require('fs').promises;

fs.readFile('example.txt')
  .then(data => {
    console.log(data);
  })
  .catch(err => {
    console.error(err);
  });

비동기 작업을 처리할 때는 콜백 함수와 관련된 지옥을 피하기 위해 Promise나 Async/Await을 활용하는 것이 좋습니다.

결론

Node.js에서 비동기 콜백 함수를 효율적으로 활용하기 위해서는 콜백 지옥에 빠지지 않고 코드를 깔끔하게 유지하는 것이 중요합니다. 콜백 함수의 적절한 활용은 Node.js 어플리케이션의 효율성과 성능을 높일 수 있는 핵심적인 부분입니다.

위의 내용은 Node.js 공식 문서를 참고하여 작성되었습니다.