
먼저 동기(Synchronous)와 비동기(Asynchronous)의 차이는
상대방의 일정 신호에 의해서 다음 동작이 이루어지면 동기 상대방의 상태와 관계없이 일방적으로 동작하면 비동기 입니다
즉, 상대방이 받을준비 됬다는 신호를 받아서 한byte 보내고 수신측에서 한byte받은 후 또 보내도 된다는 신호를 보내고 이 신호 확인후 보내고.. 이런식이 동기식입니다 이에 반하여 비동기에서는 일단 한번 전송 시작되면 좌~~~악 보냅니다
이와 비슷한 개념으로 일반 software에서 동기식이라 함은 어떤 루틴을 완전히 끝내고 제어를 반납하면 동기식 동작이 안 끝났어도 일단 제어권을 반납한 후 지 할일 계속하면 비동기식입니다
출처: http://jajubogi.tistory.com/14
말로는 어려운데 실제 작업에서 자바스크립트 비동기통신이 자주 쓰일때는 브라우저에서 화면에 일부분을 새로고침없이 서버의 데이타를 가져올때 많이 사용한다. 초기에는 ajax(Asynchronous Javascript And Xml)를 이용해서 많이 사용하다 요즘에는 ES6이후에 적용된 fetch, async-await를 사용한다. 홈페이지가 SPA(Single Page Application) 기반으로 넘어가면서 점점더 비동기통신의 쓰임새는 많이 질 것으로 예상한다.