핵심 요약
우아한형제들은 Spring Cache + Redis에서 record 직렬화 시 발생하는 역직렬화 실패를 해결하기 위해, 레코드에도 타입 정보를 포함하도록 Jackson 다형성 처리를 커스터마이즈했습니다.
구현 방법
- RecordSupportingTypeResolver 생성: 레코드 타입일 때도 타입 정보(@class) 추가
- ObjectMapper에 설정 적용: setDefaultTyping으로 기본 타입 핸들링 확장
- 실제 캐시 시나리오에서 역직렬화 정상 동작 확인
주요 결과
- 캐시 저장/조회 시 InvalidTypeIdException 미발생, 안정적 역직렬화 확보
- Wrapper/추가 어노테이션 없이 레코드 사용 가능
- 데이터 포맷 변경 시 호환성 관리 필요성은 유지
