반응형

Annotation

    Custom Validation 만들어서 추가하기

    Spring에서 @NotBlank, @Email등 여러 템플릿에 맞게 Validation을 넣을 수 있다.하지만 추가적으로 패스워드 규칙과 같이 별도 체크할 validator가 필요할 때 만들어서 사용해야 하는데 만들어서 지정해보는 작업을 해보자. 1. Controller요청을 받을 DTO앞에 @Valid 어노테이션을 추가해야한다.1234567891011/** * 회원가입 * * @param reqDto * @return * @throws Exception */@RequestMapping("/join")public ResponseEntity join(@Valid UserDto reqDto) throws Exception { return ResponseEntity.ok(userService.insertUs..

    JPA 매핑 어노테이션 - DDL 2

    엔티티 매핑에서 사용될 컬럼의 필드 유형을 설정하는 매핑 어노테이션을 정리해보자. @Column 테이블에서 사용 되는 컬럼이라는 필드를 지정해줄때 사용하며 name, nullable(기본이 true) 등의 설정을 해줄 수 있다. 12@Column(name = "NAME", length = 10, nullable = true)private String userName;cs @Enumerated 자바의 enum 타입을 매핑할 때 사용한다. 속성으로 EnumType.ORDINAL과 EnumType.STRING이 존재하는데 이름 그대로 ORDINAL은 순서를 STRING은 Enum의 이름을 저장한다12345678910111213141516171819202122232425262728public class Memb..

    JPA 기본 어노테이션 설명

    JPA에서 사용되는 기본적인 어노테이션 몇개를 정리해보자. @Entity- 클래스와 테이블과 매핑한다고 JPA에게 알려준다. 이렇게 @Entity가 사용될 클래스를 엔티티 클래스라고 한다. @Table- 엔티티 클래스에 매핑할 테이블 정보를 알려준다. (이 어노테이션을 생략하면 클래스 이름을 테이블정보로 매핑한다.) @Id- 엔티티 클래스의 필드를 테이블에 기본키로 매핑한다. (데이터베이스는 엔티티를 구별할때 이 키값으로 구분한다.) @Column- 필드를 컬럼에 매핑한다. 매핑 정보가 없는 필드- @Column을 생략하면 필드명을 사용해서 컬럼명과 매핑하게 된다. 만약 대소문자를 데이터베이스가 구분할 경우에는 꼭 위에 @Column어노테이션을 사용해서 진행해야한다. #Dialect(방언)- 데이터베이스..

    Spring Validation을 이용해서 요청 검증처리

    대게 개발을 진행할 때 front에서 validate를 체크하고 민감한 정보에 대해서는 한번더 체크를 진행하고 작업을 했었다. 하지만 클라이언트에서만 validation을 체크하게 되는 경우 브라우저에서 악의적인 행동에 대해서 대응하기 어려워질수 있기 때문에 백엔드에서도 Validation을 처리해야한다. 여기서 사용되는 @valid 어노테이션들을 알아보자. 1. DTO validation 선언 우선적으로 DTO에 각 속성에 필요한 @valid 옵션들을 추가한다.1234567891011121314151617181920212223242526272829303132package com.wedul.springboottest.rest.dto; import lombok.*; import javax.validatio..

    어노테이션 - 규칙 37 자료형을 정의할 때 표식 인터페이스를 사용하라.

    표식 인터페이스(marker interface)는 아무런 메스드도 없는 인터페이스이다. 클래스를 선언할 때 이런 표식인터페이스를 선엉ㄴ하는 이유는 해당 클래스가 어떤 속성을 만족한다는 사실을 표시하는 것과 같다. 표식 인터페이스의 장점은 다음과 같다. 1. 표식 인터페이스는 자료형이기 때문에 컴파일 시 오류를 탐지할 수 있다. 예를 들어서 살펴보자. Wedul이라는 표식 인터페이스를 만들고 Cjung클래스는 이를 구현하고, Gglee 클래스는 이를 구현하지 않았다. 이때 Wedul 인터페이의 인자를 받는 메서드 makeBar를 선언해놓고, 이 메소드에 파라미터로 Cjung과 Gglee를 넣었다. 이때 Wedul 인터페이스를 구현하지 않은 gglee 클래스 객체는 넣을 때 컴파일러에서 오류를 뱉는다. 12..

    자바 Annotation 만들기

    자바에서 Annotation은 별도의 properties파일이나 xml같은 설정파일에 작성하는 부가적인 정보를 어노테이션으로 간편하게 설정할 수 있다. 형태 123456789101112131415@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Anno { public String defaultVal() default “OK”; public String val(); } Colored by Color Scriptercs Target은 어노테이션의 적용 대상을 선정하고, Retension은 이 어노테이션의 정보가 어디 까지 유지되는지 설정한다. @Target - Constructor, Field..

반응형