동기 방식은 일을 순차적으로 진행하는 것이고, 비동기 방식은 순서가 중요하지 않을 경우 일을 위임함으로써 효율적으로 처리하는 것

이메일을 만명에게 보낸다.
동기적인 방식 : 발행버튼으로 한 명 한 명에게 이메일을 보낸다. 한 명당 1초가 걸린다면 10000초가 걸리는 것이다.
비동기적인 방식 : 발행버튼을 누르면 이메일을 보내는 별도의 시스템에게 과업을 위임한다.

fs.readFile을 예로 동기와 비동기 방식에 대해 살펴보자.

var fs = require('fs');
console.log(1);  
var data = fs.readFileSync('data.txt', {encoding:'utf8'});
console.log(data); 
console.log(2);

이 코드는 파일을 읽어오는 'fs.readFile' 함수의 동기방식인 'fs.readFileSync' 함수를 이용해 같은 경로에 있는 'data.txt' 파일을 읽어온다. 콘솔의 결과는

파일을 불러와서 실행할 때 까지 2가 실행되지 않는 걸 볼 수 있다.

var fs = require('fs');  
console.log(1);  
var data = fs.readFile('data.txt', {encoding:'utf8'}, function(err,data){  console.log(2) 
console.log(data)
})  
console.log(3);

이 코드는 파일을 비동기적으로 읽어오는 'fs.readFile' 함수를 이용했다. 콘솔의 결과는

파일을 불러와서 실행하기 전에 함수 밖에 있는 '3'을 먼저 실행하고 함수의 내용이 출력된다.