스팟 조회시 애견카페, 동물병원, 반려동물미용 3가지 키워드로만 고정되어 검색되어지고,불필요한 호출을 줄여 api 호출 빈도를 줄이고 해당 데이터가 실시간 성이 짙은 값이 아니라면 매번 요청을 보내는 것보다는 캐싱된 값을 응답하는 것이 효율적이라고 판단하여 성능이 빠르고, 모듈을 적절하게 형태로 구현이 가능하고 비교적 개발 난이도가 낮은 redis를 사용했음
Redis 사용시 Serializer/Deserializer 문제
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.data.redis.serializer.SerializationException: Could not read JSON:Cannot construct instance of com.sparta.wuzuzu.domain.spot.dto.response.SpotAddressResponseKaKao
(no Creators, like default constructor, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
스프링에서 Redis으로 캐시를 적용한 뒤 테스트하는 과정에서 발생했던 에러다. Redis에 데이터를 저장하는 것까지는 redis-cli
를 통해 처리됐음을 확인할 수 있었으나 캐싱된 데이터를 스프링으로 가져오는 과정에서 발생한 문제다. 즉, 직렬화(serialize)는 잘됐으나 역직렬화(deserialize)가 되질 않았음.