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
반응형