완벽하지는 않지만, cache를 써보았습니다.

실습환경

google apps script
kakao 로컬 api
fetch method
CacheService in google apps script

cache를 써본 이유

  1. 데이터 중복 요청 방지
  2. 한 번에 170만 개의 데이터를 받아 오는 데, 빠른 요청을 통해 데이터를 효율적으로 관리하기 위하여
  3. 데이터를 다시 요청할 때, 데이터에 변동이 생긴 경우에만 새로운 데이터를 받아올 수 있도록 하기 위하여

cache를 사용하기 위한 테스트 코드

const mapEnum = {
    API_KEY: 'KAKAO_API_KEY',
    x: 127.0605,
    y: 37.5114,
    radius: 600,
    category_group_code: 'FD6',
    sort: 'distance',
    query: '맛집'
}

const options = {
  'method': 'get',
  'headers': {
  'Content-Type': 'application/json;charset=UTF-8',
  'Authorization': `KakaoAK ${mapEnum.API_KEY}`
  }
}

const cache = CacheService.getScriptCache()
let cachedData = cache.get("dataKey")

const getStoreInfoByKakao = () => {
	if(!cachedData){
    let result = UrlFetchApp.fetch(`https://dapi.kakao.com/v2/local/search/keyword.json?x=${mapEnum.x}&y=${mapEnum.y}&radius=${mapEnum.radius}&category_group_code=${mapEnum.category_group_code}&sort=${mapEnum.sort}&query=${mapEnum.query}`, options)
    
  result = JSON.parse(result.getContentText())
  cache.put("dataKey, result, 3600);
	}
  // Do something with cahedData
}

cache를 해놓은 데이터가 잘 불러와 지는 것도 확인 완료. 무조건적인 cache의 사용보다는 어떤 경우에, 그리고 왜 사용하는 게 좋은지에 대한 나만의 판단과 근거를 가지고 사용해야 겠다.

profile
백엔드 개발자

0개의 댓글