자바스크립트 async/await와 캐싱

Javascript Logo

이번 블로그 포스트에서는 자바스크립트의 async/await와 캐싱에 대해 알아보겠습니다.

async/await란?

자바스크립트에서 비동기 작업을 처리하는 방법 중 하나로 async/await을 사용할 수 있습니다. async 키워드를 함수 앞에 붙여서 해당 함수를 비동기 함수로 정의할 수 있고, 비동기 작업을 기다리기 위해 await 키워드를 사용할 수 있습니다.

아래는 간단한 예제 코드입니다.

async function fetchData() {
  const response = await fetch('https://api.example.com/data');
  const data = await response.json();
  
  return data;
}

fetchData()
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error(error);
  });

위 코드에서 fetchData 함수는 async 키워드를 사용하여 비동기 함수로 정의되었습니다. 이 함수 내에서는 await 키워드를 사용하여 API 요청 결과를 기다리고, 받아온 데이터를 반환합니다.

fetchData 함수를 호출하면 then 메서드를 사용하여 결과 데이터를 처리하거나, catch 메서드를 사용하여 에러를 처리할 수 있습니다.

캐싱을 활용한 성능 최적화

비동기 작업을 수행하는 동안 같은 요청을 여러 번 보내는 경우 성능이 저하될 수 있습니다. 이런 경우 캐싱을 활용하여 성능을 최적화할 수 있습니다.

캐싱이란, 이전에 수행했던 작업의 결과를 저장해두고, 해당 작업을 다시 수행할 때 저장된 결과를 사용하는 것입니다.

const cache = {};

async function fetchDataWithCache(url) {
  if (cache[url]) {
    return cache[url];
  }
  
  const response = await fetch(url);
  const data = await response.json();

  cache[url] = data;

  return data;
}

fetchDataWithCache('https://api.example.com/data')
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error(error);
  });

fetchDataWithCache('https://api.example.com/data'); // 데이터를 캐싱된 결과로 바로 반환함

위 코드에서 fetchDataWithCache 함수는 캐시 오브젝트를 활용하여 데이터를 캐싱합니다. 이 함수를 호출할 때마다 이전에 저장된 데이터를 확인하고, 캐싱된 데이터가 있으면 바로 반환합니다. 그렇지 않으면 API 요청을 보내고 새로운 데이터를 캐싱합니다.

마무리

이번 포스트에서는 자바스크립트의 async/await와 캐싱에 대해 알아보았습니다. async/await를 사용하면 비동기 작업을 보다 간편하게 처리할 수 있고, 캐싱을 사용하여 성능을 최적화할 수 있습니다.

현대 웹 애플리케이션에서는 많은 비동기 작업이 수행되므로 async/await와 캐싱을 잘 활용하여 사용자 경험을 향상시키는 것이 중요합니다.