=> 위치 기반 추천 병원을 조회하는 API를 호출할때 매번 카카오 모빌리티 API 호출과 실시간 병상 데이터 웹 크롤링을 진행하여, 이를 개선하고자 캐싱을 사용하였다.
아무래도 주제가 주제이니만큼 환자의 실시간 위치를 반영한 병원 조회 결과의 정확도가 너무 떨어질 수는 없을 것 같아, 병원을 처음 조회하고 60초 이내고 다시 재요청을 하는 경우만 (무분별한 새로고침에 대비하는 방향으로) cached된 데이터를 불러오는 방식을 생각하였다. Redis에 증상 보고서 id를 key값으로, 병원을 조회한 결과를 value로 넣고 TTL을 60초로 설정해주었다.
import { CacheModule } from '@nestjs/cache-manager';
import * as redisStore from 'cache-manager-ioredis';
@Module({
imports: [
TypeOrmModule.forFeature([Hospitals]),
CacheModule.register({
name: 'redis-cache',
store: redisStore,
host: 'localhost',
port: 6379,
ttl: 60,
}),
],
// ... 기타
})
export class HospitalsModule {}