728x90

동기식 : A 실행 → A 결과 → B 실행 B 결과

- A 결과를 회신 받아서 그 다음 B를 실행한다.

- 동기식은 순차적, 직렬적으로 태스트를 수행한다.

- 동기식은 요청을 보낸 후 응답(결과물)을 받아야지만 다음 동작이 이루어지는 방식이다.

- 결과가 주어질 때까지 아무것도 하지 못하고 대기해야 하는 단점이 있을 수 있다.

// 동기식 함수 구현
function add(a, b) {
    return a + b;
}
 
// 동기식 함수 사용
let result = add(3,4);
console.log('result : ', result);

 

 

비동기식 : A 실행 → B 실행 → A 결과

- A가 비동기로 실행되고 A 결과를 기다리지 않고, 바로 B가 실행되고 난 이후 A의 결과가 나올 수 있다.

- 비동기식은 병렬적으로 태스트를 수행한다. 즉, 요청을 보낸 후 결과와는 상관없이 다음 방식이 동작하는 방식이다.

- 결과가 주어지는데 시간이 걸리더라도 그 시간동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있다.

- 비동기식 처리 예시로는 setTimeout과 AJAX가 있다.

// 비동기식
const fs = require('fs');
fs.readFile("readme.txt""utf8"function (err,content) {
    console.log(content);
});
console.log("Reading files ...");

- 모듈 로딩 : require('모듈이름')

 

callback 함수의 결과가 나중에 실행된다.

// 비동기식 함수 구현
function add(a, b, callback) {
    let result = a + b;
    callback(result);
}
 
// 비동기식 함수 사용
add(3,4,function (result) {
    console.log('result : ', result);
});

 

728x90
블로그 이미지

Link2Me

,