41장 타이머 ~ 44장 REST API

Boseong Choi·2023년 7월 30일
0

41장 타이머

함수를 명시적으로 호출하지 않고 일정 시간이 지난 다음에 호출을 예약하려면 타이머 함수를 쓰면 됨. setTimeout 과 setInterval 은 일정 시간이 지나면 콜백 함수가 호출된다. setTimout은 타이머가 한번만 동작하고 setInterval은 반복적으로 동작.

41.3 디바운스와 스로틀

scroll, mousemove 같은 이벤트는 console.log 이벤트 행위에 비해 좀 과도하게 호출되는 경향이 있는것 같다. 이때 디바운스랑 스로틀을 써서 과도한 이벤트 호출을 방지할 수도 있음.

디바운스

setTimeout과 비슷하게 일정시간동안 이벤트가 발생되지 않으면 이벤트 핸들러가 한번만 호출.

스로틀

일정시간 간격으로 이벤트 핸들러가 최대 한번만 호출되도록 한다.

42장 비동기 프로그래밍

자바스크립트 엔진은 한 번에 하나의 태스크만 실행할 수 있는 싱글 스레드 방식으로 동작한다. 때문에 시간이 걸리는 태스크를 실행하는 경우 블로킹이 발생한다.

현재 실행 중인 태스크가 종료할 때까지 다음에 실행될 태스크가 대기하는 방식을 동기처리라고 하고 현재 실행 중인 태스크가 종료되지 않은 상태라 해도 다음 태스크를 곧바로 실행하는 방식을 비동기처리라고 한다.

타이머 함수인 setTimeout과 setTimeinterval, HTTP 요청, 이벤트 핸들러는 비동기 처리 방식으로 동작한다.

이벤트 루프와 태스크 큐

이벤트 루프는 동시성을 지원하는 것이며 콜 스택이 비어 있고 태스큐 큐에 대기 중인 함수가 있다면 이벤트 루프는 순차적으로 콜 스택으로 이동시킨다.

태스크 큐는 setTimeout과 setTimeinterval과 같은 비동기 함수의 콜백 함수 또는 이벤트 핸들러가 일시적으로 보관되는 장소.

비동기 함수인 setTimeout의 콜백 함수는 태스크 큐에 푸시되어 대기하다가 콜 스택이 비게 되면, 콜 스택에 푸시되어 실행된다.

43장 AJAX

브라우저가 서버에게 비동기 방식으로 데이터를 요청하고 서버가 응답한 데이터를 받아서 동적으로 렌더링하는 프로그래밍 방식을 말한다.

장점

  1. 변경할 부분을 갱신하는데 필요한 데이터만 서버로부터 받기 때문에 불필요한 데이터 통신이 발생하지 않는다.
  2. 변경할 필요가 없는 부분으 다시 렌더링하지 않는다. 따라서 화면이 순간적으로 깜빡이는 현상이 발생하지 않는다.
  3. 비동기 방식으로 동작하기 때문에 서버가 요청을 보낸 이후 블로킹이 발생하지 않는다.

JSON

자바스크립트의 객체 리터럴과 유사하게 키와 값으로 구성된 순수한 텍스트다.

44장 REST API

https://velog.io/@boseong-choi/RESTful-API%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C

profile
Frontend Developer

0개의 댓글