[javascript] 자바스크립트의 비동기 제어와 Fetch API 활용 방법

자바스크립트에서 비동기적인 작업을 처리하는 것은 매우 중요합니다. 이러한 작업은 네트워크 요청과 데이터베이스 쿼리 등의 IO 작업에 유용합니다. 대표적인 비동기 제어 방법 중 하나는 Promise입니다. Promise는 비동기 작업이 끝날 때까지 기다리는 객체로, 성공 또는 실패와 같은 결과를 처리할 수 있습니다.

Fetch API를 사용한 데이터 요청

Fetch API는 네트워크 요청을 간편하게 처리할 수 있는 방법입니다. 다음은 Fetch API를 사용하여 데이터를 가져올 때의 간단한 예제입니다.

fetch('https://api.example.com/data')
  .then(response => {
    if (!response.ok) {
      throw new Error('Network response was not ok');
    }
    return response.json();
  })
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error('Error fetching data:', error);
  });

위 예제에서는 fetch 함수를 사용하여 서버에서 데이터를 요청합니다. 이후 then 메서드를 사용하여 응답을 처리하고, 최종적으로 catch 메서드를 사용하여 오류를 처리합니다.

Async/Await를 이용한 비동기 제어

ES2017부터 도입된 async/await는 Promise를 더 편리하게 다룰 수 있게 해줍니다. 이 두 키워드를 사용하면 비동기 코드를 동기식으로 작성할 수 있어 가독성이 좋아집니다.

다음은 async/await를 사용한 Fetch API 예제입니다.

async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    if (!response.ok) {
      throw new Error('Network response was not ok');
    }
    const data = await response.json();
    console.log(data);
  } catch (error) {
    console.error('Error fetching data:', error);
  }
}

위 코드에서는 async 키워드로 정의된 fetchData 함수 안에서 await를 사용하여 Fetch API를 이용해 데이터를 가져오고 처리합니다.

비동기 작업을 처리할 때에는 Fetch API와 Promise, 그리고 async/await를 사용하여 가독성 좋고 유지보수가 용이한 코드를 작성할 수 있습니다.

참고 자료