유효성 검사(@Valid)

code++·2025년 4월 2일

도메인 객체 vs DTO 에 대한 유효성 검사

= 같은 곳에 유효성 검사를 추가하면 코드 중복이 발생한다.

  • 도메인 지식 같은 경우 -> Domain(Entity)에 유효성 검사를 해야한다.

  • 도메인 지식과 무관하게 데이터 그 자체가 유효한가에 대한 검사 -> DTO에서 해야한다.

    @Getter
    @Setter
    @Entity
    public class Food {
    	@Id
    	@GeneratedValue(strategy = GenerationType.IDENTITY)
    	private Integer id;// 고유 번호
    	
    	@Column(length = 50)
    	@Size(max = 50)
    	private String foodname; // 식품명
    	
    	@Column(length = 30)
    	@Size(max = 30)
    	private String kind; // 종류
    	
       private List<String> createDate;//날짜
       
       private String storageArea; // 구역
    
       
    	
    	private LocalDateTime modifyDate; // 최종 수정 날짜
    
    	@ManyToOne// 작성자와의 관계 설정
    	private SiteUser siteuser;
    	
    	private String imagePath; //이미지 경로
    }
  • @Size를 추가하여 유효성 검사를 추가했다.

    @Getter
    @Setter
    @Entity
    public class FoodFormDto {
    	@NotEmpty(message="식품 이름은 필수 항목입니다.")
    	@NotNull
    	private String foodName;
    	
    	@NotEmpty(message="식품 종류 선택은 필수 항목입니다.")
    	@NotNull
    	private String kind;
    	
    	@NotEmpty(message="유통기한은 필수 항목입니다.")
    	@NotNull
       private List<String> createDate;//날짜
    	
    	@NotEmpty(message="영역은 필수 항목입니다.")
    	@NotNull
    	private String storageArea;
    
  • 입력 폼에 대한 @NotEmpty @NotNull을 이용하여 유효성 검사를 추가했다.

profile
일상

0개의 댓글