비동기
[JavaScript] 이벤트 루프 (Event Loop)
JavaScript는 싱글 스레드 언어로써 한 번에 하나의 작업만 처리할 수 있습니다. 하지만 실제 웹을 보면 여러 작업들이 동시에 처리되는 것을 볼 수 있습니다. JavaScript는 어떻게 여러 작업을 처리할 수 있었을까요? 답은 이벤트 루프(Event Loop)에 있습니다. 이 글을 통해 이벤트 루프의 개념과 JavaScript의 비동기 처리 과정을 알아보겠습니다. 이벤트 루프 (Event Loop) JavaScript는 이벤트 루프를 통한 비동기 처리로 동시성(Concurrency)을 지원합니다. 다만 그림을 보면 알듯이 JavaScript 엔진 내부에서 비동기 요청을 처리하지는 않습니다. 엔진은 그저 호출 스택(Call Stack)에 들어오는 요청을 순차적으로 처리하는 역할만 합니다. 비동기 요..
[JavaScript] axios와 fetch 차이
axios와 fetch 모두 JavaScript의 비동기 통신을 위한 라이브러리다. 두 라이브러리는 어떤 차이가 있을까? 이를 비교하기 위해 우선 Ajax가 무엇인지부터 알아보자. Ajax (Asynchronous JavaScript And XML) Javascript를 사용한 비동기 통신을 의미한다. 클라이언트와 서버 간에 XMLHttpRequest(XHR)를 활용해 소통한다. Asynchronous Asynchronous(비동기)는 요청을 보낸 후 응답을 기다리지 않고 다음 동작이 이루어지는 방식이다. XMLHttpRequest (XHR) XMLHttpRequest(XHR) 객체는 서버와 상호작용하기 위하여 사용된다. 이를 통해 전체 페이지의 새로고침 없이도 URL로부터 일부의 데이터를 받아올 수 있..