1. Annotation Arrangement

  1. @Valid
    1. 유효성을 검증하겠다는 의미입니다
  2. @ExceptionHandler
    1. Controller계층에서 발생하는 에러를 잡아서 Method로 처리해주는 기능을 말합니다
  3. @Target
    1. 애노테이션을 붙일 수 있는 대상을 지정해주는 것을 말합니다
    2. [Type]
      1. ANNOTATION_TYPE : 어노테이션
      2. LOCAL_VARIABLE : 지역(로컬) 변수
      3. PACKAGE : 패키지
  4. @Retention
    1. 애노테이션이 언제까지 살아남아 있을지를 정하는 것을 말합니다
      1. [속성]
        1. RetentionPolicy.SOURCE : 소스코드(.java)까지 남아있는다는 의미입니다
        2. RetentionPolicy.CLASS : 클래스 파일(.class)까지 남아있는다는 의미입니다(Byte Code)
        3. RetentionPolicy.RUNTIME : 런타임까지 남아있는다는 의미입니다(안사라진다고 생각하면됩니다)
  5. @Validated
    1. @Valid의 기능을 포함하고 있으며, 추가적으로 유효성을 검증할 옵션에 대한 그룹을 지정할 수 있는 기능이 있습니다
  6. @ClassPath
    1. 클래스를 찾기위한 경로입니다
  7. @Email
    1. 형식이 email이여야 합니다