동기와 비동기
동기(Synchronous)
요청과 그 결과가 동시에 일어나는 것
설계가 간단하고 직관적 But 결과가 주어질 때까지 대기를 해야한다.
서버에서 데이터를 가져와서 화면에 표시하는 작업을 수행할 때, 서버에 데이터를 요청하고 데이터가 응답될 때까지 이후 태스크들은 블로킹(blocking, 작업 중단)된다.
비동기(Asynchronous)
요청과 결과가 동시에 일어나지 않는 것 설계가 복잡 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업가능 - 자원의 효율성
서버에서 데이터를 가져와서 화면에 표시하는 태스크를 수행할 때, 서버에 데이터를 요청한 이후 서버로부터 데이터가 응답될 때까지 대기하지 않고(Non-Blocking) 즉시 다음 태스크를 수행한다.
대표적으로 DOM이벤트와 Ajax가 비동기적 통신기법
Ajax(Asynchronous JavaScript and xml)
이름 부터 로 Javascript와 xml형식으로 서버와 비동기적 통신하는 방법이다.(xml또는 JSON)
Ajax를 사용하면 전체 페이지를 reload하지 않고 페이지 일부만 load 하는 기법입니다. reload가 된다는 것은 redirect가 된다는 것이고, redirect는 서버에 자원을 반환한 후에 새로운 경로로 요청하는 것을 의미합니다. 반면 Ajax는 서버에 자원을 반환할 필요 없이 변경된 부분만 클라이언트에게 응답합니다.