자바스크립트 Local Storage를 이용한 캐싱 기능 구현

캐싱은 웹 개발에서 성능을 향상시키기 위한 중요한 기능입니다. 웹 페이지나 애플리케이션은 종종 동일한 데이터를 반복해서 로드해야 하는데, 이때 캐싱을 통해 데이터를 미리 저장하고 재사용함으로써 로딩 시간을 줄일 수 있습니다.

자바스크립트에서는 Local Storage라는 기능을 제공하여 웹 브라우저의 로컬에 데이터를 저장할 수 있습니다. 이 기능을 이용하여 캐싱 기능을 구현해보겠습니다.

Local Storage 사용법

Local Storage는 localStorage 객체를 통해 접근할 수 있습니다. 데이터는 “키-값” 형태로 저장되며, 모든 값은 문자열로 저장됩니다.

// 데이터 저장
localStorage.setItem('key', 'value');

// 데이터 가져오기
const value = localStorage.getItem('key');

// 데이터 삭제
localStorage.removeItem('key');

캐싱 기능 구현

캐싱을 구현하기 위해서는 먼저 데이터를 가져올 때 캐시에 저장된 값이 있는지 확인해야 합니다. 이후에 캐시에 저장된 값이 있는 경우 해당 값을 반환하고, 없는 경우 서버에서 데이터를 가져와 캐시에 저장합니다.

function getDataFromCache(key) {
  const cacheData = localStorage.getItem(key);
  
  if (cacheData) {
    return JSON.parse(cacheData); // 문자열로 저장된 값을 객체로 변환
  }
  
  return null;
}

function getDataFromServer(key) {
  // 서버에서 데이터 가져오는 로직 작성
}

function getData(key) {
  const cachedData = getDataFromCache(key);
  
  if (cachedData) {
    return cachedData;
  }
  
  const serverData = getDataFromServer(key);
  
  if (serverData) {
    localStorage.setItem(key, JSON.stringify(serverData)); // 객체를 문자열로 변환하여 저장
    return serverData;
  }
  
  return null;
}

위의 예시 코드는 getData 함수를 통해 데이터를 가져오는 과정에서 캐싱을 처리하는 방법을 보여줍니다. getDataFromCache 함수는 로컬 스토리지에서 해당 키의 값을 가져오고, getDataFromServer 함수는 서버에서 데이터를 가져오는 로직을 작성해야 합니다.

캐싱 사용 시 주의사항

#javascript #로컬스토리지