API 개발 도중 특이한 현상을 마주했다. 아래와 같이 MenuEntity가 있다고 가정했을 때, Menu를 조회하는 요청을 보냈더니 응답이 이상하게 왔다.
// Menu.java
public class Menu {
private String id;
private String title;
private boolean isUsed;
}
# 응답
{
id: 1,
title: test_menu,
used: true
}
isUsed 속성의 이름에서 is가 빠져서 왔다. 이 뿐만이 아니라 다른 속성들도 is로 시작한다면 is가 빠져서 왔다.
정확한 원인은 알 수 없으나 JSON 직렬화 과정에서 속성명이 is로 시작한다면 해당 부분을 빼는 것 같았다.
그래서 is로 시작하는 속성명은 @JsonProperty 어노테이션을 붙여서 직렬화될 때 속성명을 직접 지정해줬다.
public class Menu {
private String id;
private String title;
@JsonProperty("isUsed")
private boolean isUsed;
}
# 응답
{
id: 1,
title: test_menu,
isUsed: true
}
수정 후 정상작동 확인 되었다.