본문 바로가기
Java/Spring Boot

[Spring Boot] Boolean 타입이 계속 호출이 안될 때(@Getter)

by 깨준 2025. 2. 27.

Lombok 사용 시 boolean 필드 Getter 문제 해결하기

Spring Boot 프로젝트에서 Lombok의 @Getter를 사용하면 자동으로 getter 메서드가 생성된다. 하지만 boolean 타입 필드에서는 예상과 다르게 동작할 수 있다.

문제 상황

@Getter
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class MedicineCreateRequestDTO {
    private boolean isPrescribed;
}

위처럼 boolean 타입 필드에 대해 @Getter를 적용했고
서비스에서

requestDto.isPrescribed()

작성하고 postman에서 json형식으로

"isPrescribed": true,

이렇게 작성하여 호출하면 isPrescribed가 false가 나오는 오류가 계속 발생했다.

원인

  • Lombok은 boolean 필드의 경우 기본적으로 is필드명() 형태의 getter를 생성한다.
  • 즉, getIsPrescribed()가 아닌 isIsPrescribed() 가 자동으로 생성된다.
  • 따라서 isPrescribed를 가져올 때 getIsPrescribed()를 찾으면 오류가 발생합니다.

해결 방법

필드명을 is 접두사를 제거한 형태로 유지하고, isPrescribed()를 사용한다.

 
 

결론

  • boolean 필드명은 접두사(is)를 붙이지 않는다!
  • Lombok은 boolean 필드에 대해 is필드명() 형태의 getter를 생성한다!
  • 이를 해결하려면 isPrescribed()를 호출하거나, 직접 getPrescribed() 메서드를 추가해야 한다.

=> @Getter를 사용할거면 필드명은 prescribed / 호출은 isPrescribed() 사용하기!