well-balanced

동기(Synchronous)와 비동기(Asynchronous)의 차이 본문

etc

동기(Synchronous)와 비동기(Asynchronous)의 차이

Cosmian 2019. 11. 12. 16:17

동기(Synchronous)와 비동기(Asynchronous)

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

이메일을 만명에게 보낸다.

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

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

    • 동기방식(Sync)

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

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

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

  • 비동기방식(Async)

    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'을 먼저 실행하고 함수의 내용이 출력된다.

'etc' 카테고리의 다른 글

HTTP란?  (0) 2019.11.26
Naming case (네이밍 케이스)  (0) 2019.11.14
'Object Model' 정리  (0) 2019.11.13
Single source of truth란?  (0) 2019.11.12
[번역] Statement와 Expression의 차이 (Javascript)  (0) 2019.11.08
Comments