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를 쓰지 않는다는 것. 이거 하나면 됐다.

블로그 이미지

김생선

세상의 모든것을 어장관리

,

인텔리제이를 쓰는 것도 처음인데 스프링 부트 또한 처음이다. 뭐가 뭔지 모르겠지만 일단 에러부터 잡아보자.

전임자에게 이 오류에 대해 물어보니 롬복이 설치되지 않았다고 한다. 롬복을 대강 찾아보니 getter/setter를 자동화해주는 기능(?)같다. 스프링부트는 나중에 다시 별도로 공부하기로 하고, 일단 인텔리제이에서 롬북 플러그인을 설치해보고자 한다.


에러가 나는 부분. Spring Framework 에서는 getter/setter가 별도로 있는데 이쪽엔 없다. Spring Boot는 많은게 없다. tiles라거나 뭐 별별게 다 없다. 없어서 간편하고 개발도 편하고 손이 덜가는 것 같은데, 중요한건 공부를 하지 않으면 찾아가는 것이 아예 불가할 정도. 역시 장단점이 있는듯.


인텔리제이 메인에서 File -> Setting 을 클릭한다. Setting 으로 접근하는 단축키는 Ctrl+Alt+S 이다.


해당 창에서 Plugins 를 선택하고, 검색창에서 lombok을 입력한 후 검색한다.

당연히 설치된 플러그인이 없으니 검색이 안될 것이고, Search in repositories 를 클릭한다.


Broesw Repositories 창에서 Lombok Plugin을 선택, 오른쪽의 초록색 install을 클릭한다.

서드파티 플러그인 경고창에서 Accept를 클릭한다. 


설치가 다 되면 원활한 적용을 위해 리스타트를 한다.

그럼 대충 끝.


에러 뿜뿜이던 모습이 사라졌다. 일단 이걸로 고비 넘김. 

블로그 이미지

김생선

세상의 모든것을 어장관리

,