본문 바로가기

WEB/JavaScript

동기와 비동기

JavaScript에 대해서 검색하면 항상 빠지지 않고 나오는 단어가 있습니다

바로 동기(synchronous)와 비동기(asyncronous)입니다. 저는 항상 이 두 단어 동기와 비동기를 헷갈려했는데요

그래서 저는 이 두가지 개념을 확실히 알기 위해 이번 포스트를 작성하게 됐습니다.


동기는 해당 동작이 완전히 끝난 이후에 다음 동작을 수행하는 것이고,

비동기는 동작이 끝나지 않았더라도 다른 동작도 함께 수행하는 것입니다.


또한 동기는 명령이 끝날 때 까지 사용자에게 제어권을 주지 않고,

비동기는 명령의 종료 여부에 상관없이 사용자에게 제어권이 주어집니다.


동기의 예는 자바스크립트에서 alert 함수에서 잘 볼 수 있습니다.

alert 함수를 실행시키면 해당 창에서 사용자가 상호작용을 하기 전까지 다음 구문이 실행되지 않습니다.

이와 같이 동기는 한 함수나 구문이 끝나기 전 까지 다음 구문이 실행되지 않는 특징을 가지고 있습니다.


그리고 비동기는 이렇게 한 구문이나 함수가 끝나지 않더라도 다음 구문이 함께 수행되는 병렬처리와 비슷한 구조를 가지고 있습니다.


또한 동기 방식은 작업이 들어온 순서대로 하나씩 진행하지만

비동기 방식은 여러가지의 일을 동시에 처리할 수 있습니다