[220831] 오늘의 배움(TIL) - JavaScript

💛 nalsae·2022년 8월 31일
1

📚 오늘의 배움(TIL)

목록 보기
38/84
post-thumbnail

🔶 JavaScript

  • 호출 스케줄링이란 무엇인가?

: 타이머 함수를 사용하여 일정 시간이 경과된 이후에 함수 호출을 예약하는 것

  • 자바스크립트의 타이머 함수에는 무엇이 있고, 각각 어떤 특징이 있는가?

: setTimeoutsetInterval, 두 함수 모두 반환 값으로 타이머를 반환함
: setTimeout의 콜백 함수는 인수로 전달한 시간이 지나고 나서 딱 한 번만 호출되지만, setInterval의 콜백 함수는 인수로 전달한 시간이 지날 때마다 반복적으로 호출

  • 자바스크립트의 타이머 함수의 반환 값은 자바스크립트 실행 환경에 따라 어떤 차이가 있는가?

: 타이머 함수는 생성된 타이머를 식별할 수 있는 고유한 타이머 id를 공통적으로 반환하는데, 브라우저 환경에서는 타이머 id의 값이 숫자이고 Node.js 환경에서는 타이머 id의 값이 객체

  • 호출 스케줄링을 취소하려면 어떻게 해야 하는가?

: clearTimeout, clearInterval 함수를 사용하여 생성된 타이머를 취소할 수 있음

  • 디바운스는 무엇이고, 언제 사용하는가?

: 짧은 시간 간격으로 이벤트가 연속해서 발생할 때는 이벤트 핸들러를 호출하지 않다가, 일정 시간이 경과하면 이벤트 핸들러를 한 번만 호출되도록 하는 것
: 즉 이벤트를 그룹화하여 마지막에 한 번만 이벤트 핸들러가 호출되도록 하는 방식
: resize 이벤트 처리, 입력 필드 자동완성, 버튼 중복 클릭 방지 등에 사용 가능

  • 스로틀은 무엇인가?

: 짧은 시간 간격으로 이벤트가 연속해서 발생하더라도 일정 시간 간격으로 이벤트 핸들러가 최대 한 번만 호출되도록 하는 것
: 즉 이벤트를 그룹화하여 일정 시간 단위로 이벤트 핸들러가 호출되도록 호출 주기를 만드는 방식
: scroll 이벤트 처리, 무한 스크롤 등에 사용 가능

  • 자바스크립트는 비동기 처리를 어떻게 수행하는가?

: https://velog.io/@nalsae/%EB%82%B4%EB%B3%B4%EC%A0%95JS-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%9D%98-%EB%8F%99%EC%9E%91-%EC%9B%90%EB%A6%AC

  • Ajax란 무엇인가?

: Asynchronous Javascript and XML의 줄임말로, 브라우저가 서버에게 데이터를 요청하고 서버가 응답한 데이터를 수신하여 웹 페이지를 동적으로 갱신하는 프로그래밍 방식

  • XMLHttpRequest 객체는 무엇인가?

: Ajax를 수행하기 위한 기반, HTTP 비동기 통신을 위한 프로퍼티와 메서드 제공

  • Ajax 등장 이전에 웹 페이지는 어떻게 렌더링되었는가?

: 완전한 HTML을 전송 받아서 웹 페이지 전체를 처음부터 다시 렌더링하는 방식
: 변경이 필요하지 않은 부분까지 포함하여 요청하기 때문에 불필요한 데이터 통신이 발생하고, 처음부터 다시 렌더링하므로 화면이 깜빡이는 현상이 발생한다는 단점이 있음

  • Ajax가 가지는 장점은 무엇인가?

: 필요한 데이터만 전송 받기 때문에 불필요한 데이터 통신이 발생하지 않고, 변경할 필요가 없는 부분은 렌더링하지 않아서 화면이 깜빡이는 현상을 개선할 수 있음

  • JSON은 무엇인가?

: 클라이언트와 서버 간의 HTTP 통신을 위한 텍스트 데이터 포맷으로, 대부분의 프로그래밍 언어에서 사용할 수 있음

  • JSON 사용 시 주의점은 무엇인가?

: 키는 반드시 큰따옴표(" ")로 감싸야 함

  • 직렬화와 역직렬화는 무엇인가?

: 직렬화는 stringify 메서드를 사용할 때 객체를 문자열로 바꾸는 것을 의미함
: 역직렬화는 parse 메서드를 사용할 때 문자열을 객체로 바꾸는 것을 의미함

  • HTTP 요청을 전송하려면 어떤 과정을 거쳐야 하는가?
    (1) XMLHttpRequestopen 메서드로 HTTP 요청을 초기화
    (2) HTTP 요청 메서드의 종류에 따라 setRequestHeader 메서드로 특정 HTTP 요청의 헤더 값 설정
    (3) XMLHttpReqeustsend 메서드로 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

profile
𝙸'𝚖 𝚊 𝚍𝚎𝚟𝚎𝚕𝚘𝚙𝚎𝚛 𝚝𝚛𝚢𝚒𝚗𝚐 𝚝𝚘 𝚜𝚝𝚞𝚍𝚢 𝚊𝚕𝚠𝚊𝚢𝚜. 🤔

0개의 댓글