스프링 부트를 공부하며 Record 라는 배운적 없는 개념이 등장하여 정리해 보았습니다.
1. 자바(Java)의 레코드(Record) 란?
자바에서 레코드(Record)는 자바 16에서 정식으로 추가된 기능입니다. 레코드는 주로 데이터 전송 객체(Data Transfer Object, DTO)와 같은 단순한 데이터 구조를 만들 때 유용합니다. 레코드는 불변(immutable) 객체를 쉽게 정의할 수 있도록 도와줍니다.
2. 레코드의 기본적인 특징
- 불변성: 기본적으로 모든 필드가 final이며, 생성자에 의해 초기화된 이후에는 변경할 수 없습니다.
- 간결한 사용: 필드, 생성자, 접근자 메서드 등을 자동으로 생성해 주므로 코드가 간결해집니다.
- 자동 생성: 레코드는
equals()
,hashCode()
,toString()
메서드를 자동으로 생성해 줍니다.
3. 레코드 사용예제
// Person 레코드 정의 public record Person(String name, int age) { // 추가 메서드도 정의할 수 있습니다. public String greet() { return "Hello, my name is " + name; } }