동기 비동기

바보 개발자·2020년 9월 22일
0

JavaScript

목록 보기
5/12

동기란?

동기(Synchronous)란 요청과 결과로 이루어지는 실행 흐름의 단위가 딱딱 맞아 떨어진다는 의미.


요청이 끝나야 다음작업을 실행한다.

싱크가 맞아떨어진다.

1번 요청 -> 1번 요청 결과반환 -> 2번 요청 -> 2번 요청 결과 반환 -> 3번 요청 -> 3번 요청 결과 반환.


이렇게 이해하면 될 듯 하다.




비동기란?

비동기(Asynchronous)란 요청과 결과로 이루어지는 실행 흐름의 단위가 맞지않다는 의미.


싱크가 맞지않다.

1번 요청 -> 2번 요청 -> 3번 요청 -> 2번 결과 반환 -> 4번 요청 -> 4번 결과 반환 -> 3번 결과 반환 -> 1번 결과 반환.

순서의 상관없이 처리가 완료된 순서대로 결과를 받는다.


대충 개판이라고 이해하면 될 듯하다.




동기 비동기를 나누는 이유?

자바스크립트는 비동기방식의 프로그래밍 언어.

사람한텐 뒤죽박죽이라 복잡하겠지만 프로세스가 어느 하나의 작업에 잡혀있지 않고 동시에 여러작업을 수행할 수 있으니 컴퓨터 입장에선 합리적이고 효율적


(단, 동시에 여러 작업을 한다고 항상 성능이 우월하다고 할 순없다.)

예를 들면

1번작업 - HTML의 코드를 크롤링작업 실시.

2번작업- HTML코드에서 필요한 부분만 파싱해서 출력해야하는 상황.

이 같은 경우 2번작업을 실행하기 위해선 반드시 1번작업으로 HTML코드가 반드시 호출 된 상태여야한다.

하지만 HTML코드의 경우 양이 많아 약간의 시간이 소요된다.

이 작업이 끝나기전에 2번작업이 실행되면 2번 작업의

출력은 Null 또는 Undefine이 출력될 것 이다.

그래서 안전한 프로그램(?)을 만들기 위해서 1번작업을 동기적으로 처리해주고 2번작업으로 넘어 가야한다.

profile
일단 해보자

0개의 댓글