📌 레코드
- 자바 레코드(Java Record)는 Java 16부터 추가된 기능으로, 데이터 클래스를 정의할 때 코드를 간결하게 작성할 수 있게 도와주는 역할을 한다.
- DTO 등 데이터 전달을 목적으로 하는 클래스를 작성할 때, getter, setter, equals(), hashCode(), toString() 등 똑같은 구조의 코드를 계속해서 작성해야 하는 불편함이 있는데, 레코드를 사용하면 한번에 해결된다!!
record 레코드명(컴포넌트1, 컴포넌트2, ...) { }
🌈 레코드의 특징
- 필드별 getter가 자동으로 생성된다.
- 불변 데이터를 다룬다.(final로 선언된다)
- equals, hashcode, toString을 자동으로 생성한다.
- 기본 생성자는 제공하지 않는다.
- 기본적으로 private로 선언되므로, 접근 제어자를 명시하지 않아도 된다.
- 레코드는 다른 클래스를 상속받을 수 없다.
- 제네릭 레코드를 만들 수 있다.
- 레코드는 클래스처럼 인터페이스를 구현할 수 있다.
- new 키워드를 사용하여 레코드를 인스턴스화할 수 있다.
- 레코드나 레코드의 각 컴포넌트에 애노테이션을 달 수 있다.
- 별도의 초기화 로직이 필요하면 생성자를 따로 만들 수도 있다.