관리 메뉴

제뉴어리의 모든것

[Section3] [Spring MVC] API 계층 - DTO [추후정리] 본문

코드스테이츠/정리 블로깅

[Section3] [Spring MVC] API 계층 - DTO [추후정리]

제뉴어리맨 2022. 8. 23. 01:46

DTO (Data Transfer Object) 란?

계층 간 데이터 교환을 하기 위해 사용하는 객체로, DTO는 로직을 가지지 않는 순수한 데이터 객체(getter & setter 만 가진 클래스)입니다.

 

참조 : https://melonicedlatte.com/2021/07/24/231500.html

 

DAO, DTO, VO 란? 간단한 개념 정리 - Easy is Perfect

 

melonicedlatte.com

 

유효성 검사 애노테이션


 

  • @NotBlank
    null 값이나 공백(””), 스페이스(” “) 같은 값들을 모두 허용하지 않습니다.

    EX )  
    @NotBlank(message = "한글명은 공백이 아니여야 합니다") 
    private String korName;
    허용되지 않는 값이 들어 왔을 경우, message의 값이 출력된다.

    + @NotNull, @NotEmpty
    @NotNull : null만 안됨. "", " " 은 허용
    @NotEmpty : null 과 "" 둘 다 안됨. " "은 허용

  • @Valid



  • @Validated




  • @Email
    유효한 이메일 주소인지를 검증합니다.

    EX )
    @Email private String email;

  • @Pattern
    정규표현식(Reqular Expression)에 매치되는 유효한 값인지 검증

    EX )
    @Pattern(regexp = "^[a-zA-Z]+(?:\\s[a-zA-Z]+)*$") //영문 검증, a~z, A~Z 사이에 문자만, 공백은 중간에 한칸까지만 
    private String engName;

    - 정규 표현식 참조 : https://sooftware.io/regex/
    - 정규 표현식 테스트 사이트 : https://regexr.com/


  • @Nullable
    null값이 허용됨.




    참조 : https://conservative-vector.tistory.com/entry/JAVA-null-%EC%B2%B4%ED%81%AC%EB%A5%BC-%EA%B0%84%EB%8B%A8%ED%95%98%EA%B2%8C-%ED%95%B4%EB%B3%B4%EC%9E%90
 

정규표현식 (regex)

정규 표현식 정규표현식(regular expression)은 일종의 문자를 표현하는 공식으로, 특정 규칙이 있는 문자열 집합을 추출할 때 자주 사용되는 기법입니다. 주로 Prograaming Language나 Text Editor…

sooftware.io

 

[JAVA] null 체크를 간단하게 해보자

자바에서 null체크를 간단하게 해보자 그동안 하던 `if(data != null) 어쩌구저쩌구~`보다 간단한 방법 세 가지를 소개한다. NullPointerException을 간편하게 다뤄보자! 1. Optional java.util.Optional은 자바8..

conservative-vector.tistory.com

https://www.jetbrains.com/help/idea/nullable-and-notnull-annotations.html#nullable

 

@Nullable and @NotNull | IntelliJ IDEA

 

www.jetbrains.com

 

 

  • @Min, @Max
    - @Min : 최소값 지정
    - @Max : 최대값 지정

    EX )  100 ~ 50000
    @Min(100) 
    @Max(50000)
    private int price;

    @Valid와 같이 사용



  • @Range
    범위 값 지정

    EX ) 100 ~ 50000
    @Range(min = 100, max = 50000) 
    private int price;

    @Valid와 같이 사용

  • @Positive
    양수만 가능

    @Valid와 같이 사용

  • Optional<@Range(min= 100, max= 50000) Integer>


 

@Valid, @Validated 차이