- 호출 스케줄링이란 무엇인가?
: 타이머 함수를 사용하여 일정 시간이 경과된 이후에 함수 호출을 예약하는 것
- 자바스크립트의 타이머 함수에는 무엇이 있고, 각각 어떤 특징이 있는가?
:
setTimeout
과setInterval
, 두 함수 모두 반환 값으로 타이머를 반환함
:setTimeout
의 콜백 함수는 인수로 전달한 시간이 지나고 나서 딱 한 번만 호출되지만,setInterval
의 콜백 함수는 인수로 전달한 시간이 지날 때마다 반복적으로 호출됨
- 자바스크립트의 타이머 함수의 반환 값은 자바스크립트 실행 환경에 따라 어떤 차이가 있는가?
: 타이머 함수는 생성된 타이머를 식별할 수 있는 고유한 타이머 id를 공통적으로 반환하는데, 브라우저 환경에서는 타이머 id의 값이 숫자이고 Node.js 환경에서는 타이머 id의 값이 객체임
- 호출 스케줄링을 취소하려면 어떻게 해야 하는가?
:
clearTimeout
,clearInterval
함수를 사용하여 생성된 타이머를 취소할 수 있음
- 디바운스는 무엇이고, 언제 사용하는가?
: 짧은 시간 간격으로 이벤트가 연속해서 발생할 때는 이벤트 핸들러를 호출하지 않다가, 일정 시간이 경과하면 이벤트 핸들러를 한 번만 호출되도록 하는 것
: 즉 이벤트를 그룹화하여 마지막에 한 번만 이벤트 핸들러가 호출되도록 하는 방식
: resize 이벤트 처리, 입력 필드 자동완성, 버튼 중복 클릭 방지 등에 사용 가능
- 스로틀은 무엇인가?
: 짧은 시간 간격으로 이벤트가 연속해서 발생하더라도 일정 시간 간격으로 이벤트 핸들러가 최대 한 번만 호출되도록 하는 것
: 즉 이벤트를 그룹화하여 일정 시간 단위로 이벤트 핸들러가 호출되도록 호출 주기를 만드는 방식
: scroll 이벤트 처리, 무한 스크롤 등에 사용 가능
- 자바스크립트는 비동기 처리를 어떻게 수행하는가?
- Ajax란 무엇인가?
: Asynchronous Javascript and XML의 줄임말로, 브라우저가 서버에게 데이터를 요청하고 서버가 응답한 데이터를 수신하여 웹 페이지를 동적으로 갱신하는 프로그래밍 방식
XMLHttpRequest
객체는 무엇인가?: Ajax를 수행하기 위한 기반, HTTP 비동기 통신을 위한 프로퍼티와 메서드 제공
- Ajax 등장 이전에 웹 페이지는 어떻게 렌더링되었는가?
: 완전한 HTML을 전송 받아서 웹 페이지 전체를 처음부터 다시 렌더링하는 방식
: 변경이 필요하지 않은 부분까지 포함하여 요청하기 때문에 불필요한 데이터 통신이 발생하고, 처음부터 다시 렌더링하므로 화면이 깜빡이는 현상이 발생한다는 단점이 있음
- Ajax가 가지는 장점은 무엇인가?
: 필요한 데이터만 전송 받기 때문에 불필요한 데이터 통신이 발생하지 않고, 변경할 필요가 없는 부분은 렌더링하지 않아서 화면이 깜빡이는 현상을 개선할 수 있음
- JSON은 무엇인가?
: 클라이언트와 서버 간의 HTTP 통신을 위한 텍스트 데이터 포맷으로, 대부분의 프로그래밍 언어에서 사용할 수 있음
- JSON 사용 시 주의점은 무엇인가?
: 키는 반드시 큰따옴표(
" "
)로 감싸야 함
- 직렬화와 역직렬화는 무엇인가?
: 직렬화는
stringify
메서드를 사용할 때 객체를 문자열로 바꾸는 것을 의미함
: 역직렬화는parse
메서드를 사용할 때 문자열을 객체로 바꾸는 것을 의미함
- HTTP 요청을 전송하려면 어떤 과정을 거쳐야 하는가?
(1)XMLHttpRequest
의open
메서드로 HTTP 요청을 초기화함
(2) HTTP 요청 메서드의 종류에 따라setRequestHeader
메서드로 특정 HTTP 요청의 헤더 값 설정
(3)XMLHttpReqeust
의send
메서드로 HTTP 요청을 전송함
- 페이로드는 무엇인가?
: HTTP 요청 시 body에 담아서 전송할 데이터
:send
메서드의 인수로 페이로드를 전달할 수 있는데, 이때 페이로드가 객체라면 반드시stringify
메서드로 직렬화 과정을 거쳐야 함
setRequestHeader
메서드를 사용하는 이유는 무엇인가?: HTTP 요청 시 서버로 전달한 데이터의 MIME 타입을 지정하고, 서버가 응답할 데이터의 MIME 타입을 지정하기 위해서
- REST는 무엇인가?
: REpresentational State Transfer의 줄임말로, HTTP의 장점을 최대한 활용할 수 있는 아키텍처
: REST를 토대로 HTTP 프로토콜을 의도에 맞게 디자인할 수 있음
- RESTful이란 무엇인가?
: REST의 기본 원칙을 지킨 서비스 디자인
- REST API는 무엇인가?
: REST를 기반으로 서비스 API를 구현한 것
- REST API의 구성 요소에는 무엇이 있고, 각각 어떻게 표현하는가?
: URI로 표현하는 자원, HTTP 요청 메서드로 표현하는 행위, 페이로드로 표현하는 표현(행위에 대한 구체적 내용)
- REST에 따르면 HTTP 요청에 작성하는 URI는 어떻게 작성해야 하는가?
: 리소스를 표현하는 데 중점을 두어야 함, 행위에 대한 내용이 들어가면 안 됨
- REST를 준수하는 HTTP 요청 메서드의 종류에는 무엇이 있고, 각각 어떤 역할을 하는가?
: 리소스를 취득할 때 사용하는 GET, 리소스를 생성할 때 사용하는 POST, 리소스를 전체 교체할 때 사용하는 PUT, 리소스를 부분적으로 수정할 때 사용하는 PATCH, 리소스를 삭제할 때 사용하는 DELETE