개발을 하다가 다음과 같은
응답 객체로 응답을 받았는데
내 예상과 달리 응답에 온 변수명이
isSuccess → success로 변경되어 온 것을 발견할 수 있었다.
위는 내가 만든 응답 객체이다.
위는 BaseResponse를 상속해서 만든 ErrorResponse이다.
이러한 문제가 발생한 이유는
자바빈 규약 때문이다.
자바빈 규약에 따르면
boolean의 getter는 is변수명() 과 같이 is로 시작하고
Boolean의 경우 getter는 get변수명() 과 같이 get으로 시작한다.
즉 @Getter 를 사용하여 getter를 생성한다면 자바빈 규칙에 따라
boolean형 변수는 is변수명() 으로 getter를 생성한다.
여기서 변수명이 is로 시작하는 경우 중복이 되므로 자동으로 변수명을
is를 제외한 변수명으로 변형시킨다.
이러한 이유로 응답이 isSuccess가 아닌 success가 온 것이다.
이를 해결하기 위해서는 두가지 방법이 있다.
1. 변수명 변경하기
is로 시작하는 변수명을 변경한다.
일반적으로 변수명은 명사로 네이밍하는 것이 좋다.
다만, 나는 팀원들과 변수명을 만들면서 isSuccess로 하자고 정했기 때문에
변수명을 변경할 수는 없었다.
2. 타입 변경하기
boolean형에서 Boolean으로 변경한다.
Boolean은 Getter를 get변수명 으로 생성하기 때문에 문제가 발생하지 않는다.
또한 자바는
원시 타입(boolean)에 Null을 넣을 수 없기 때문에
전체적으로 Wrapper Class(Boolean)를 사용하는 것이 좋다고 생각한다.
따라서 나는 타입을 변경하여 이 문제를 해결했다.
'Spring' 카테고리의 다른 글
Spring에서의 프로세스와 스레드 (0) | 2024.10.21 |
---|---|
Spring에서 @Async를 통한 비동기 처리하기 (0) | 2024.09.26 |
Spring에서의 동기, 비동기 (1) | 2024.09.26 |
java PageImpl에서 totalElements가 바뀌는 오류 해결 (0) | 2024.08.13 |
[개발 일상] Spring 공통 응답 만들기 (0) | 2024.08.13 |