인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

YEN님의 프로필 이미지
YEN

작성한 질문수

비전공자도 이해할 수 있는 Redis 입문/실전 (조회 성능 최적화편)

Spring Boot 프로젝트에 Redis 셋팅 추가하기

Jackson2JsonRedisSerializer에 대한 궁금증

작성

·

9

0

GenericJackson2JsonRedisSerializer를 사용할 때 저장되는 캐싱 데이터는 다음과 같았습니다.

"[{\"@class\":\"org.example.package..\",\"id\":\"123984\",\"title\":\"title0123984\",...,

강의상에 나온 데이터 순서?? 와는 조금 다르게 package 다음에 @class 이후 데이터가 저장되는 구조가 나오는 것을 확인했습니다.

이때 캐싱된 데이터를 조회하려고 하는데

com.fasterxml.jackson.databind.exc.MismatchedInputException: Unexpected token (START_OBJECT), expected VALUE_STRING: need String, Number of Boolean value that contains type id (for subtype of java.lang.Object)

에러가 발생했습니다.

너무 궁금해서 GenericJackson2JsonRedisSerializer에 대해서 알아보고 있는데, 여전히 에러가 발생하는 이유를 잘 모르겠습니다ㅜㅜ

데이터가 캐싱되어서 저장될 때 구조가 다르게 들어가는 이유가 궁금합니다

 

 

 

아 물론 강의 후반부처럼 Jackson2JsonRedisSerializer를 사용했을 때는 정상적으로 동작했습니다.

답변 1

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 YEN님! 좋은 질문 해주셨네요ㅎㅎ

 

직렬화, 역직렬화 클래스마다 각기 다른 특징을 가지고 있습니다.

GenericJackson2JsonRedisSerializer

@class의 key 값이 추가로 들어가는 방식으로 구성되어 있기 때문입니다.

 

ChatGPT의 답변이 꽤나 정확하고 디테일해서 ChatGPT 답변도 같이 첨부드릴게요:)

https://chatgpt.com/share/676b45ae-fc64-8003-b383-88a587fd09d5

 

혹시 위 설명 읽어보시고 이해 안 되시는 점 있으시면 추가로 또 질문 남겨주세요~!!

YEN님의 프로필 이미지
YEN

작성한 질문수

질문하기