public record UserDTO(String name, String password) {
}
- 프로젝트를 하면서 이런 Dto 클래스를 만남
- 평소 사용하는 방식이 아니라서, 좀 더 확실히 알고싶어서 찾아본 자료 정리
Record
- 값의 집합으로 이루어진 간단한 객체를 심플하게 개발하기 위해 고안
- immutable data(불변데이터)를 다룰 class 구현에 최적화
- 웹서비스 구현에서 많이 사용되는 DTO 개념에 적용하면 유용
- 생성자, accessors(getter), equals(), hashCode(), toString() 등 DTO 특성의 클래스를 개발할때, 매번 반복적으로 직접 구현해줘야한던 작업이 불필요해짐
- '이 클래는 data carrier 용도'를 명시적으로 나타낼 수 있어서 코드의 대한 이해를 돕고, 해당 클래스의 목적에 맞지 않는 구현을 하지 않도록 방지
특징
- final 클래스이므로 다른 클래스를 상속하거나/상속시킬 수 X
- 자동생성 accessor 함수는 인스턴스 멤버 변수의 이름과 동일
- Record 클래스의 접근 제어자는 public, package-private 만 가능
- Record 생성자의 접근 제어자는 클래스의 접근 제어자보다 제한된 수준이어서는 X
레코드 선언 방법
record 레코드명(컴포넌트1, 컴포넌트2, ...) {}
참조
https://velog.io/@oyoungsun/Java-RECORD-DTO를-record-type으로-설정하는-이유
[Java - RECORD] , DTO를 record type으로 설정하는 이유
스프링 프로젝트를 기획하면서 DTO를 만드는 과정에서, class를 record로 바꿀 수 있다는 것을 알게되었다.값의 집합으로 이루어진 간단한 객체를 심플하게 개발하기위해 고안되었습니다.immutable dat
velog.io
자바의 Record로 DTO를 만들어보자 - 2
1. 다시 글을 쓴 이유 안녕하세요. 오늘은 Record에 대해서 다시 한번 작성해보려고 합니다. 생각보다 Record를 보려고 찾아주시는 분들이 많더라구요. 그래서 제가 직접 프로젝트에 도입해서 적극
s7won.tistory.com