콜백함수 사용하기

Written on July 17, 2019

콜백함수란, 다른 함수에 인자로 전달되어진 함수로, 외부함수 내에서 일종이 루틴이나 동작을 완성하게 위해 호출된다. 가장 큰 특징은 특정 시점이 되었을 때 실행되어진다는 것이다.

간단한 예로,

function greeting(name) {
  alert("Hello " + name);
}

function processUserInput(callback) {
  var name = prompt("Please enter your name.");
  callback(name);
}

processUserInput(greeting);

greeting이라는 함수는 processUserInput에 인자로 전달되어 사용자가 이름을 입력하고 나면 실행되어진다.


파일을 쓰고 읽는것도 동기처리가 필요한 작업이다. filepath와 callback함수를 인자로 전달하여 파일에 있는 글자 수를 세는 함수를 아래와 같이 작성할 수 있다.

var callback = (err, count) => {
  if (err) {
    console.err(err);
  } else {
    console.log(count);
  }
};

var getWordCount = (filePath, callback) => {
  fs.readFile(filePath, "utf-8", (err, data) => {
    if (err) {
      callback(err, null);
      return;
    }
    var wordCount = data.trim().split(" ").length;
    callback(null, wordCount);
  });
};


콜백함수를 사용함에 있어 주의해야 할 점은 ‘콜백지옥(callback hell)’에 빠질 수 있다는 것이다. 콜백지옥이란 함수의 매개 변수로 넘겨지는 콜백 함수가 반복되어 코드를 가독성이 떨어지는 것을 말하는데, 이에 대한 대체제로 promise 혹은 async/await을 사용할 수 있다.

👩🏻‍💻 배우는 것을 즐기는 프론트엔드 개발자 입니다
부족한 블로그에 방문해 주셔서 감사합니다 🙇🏻‍♀️

in the process of becoming the best version of myself