페이지 데이터 캐싱할때 질문
160
작성한 질문수 28
페이지 데이터 캐싱할 때, 아래처럼 컨텐트만 보내는 게아니라
@Cacheable(cacheNames = "getBoards",key = "'boards:page:'+ #page + ':size:' + #size", cacheManager = "boardCacheManager")
public List<Board> getBoards(int page, int size) {
Pageable pageable = PageRequest.of(page - 1, size);
Page<Board> pageOfBoards = boardRepository.findAllByOrderByCreatedAtDesc(pageable);
return pageOfBoards.getContent();
}
아래처럼 Page 객체 자체를 보내야,실제로 페이징 처리가 가능할텐데요
@Cacheable(cacheNames = "getBoards",key = "'boards:page:'+ #page + ':size:' + #size", cacheManager = "boardCacheManager")
public Page<Board> getBoards(int page, int size) {
Pageable pageable = PageRequest.of(page - 1, size);
Page<Board> pageOfBoards = boardRepository.findAllByOrderByCreatedAtDesc(pageable);
return pageOfBoards;
}이렇게 하면, Page 역직렬화시 오류가 발생하는데, 이렇게 Page<Board>를 보내줘야 할 때는 어떻게 보내야할지 모르겠습니다. 정확히 캐싱의 역직렬화가 어디까지 가능한지 파악이 잘 안되서..
gpt한테 물어보니, Page 같은 특수한 객체는 역직렬화 방법이 없고, db에서 찾은 page를 분해해서 이걸 다시 dto로 감싸서 보내라는데, 이런 방식밖에 없는건지.. Page 데이터 보내실때 어떻게 보내시는지 궁금합니다.
답변 1
1
안녕하세요 donkey님! 좋은 질문 해주셨네요:)
응답의 형태로 페이지의 컨텐트가 아닌 Page 객체를 통째로 보내고 싶으신 게 맞으실까요~??
만약 이게 맞으시다면 ChatGpt가 얘기해준 것처럼 응답을 위한 DTO 객체를 따로 만들 것 같습니다!
왜냐면 말씀해주신 대로 Page 같은 객체로 응답할 수 없는 경우가 있습니다!
왜 역직렬화로 작동을 하지 않는 지에 대한 디버깅은
아래 설정 코드의 라이브러리를 기준으로 검색해보시면 좋을 것 같습니다!

다른 방법으로는 '디버깅 기능'을 활용해서 어떤 부분의 로직 때문에 역직렬화가 안 되는 지
분석해보는 방법도 있을 것 같네요~!!
이 외로 궁금한 점 생기시면 언제든 질문 남겨주세요~~
redis VS valkey
0
200
2
스프링 부트에 Redis 적용하기 질문
0
97
2
redis 적용을 위한 service 반환값
0
62
2
redis 사용으로 인한 비용
0
240
2
Redis를 적용했음에도 불구하고 조회 성능의 큰 차이가 없고 오히려 더 안좋은 조회속도를 보이는 것 같습니다.
0
144
3
Elastic Cache 에러
0
85
2
Elastic
0
74
2
AWS 리소스 삭제에 관하여
0
74
2
ec2안에서 pull 받는 이유가 뭔가요 ?
0
83
2
Nest.js + Redis 구현 문제
0
677
3
데이터를 안가져와요
0
72
2
Spring Boot 프로젝트에 Redis 셋팅 추가하기에서 13분 질문있습니다.
0
188
2
레디스 환경 셋팅 질문있습니다.
0
99
2
엘라스틱 서치와 레디스의 차이점을 알고 싶습니다.
0
262
2
-parameters
0
128
2
Redis vs Memcached
0
230
2
redis 를 compose 로 묶어준 이유가 궁금합니다.
0
155
2
k6의 결과 해석
0
257
2
Jackson2JsonRedisSerializer에 대한 궁금증
0
233
1
사용된 어노테이션에 관한 질문
0
146
1
Redis 사용 방식에 대해서 질문 있습니다
0
154
1
aws elasticcache redis 툴 접속.
0
219
1
Redis를 사용하는 이유
0
709
2
로컬에서 docker compose 명령어 실행 시
0
275
2





