JS 를 공부하다 보면 빠질 수 없는 용어 중에 하나가 동기, 그리고 비동기 처리이다. 여러 강의들을 듣다보면 작성자와 같은 비전공자들 입장에선 이런 용어가 계속 나오다 보면 블랙홀에 빠지기도 쉬우므로...복습 차원 겸 간단한 글을 작성하고자 한다.

비동기 처리는 어떠한 프로그램이 병렬적 즉, 동시다발로 이루어지는 것을 의미한다.
console.log(1);
console.log(2);
setTimeout (function() {console.log(3);} , 5000);
console.log(4);
결과: 1, 2, 4, 3
위의 코드를 실행시켰을 때, 어떤 결과가 나올까?
아마도 1, 2 가 순차적으로 나온 뒤 4, 그 이후 5초 뒤에 3이 출력될 것이다. 이렇듯, 순서와 상관없이 자신만의 작업을 진행하는 것을 비동기식 처리라고 한다. 동시에 실행이 되기 때문에 빠르게 진행이 되지만 그만큼 순서가 확실하지 않아 다소 혼란스러운 일들이 발생하기도 한다.
console.log(1);
console.log(2);
console.log(3)
console.log(4);
결과: 1, 2, 3, 4
비동기에 비해 동기는 매우 쉽다! 동기는 주어진 명령을 순차적으로 실행한다. 하나가 끝나면, 그 다음 일로 넘어가는 직렬구조로 반대로 말하자면 하나가 끝나기 전에는 다음 단계로 넘어갈 수 없다는 뜻이기도 하다.