실습환경
google apps script
kakao 로컬 api
fetch method
CacheService in google apps script
cache를 써본 이유
- 데이터 중복 요청 방지
- 한 번에 170만 개의 데이터를 받아 오는 데, 빠른 요청을 통해 데이터를 효율적으로 관리하기 위하여
- 데이터를 다시 요청할 때, 데이터에 변동이 생긴 경우에만 새로운 데이터를 받아올 수 있도록 하기 위하여
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의 사용보다는 어떤 경우에, 그리고 왜 사용하는 게 좋은지에 대한 나만의 판단과 근거를 가지고 사용해야 겠다.