자바스크립트 fetch API를 사용한 웹 사이트 리팩토링

소개

이번 포스트에서는 자바스크립트 fetch API를 사용하여 웹 사이트를 리팩토링하는 방법에 대해 알아보겠습니다. fetch API는 브라우저에서 제공하는 강력한 웹 API 중 하나로, 네트워크 요청을 보내고 응답을 처리하는 기능을 제공합니다. 이를 활용하여 기존의 웹 사이트를 더욱 효율적으로 리팩토링할 수 있습니다.

기존 코드 분석

먼저, 리팩토링할 웹 사이트의 기존 코드를 분석해보겠습니다. 아래는 예시로 간단한 AJAX 요청을 보내는 코드입니다.

function fetchData() {
  const xhr = new XMLHttpRequest();
  
  xhr.onload = function() {
    if(xhr.status === 200) {
      const data = JSON.parse(xhr.responseText);
      // 데이터를 처리하는 로직
    }
    else {
      // 오류 처리 로직
    }
  };
  
  xhr.open('GET', 'https://api.example.com/data', true);
  xhr.send();
}

위 코드에서는 XMLHttpRequest 객체를 사용하여 네트워크 요청을 처리하고 있습니다. 코드에는 불필요한 반복과 오류 처리가 혼재되어 있으며, 가독성도 떨어지는 문제가 있습니다.

fetch API를 활용한 리팩토링

이제 fetch API를 사용하여 위 코드를 리팩토링해보겠습니다. fetch API를 사용하면 네트워크 요청을 보내는 부분이 간소화되고, Promise 기반의 구문을 사용하여 비동기 코드를 더욱 명확하게 작성할 수 있습니다.

function fetchData() {
  fetch('https://api.example.com/data')
    .then(response => {
      if (response.ok) {
        return response.json();
      }
      throw new Error('Network response was not ok.');
    })
    .then(data => {
      // 데이터를 처리하는 로직
    })
    .catch(error => {
      // 오류 처리 로직
    });
}

위 코드에서는 fetch('https://api.example.com/data')를 통해 네트워크 요청을 보내고, then() 메소드를 사용하여 성공적인 응답 처리와 오류 처리를 분리하였습니다. 응답 상태 코드를 확인하여 성공적인 응답인 경우 response.json()을 호출하여 JSON 형태의 데이터로 변환합니다. 그리고 다음 then() 메소드에서 이 데이터를 처리하는 로직을 작성할 수 있습니다. 오류 처리는 catch() 메소드를 통해 단순하게 처리할 수 있습니다.

요약

이번 포스트에서는 자바스크립트의 fetch API를 사용하여 웹 사이트를 리팩토링하는 방법에 대해 알아보았습니다. 기존의 XMLHttpRequest를 사용한 코드를 fetch API를 사용한 코드로 개선하면, 코드의 간결성과 가독성을 향상시킬 수 있습니다. fetch API는 현대적인 웹 개발에서 필수적인 도구로, 네트워크 요청 처리를 더욱 효율적으로 할 수 있게 해줍니다.