반응형

개요

 

이번에는 Node.js 뿐만 아니라 현재 가장 많이 쓰이는 프로그래밍 방식인 비동기에 대해서 알아보도록 하겠습니다.

 


동기란..?

동기적 인 작업을 한다 라고 한다면 일을 순차적으로 해나가는 것을 의미합니다.

따라서 일의 효율이 떨어지며 한 번에 하나의 일만 한다고 생각하시면 됩니다.

 


비동기란..?

 

비동기적인 작업을 한다 라고 한다면 일을 순차적으로 하는 것이 아니라 일을 병렬적으로

처리해 나가는 방식이라고 생각하시면 됩니다.

일을 병렬적으로 처리하기 때문에 무엇보다 일의 효율이 증가하며 효과적으로 개발을 진행할 수 있습니다.

 

 

sytax/sample.txt 파일은 그냥 B만 들어있습니다.

 


동기적 인 작업

 

var fs = require('fs');
 

//readFileSync
console.log('A');
var result = fs.readFileSync('syntax/sample.txt', 'utf8');
console.log(result);
console.log('C');

 


비동기적 인 작업

 

var fs = require('fs');
 
/*
//readFileSync
console.log('A');
var result = fs.readFileSync('syntax/sample.txt', 'utf8');
console.log(result);
console.log('C');
*/
 
 
console.log('A');
fs.readFile('syntax/sample.txt', 'utf8', function(err, result){
    console.log(result);
});
console.log('C');

다음과 같이 작업이 순차적으로 일어나지 않는 것을 확인하실 수 있습니다.

 


차이점..?

 

동기적인 문법은 return 값이 필요하고 

비동기적은 문법은 return 값이 아니라 callback함수를 사용하여 나타내는 사용방법이 있습니다.

 


그렇다면 Callback 함수는 무엇일까..?

 

/*
function a(){
  console.log('A');
}
*/
var a = function(){
  console.log('A');
}
 
 
function slowfunc(callback){
  callback();
}
 
slowfunc(a);

 

slowfunc의 인자인 callback 은 var a를 받아오며 callback();이라는 함수는 console.log('A')를 출력하게 됩니다.

 


 

 

반응형

+ Recent posts