node.js 기초 -2- (동기, 비동기)

choiyongheon·2023년 2월 26일

callback 함수 = 함수를 인자로 받아 다른 함수를 실행시키는 함수

    function func7(){
        document.write("func7이 실행되었습니다.<br>");
    }
    function callback(num){
        for( let i=1; i<=5; i++ ){
            num(i)
        }
    }
   document.write("*** 71. 콜백함수 ***<br>");
   callback(func7);

예를 들어, 이러한 코드가 있다면, 실행 순서는 callback -> func7*5번 실행

동기 vs 비동기

1. 동기

단일 스레드라고도 불리며, 하나의 일을 처리한 뒤 다음 일을 처리하는 방식. 자바스크립트는 동기식이며, memory heap + call stack으로 구성되어 있다.

2. 비동기

비동기를 사용하기 위해서는 콜백함수를 넣어줘야 한다. readFile(data, option, callback)으로 활용 가능하다.

서버를 구축하는데 있어 listen 함수 또한 오래걸리는 작업이므로 callback을 통한 비동기 방식을 택한다.

var fs = require("fs");

//Sync
console.log(1);
var data = fs.readFileSync("data.text", { encoding: "utf-8" });
console.log(data);

//Async
console.log(2);
fs.readFile("data.text", { encoding: "utf-8" }, function (err, data) {
  console.log(3);
  console.log(data);
});

console.log(4);

이러한 코드가 있다면 실행순서는 1 -> data -> 2 -> 4 -> 3 -> data이다.
즉, Sync에서는 순차적으로 코드를 처리하고 Async는 data를 읽어오는 동안 4를 먼저 출력하게 된다.(동시 실행)

profile
주니어 백엔드 개발자

0개의 댓글