cbw1030
기록하는 공간
cbw1030
전체 방문자
오늘
어제
  • 전체보기 (101)
    • Programming (99)
      • Java (19)
      • Servlet (10)
      • Spring Framework (13)
      • Javascript (22)
      • AWS (2)
      • 네트워크 (8)
      • 데이터베이스 (13)
      • 리눅스 (3)
      • 블록체인 (7)
      • 용어 정리 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Brightics
  • web
  • 브라이틱스 스튜디오
  • 크롤링
  • 차원축소
  • Brightics AI
  • 데이터분석
  • javascript
  • 머신러닝
  • 삼성SDS 브라이틱스
  • react
  • 인공지능
  • 브라이틱스 튜토리얼
  • 브라이틱스 스튜디오 사용법
  • 데이터 사이언스
  • 삼성SDS
  • beautifulsoup
  • Brightics Studio
  • 브라이틱스
  • 생활코딩

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
cbw1030

기록하는 공간

Programming/Javascript

fetch API를 사용하여 코드 라인 수를 줄여보자

2021. 5. 13. 00:04
반응형

fetch API

ajax를 사용하는 여러 가지 방법

ajax를 사용하는 방법은 여러 가지가 있습니다.

  1. XMLHttpRequest 객체
  2. fetch api
  3. jQuery
  4. axios 라이브러리

이번 포스팅에서는 1, 2번을 비교해보면서 fetch api의 장점을 알아보겠습니다.

XMLHttpRequest


첫 번째로 가장 고전적인으로 사용하는 방식입니다.
onreadystatechange을 사용했습니다.

let xhr = new XMLHttpRequest();

xhr.onreadystatechange = () => {
    if (xhr.readyState === 4 && xhr.status === 200) {
        let response = JSON.parse(xhr.response);
        console.log(response);
    }
};

xhr.open('get', 'https://yts.mx/api/v2/list_movies.json');
xhr.send();

https://yts.mx 이곳은 json 객체를 제공해주는 괜찮은 사이트입니다.

위 코드를 실행하면 콘솔에 다음과 같이 출력됩니다.

위의 코드를 그나마 편하게 바꾸면 아래처럼도 가능합니다.

let xhr = new XMLHttpRequest();

xhr.onload = () => {
    let response = JSON.parse(xhr.response);
        console.log(response);
}

xhr.open('get', 'https://yts.mx/api/v2/list_movies.json');
xhr.send();

fetch

이번에는 fetch api를 사용해보겠습니다.

fetch('https://yts.mx/api/v2/list_movies.json')
    .then((response) => response.json())
    .then((json) => {
        console.log(json);
    });

출력 결과는 위와 동일합니다.

fetch는 Promise 기반입니다. 그래서 then을 사용하여 서버로부터 받은 데이터를 활용할 수 있습니다.

첫 번째 줄에서는 fetch를 통해 웹 브라우저에게 'https://yts.mx/api/v2/list_movies.json' 여기서 데이터를 받아와줘! 라는 요청을 합니다.
이후 데이터를 정상적으로 받아오면 .then()에 걸려 콜백함수가 실행됩니다.
에로우 함수를 사용했기 때문에 response.json()이 곧바로 리턴되어 다음 .then에 걸리게 됩니다.

확실히 fetch api를 사용하는 것이 XMLHttpRequest 객체를 사용하는 것보다 코드의 간결성, 가독성 측면에서 유리한 것 같습니다.

반응형
저작자표시 (새창열림)

'Programming > Javascript' 카테고리의 다른 글

[Javascript] 이벤트 루프 동작과정에 대한 이해  (0) 2021.07.25
[Javascript] ES6 async & await  (0) 2021.01.10
[Javascript] ES6 export, import  (0) 2021.01.08
[Javascript] ES6 Promise를 통해 콜백지옥 문제를 해결해보자  (0) 2021.01.06
[Javascript] ES6 Destructuring 문법에 대해 알아보자  (0) 2020.12.30
    'Programming/Javascript' 카테고리의 다른 글
    • [Javascript] 이벤트 루프 동작과정에 대한 이해
    • [Javascript] ES6 async & await
    • [Javascript] ES6 export, import
    • [Javascript] ES6 Promise를 통해 콜백지옥 문제를 해결해보자
    cbw1030
    cbw1030

    티스토리툴바