본문 바로가기
[웹]

[Node.js] 동기/비동기

by Hevton 2020. 9. 30.
반응형

Node.js 가 제공하는 모듈의 함수들은 동기/비동기 함수들이 존재한다.

 

예를들어

var fs = require('fs');

// 동기
var result = fs.readFileSync('s.txt', 'utf-8');
console.log(result);

// 비동기
fs.readFile('s.txt', 'utf-8', function(err, result){
  console.log(result);
});

이런 두 가지 종류의 함수가 존재한다.

 

하나는 동기적으로, 파일을 읽어들여서 결과값을 바로 받아내고

하나는 비동기적으로, 콜백함수를 정의해놓았다가 작업이 끝나면 호출되게끔 하여 결과값을 받아낸다.

 

동기적인 경우 해당 구문이 완료되기 전까지 다음 구문이 실행되지 않는데,

비동기적인 경우는 해당 구문에 대한 결과를 받을 콜백함수를 정의해놓고 바로 다음 구문들을 처리하며, 알아서 작업이 완료될 때 정의해놓은 함수가 시스템에 의해 호출(콜백)되어 결과값을 내보낸다.

 

작업이 끝날때까지 해당 구문에서 기다렸다가 값을 직접 받아 처리를 하느냐, 기다리지 않고 작업이 끝날 때 미리 정의된 함수가 호출되게끔 하여 그 함수 안에서 값을 받아 처리하느냐의 차이이다.

 

함수명을 보아하니 Node.js에서는 기본적으로 비동기 방식을 권장하는 것을 알 수 있다.

Node.js의 성능을 완벽히 끌어올리려면 비동기 방식을 써야 한다.

반응형