문제

https://github.com/OPGG-HACKTHON/MusicWard-Server/issues/196

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: 
Cannot construct instance of 
`io.github.opgg.music_ward_server.dto.ranking.response.RankingMainResponse` 
(no Creators, like default constructor, exist): 
cannot deserialize from Object value (no delegate- or property-based Creator)

해결

InvalidDefinitionException JSON을 파싱한 결과를 전달할 적절한 생성자를 찾지 못했을 때 발생하는 에러이다.

Redis에서 캐시된 데이터를 다시 보내 줘야 할 경우, 내부적으로 해당 데이터를 재구성하는데, 이때 생성자가 사용된다. 하지만 해당 생성자가 없기 때문에 위와 같은 예외를 던진다.

@Getter
@NoArgsConstructor // 기본 생성자 추가
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
public class RankingMainResponse {
	...
}

기본 생성자를 추가하여 해결하였다.