반응형

RESTful API를 개발하다가 좀 멘붕에 오는 상황을 발견했다. postman으로 아무리 날려도 파라미터는 계속 false만 찍는 것이었다. 대략적으로 다음과 같았다.


1
2
3
4
private boolean isBusiness;     // 개인용 false / 법인용 true
private String userName;        // 개인용 - 사용자명 / 법인용 - 법인명
private String userSex;         // 개인용만 사용, 성별
private String userInfo;        // 개인용 - 사용자 태그 / 법인용 - 법인 태그
cs


로그는 다음과 같다.

2020-05-13 18:30:47.801  INFO 17740 --- [nio-9988-exec-1] o.s.web.servlet.DispatcherServlet        : Completed initialization in 5 ms

[사용자정보] UserIssueVO: UserIssueVO(isBusiness=false, userName=TEST, userSex=M, userInfo=TEST_tag)


파라미터를 바꾸면 잘되고 해서 대체 뭐가 잘못인가. 대충 30분 정도 고민하다가 개발자들의 꿈과 희망, 스택오버플로우에서 검색하니 다음과 같은 링크가 뜬다.


JSON Post request for boolean field sends false by default

https://stackoverflow.com/questions/21913955/json-post-request-for-boolean-field-sends-false-by-default


그래서 찾아보니, lombok과 같은 어플리케이션으로 getter/setter를 생성할 때에는 boolean 필드이름에 'is'를 쓰지 않는 것이 맞다고 한다. jackson의 java bean 네이밍 규칙이라고.

어쩐지 이후 로직을 짤 때 세팅하는 쪽에서 isBusiness로만 찍히기에 조금 의아하긴 했다.


여튼 한가지 알아둘 점은 lombok 사용시 boolean 필드명은 is를 쓰지 않는다는 것. 이거 하나면 됐다.

반응형
블로그 이미지

김생선

세상의 모든것을 어장관리

,