Java 14에서 도입되고 Java 16부터 정식 도입된 언어 차원의 기능입니다.
record
는 불변 객체(Immutable Object)를 쉽게 만들 수 있도록 설계 또한,
record
는 클래스에서 필수적으로 작성해야 했던 보일러플레이트(생성자, getter, equals, hashCode, toString 등)를 컴파일러가 자동 생성해줌으로써 코드를 간결하게 해준다.
기존에는 Lombok 라이브러리를 통해 이 문제를 해결했지만, record
의 등장으로 Java 자체적으로 이 기능을 지원하게 되었다.
또한 Lombok 라이브러리는 런타임시에 문제가 생길 수 있지만, record
는 자바 언어 수준에서 지원되므로 안정적이다.
DTO(Data Transfer Object)는 계층 간 데이터 전달을 위한 객체로, 주로 불변성을 유지하며 순수한 데이터만을 담는다.
record
는 모든 필드를 final로 선언하고 자동으로 필요한 메서드를 생성하기 때문에 DTO의 역할에 매우 적합하다.
따라서 DTO를 record
로 구성하면 다음과 같은 장점이 있다: