초기 웹 환경에서는 서버에서 모든 데이터를 로드하여 페이지를 빌드했으므로 자바스크립트에는 별도의 비동기 처리가 필요하지 않았지만 Ajax(Asynchronous JavaScript and XML) 기술의 등장으로 페이지 로드 없이 client-side에서 XMLHttpRequest라는 객체를 통해 서버로 요청을 보내면서 데이터를 처리할 수 있게 되었다.
🎯 비동기 통신의 특징
비동기 통신은 페이지의 새로고침 없이 부분적으로 데이터를 가져올 수 있게 한다.
통신 처리가 끝나지 않아도 다른 작업을 할 수 있다.
사용자 경험이 극대화된다는 장점이 있다.
비동기 통신 방법에는 Ajax(Asynchronous JavaScript and XML), fetch, axios가 있다.
비동기 통신 방법
1) Ajax
Ajax에서 XMLHttpRequest 객체를 통해 웹 브라우저와 서버가 데이터를 교환한다.
콜백지옥이 생길 수 있고 복잡하다는 단점이 있다.
2) fetch
웹 API에서 지원을 하는 내장 라이브러리로 import없이 사용 가능하다.
XMLHttpRequest의 대체자로 나온것이 fetch이다. 비동기 요청을 더 편하게 해준다.
promise 기반으로 동작하여 콜백지옥이 생기지 않는다.
응답으로 오는 데이터는 Response 객체로 Json이나 text로 변경해주는 과정이 필요하다.