
![]()
위 이미지처럼 동기 처리와 비동기 처리를 나누는 가장 큰 차이점은 어떻게 실행순서를 가지는 지에 있다. 동기처리는 요청을 보낸 후 해당 요청의 응답을 받아야 다음 동작을 실행을 하는 방식이며, 비동기 처리는 요청을 보낸 후 응답과 관계없이 바로 다음 동작을 실행 할 수 있는 방식을 의미한다.
동기적 방식은 하나의 이벤트가 모두 끝날 때까지 다른 이벤트를 처리하지 못하며 이벤트가 모두 완료가 되어야 다음 이벤트를 처리하는 실행 순서가 확실한 것을 동기적 방식이라 부른다. 예를 들면 은행으로 예를 들 수 있다 은행같은 경우엔 한사람의 은행 업무가 끝나야 다른사람의 업무를 볼 수 있듯이 동기적 방식이 이런 흐름을 의미한다.

비동기 방식은 이벤트 처리가 종료되지않은 상태라 하더라도 대기하지않고 다음 이벤트로 넘어가는 이벤트 처리 방식입니다. 자바스크립트의 대부분의 DOM 이벤트와 Timer(setTimeout, setInterval),등이 비동기적 방식으로 동작한다. 예를들면 카페로 비교를 하면 카페에선 주문을 하고 주문 음료가 나올때까지 기다리는 형식이지 먼저 주문한사람의 커피가 나올때까지 기다리는건 아니다. 결국 먼저 나오는 음료에따라서 기다리는 형식이기 때문에 이를 비동기적 방식이라고 보면 이해하기 쉽다.

동기 : 동기란 어떤 요청이 들어오면 그 요청을 바로 처리하며 그 요청을 처리중 일땐 다른 요청은 처리를 하지 못한다.
비동기 : 비동기란 두가지 요청으로 예를들어 첫번째 요청이 들어오면 바로 이벤트 처리를 하는게 아니며 두번째 이벤트 요청 처리가 가능하며 첫번째 요청처리가 완료되면 이벤트가 실행 되는 방식이다.