Dto를 Record로 구현하기

0

TIL

목록 보기
158/183

Record는 Java 16에서 정식으로 출시된 클래스 유형으로, 주로 불변 객체를 생성할 때 사용한다.

장점 : 간결한 코드, 불변성, 직관적인 데이터 표현, 메모리 효율성.
단점 : 불변성으로 인한 데이터 수정의 어려움, 상속 불가, 복잡한 로직 처리의 제한, 오래된 Java 버전과의 호환성 문제.

나도 기존에는 Class형태로 사용했었지만 불변성 등 여러가지에 대해 배우다보니 이번에는 Dto를 Record로 만들어보기로했다.

package com.forj.auth.application.dto.request;

import com.forj.auth.domain.model.UserRole;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Size;

public record UserSignupRequestDto(

        @Size(min = 4, max = 10)
        @Pattern(regexp = "^[a-z0-9]+$")
        String username,
        @Size(min = 8, max = 15)
        @Pattern(regexp = "^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[!@#$%^&*?_]).+$")
        String password,
        UserRole role

) {

}

간단하게 필드에 대한 정보만 입력하면 손쉽게 구현이 가능하다.

하지만 위에 언급한대로 불변객체를 다루는데에 유용하므로 데이터에 변경이 필요한 경우 추가적인 설정을 해주거나 그냥 Class를 사용하는 것이 이로울거같다.

0개의 댓글

관련 채용 정보