[Java] Record에 대해 알아보자

전주은·2023년 1월 9일
0
post-thumbnail

💡 Record

Record는 Java 14에서 도입된 기능으로, 불변(immutable) 데이터를 표현하는데 적합한 클래스입니다. 이전에는 Java에서 불변 데이터 클래스를 만들기 위해서는 getter, setter, equals, hashCode, toString 등을 모두 구현해야 했지만, Record는 이러한 작업을 간편하게 수행할 수 있도록 제공합니다.

Record의 특징

불변 클래스: 생성자로부터 전달받은 데이터를 변경할 수 없습니다.
Final 클래스: Record 클래스는 반드시 final로 선언되어야 합니다.
Getter 메소드 자동 생성: Record는 필드명에 대한 Getter 메소드를 자동으로 생성합니다.
Constructor 자동 생성: Record는 모든 필드를 매개변수로 받는 생성자를 자동으로 생성합니다.
EqualsAndHashCode 메소드 자동 생성: Record는 내부 필드에 대한 EqualsAndHashCode 메소드를 자동으로 생성합니다.
toString 메소드 자동 생성: Record는 내부 필드에 대한 toString 메소드를 자동으로 생성합니다.

Record의 장점

코드 작성이 간단하고 직관적입니다.
필드명이 자동으로 생성되므로 오타로 인한 버그 발생 가능성이 줄어듭니다.
불변 클래스이므로, 동시성 문제를 방지할 수 있습니다.
내부 필드에 대한 equals, hashCode, toString 메소드를 자동으로 생성하여 작성의 부담을 줄일 수 있습니다.

Record를 유용하게 사용하는 방법

데이터 전용 클래스를 작성할 때
DTO(Data Transfer Object) 클래스를 작성할 때
JPA 엔티티 클래스에서 Getter/Setter 메소드를 제거하고자 할 때
API 요청/응답 객체를 작성할 때

Record 클래스를 사용하면 Getter/Setter 메소드를 직접 작성하지 않아도 되므로, 코드 작성 시간을 줄일 수 있습니다. 또한 불변 클래스로 선언되므로 객체 지향 프로그래밍의 원칙 중 하나인 불변성 원칙을 준수할 수 있습니다.

0개의 댓글