230712 record type

보트·2023년 7월 13일
0

Spring

목록 보기
16/27

record type

Spring Security 후발대 과제를 하다가 dto 클래스들을 record로 만드신 것을 발견했다.

records

  • 값의 집합으로 이루어진 간단한 객체를 만들기 위함
  • 불변 데이터를 다루기에 최적화
  • 웹 서비스 구현에 많이 사용되는 dto에 적용하기 좋음
  • 생성자, getter, equals(), hashCode(), toString() 등을 개발자가 구현하지 않아도 됨
  • data carrier 용도임을 명시적으로 나타낼 수 있음
    -> 코드 이해 쉬움
public record LoginRequest(String email, String password) {
}
@Getter
@Setter
public class SigninRequestDto {
    private String email;
    private String password;
}

특징

  • final 클래스이므로 다른 클래스를 상속받을 수 없음/ 다른 클래스에 상속될 수 없음
  • 자동생성 accessor 함수의 이름은 인스턴스 멤버 변수의 이름과 동일
  • 클래스 접근제어자는 public, package-private만 가능
  • 생성자의 접근제어자는 클래스의 접근제어자보다 제한된 수준이면 안됨
  • jdk 16 부터 정식으로 사용 가능

profile
일주일에 한 번

0개의 댓글