Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 다익스트라
- 싸피
- 자바
- JPA
- Union Find
- 그래프
- database
- 완전탐색
- 코딩테스트
- 그리디
- 알고리즘
- 유니온파인드
- Spring
- 코딩테스트실력진단
- 기본유형
- BFS
- 코테
- 부분수열의합2
- DP
- 코드트리
- DFS
- SWEA
- 알고리즘기본개념
- 완탐
- Java
- SSAFY
- 백준
- JUnit
- 트러블슈팅
- 다시보기
Archives
- Today
- Total
HwangHub
@NotNull, @NotEmpty, @NotBlank 중 뭘 쓸까 본문
게시글 수정 API를 작성하고 있었다.
게시글 수정을 구현하기 위해서는 다음 정보들을 한 번에 받는다.
AS-IS
public record PostUpdateRequestDto(
String title, // 제목
String body, // 내용
String thumbnail, // 썸네일
String category // 게시글 카테고리
) {
}
위 dto properties의 유효성 조건은 다음과 같다.
- 제목과 내용, 카테고리는 비어있으면 안된다.
- 썸네일은 없으면 기본 이미지로 제공된다.
이런 유효성 검사는 javax(or jakarta)에서 기본적으로 @NotNull, @NotEmpty, @NotBlank라는 어노테이션을 지원한다. 그렇다면 이 세가지 중 어떤걸 써야 할까?
영어를 한국어로 바꾸니까 모호하게 느껴졌어요.
문제는 내가 한국인이기 때문에 발생했다. empty와 blank가 내 기준에선 똑같은 의미처럼 느껴졌기 때문이다.
Not Empty? 비어있지 않다?! Not Blank...? 빈칸이 아니다?
결국 찾아보게 되었는데, 단순하게 아래와 같이 정리된다.
분류 | 내용 |
@NotNull | null인지 아닌지 체크 |
@NotEmpty | null인지 아닌지 && ""인지 아닌지 체크 |
@NotBlank | null인지 아닌지 && ""인지 아닌지 && " "와 같이 공백으로 채워진 문자열인지 |
이렇게 내용을 알고 보면 감이 바로 온다. 익숙해지면 자연스럽게 외워지겠지 싶은데, 당장 오랜만에 보니까 갑자기 헷갈려서 정리하게 되었다.
TO-BE
위 내용을 바탕으로 아래와 같이 정리하였다.
import javax.validation.constraints.NotBlank;
public record PostUpdateRequestDto(
@NotBlank
String title,
@NotBlank
String body,
String thumbnail,
@NotBlank
String category
) {
}
'DEV-STUDY > Java' 카테고리의 다른 글
게시글 body(문자열)에 이미지 태그 내용 제거하여 반환하기 (0) | 2024.01.09 |
---|---|
LocalDateTime 형식 파싱 (ofPattern & ofLocalizedDate) (1) | 2024.01.09 |
[Java] String, StringBuilder, StringBuffer의 차이에 대한 고리타분한 이야기 (0) | 2023.12.07 |
[Java] 문자열은 왜 불변 객체로 설계되었나요? (0) | 2023.12.06 |
[Java] Garbage Collection (1) | 2023.11.24 |
Comments