Java

boolean이랑 Boolean 뭐가 다를까? — Swagger 쓰다가 궁금해서 정리함

ZZJJing 2025. 4. 21. 13:31
반응형

 

Swagger DTO 만들다가 boolean이랑 Boolean 차이 때문에 해맨적이 있다. 
당연히 비슷한 줄 알았는데, 막상 써보니까 엄청 달랐다.

null 포함 여부가 엄청 중요함!


✅ boolean

  • primitive 타입.
  • 무조건 true / false.
  • null 불가.
  • Swagger에서 nullable=false로 뜸.
  • 값 안 주면 false가 기본값.
  • 단순한 상태 표현할 땐 이걸로 충분함.

✅ Boolean

  • Wrapper 타입.
  • true / false / null 가능.
  • Swagger에서 nullable=true 설정됨.
  • 값이 있을 수도 없을 수도 있을 때 유용함.
  • null 체크 안 하면 NPE 터짐.
  • 그래서 Boolean.TRUE.equals(값) 이런 식으로 체크하는 게 안전.

실제 사용 예

public class UserDTO { private boolean isActive; // false 기본값, null 불가 }
public class UserDTO { private Boolean isActive; // true / false / null 가능 }

 

상황추천 타입

항상 값이 있어야 하는 경우 boolean
값이 없을 수도 있는 경우 (nullable) Boolean
DTO/Swagger에서 null 허용해야 할 때 Boolean
Boolean 값을 비교할 때 Boolean.TRUE.equals(value) 사용

 


결론

  • 값이 꼭 있어야 하면 boolean
  • 값이 없어도 되면 Boolean  (null 허용)
  • Swagger에선 거의 무조건 Boolean 써야 깔끔함
  • 비교할 땐 Boolean.TRUE.equals(값) 습관들이기
728x90
반응형