생활 코딩 Server Side Language
3강
콜백이란? (Callback)
쉽게 말하자면, 콜백이란 다른 함수의 인수로 실행 가능한 코드 블럭(이를 테면 함수)을 전달하여
전달 받은 함수에서는 콜백함수를 실행 할 수도 하지 않을 수도 있다. 결론적으로 말하자면, 콜백은 함수를 인수로 넘기는 것을 말한다. 콜백이 가능하려면 언어 자체에서 First-Class(일급 객체)여야 가능하다. Lambda형식으로 인수를 넘기는 것도 결국은 익명함수라 할 수 있다.
a = [3,1,2];
function comp(v1, v2){
return v2-v1;
}
a.sort(comp);
console.log(a);
a = [3,1,2];
a.sort(function(v1,v2){return v2-v1;});
console.log(a);
이러한 형태에서 sort 함수는 어떻게 호출하는 걸까?
function sort(callback){
callback();
}
즉, 위에서 코드를 보면 comp 함수가 콜백함수가 된다.
동기 (Synchronuous) vs 비동기 (Asynchronous)
동기
비동기
- 작업을 시작하여 오래 걸리는 작업을 다른 녀석에게 일을 위임하고, 제어는 다시 요청을 처리 하게 되고, 위임한 일이 끝날 때 다시 처리를 한다.
var fs = require('fs');
console.log(1);
var data = fs.readFileSync('data.txt',{encoding:'utf8'} );
console.log(data);
console.log(2);
fs.readFile('data.txt', {encoding:'utf8'}, function(err, data){
console.log(3);
console.log(data);
})
console.log(4);