[Java] 레코드 Record

Bam·2024년 4월 5일
0

Java

목록 보기
96/98
post-thumbnail

레코드

레코드(Record)Java 14에서 등장한 문법입니다.

데이터 전달을 위한 객체인 DTO(Data Transfer Object)를 작성할 때 보일러 플레이트(Boiler Plate)를 줄이기 위해서 레코드를 사용합니다.

보일러 플레이트 코드는 여러 곳에서 별다른 수정 없이 반복 사용되는 코드를 의미합니다.

다음은 Student라는 객체를 전달하기 위해 만든 DTO 코드의 예시입니다.

public class Student {
    private final String name;
    private final int grade;

    public Student(String name, int grade) {
        this.name = name;
        this.grade = grade;
    }
    
    public String getName() {
        return name;
    }
    public int getGrade() {
        return grade;
    }
    
    @Override
    public String toString() {
        return "Student [name=" + name + ", grade=" + grade + "]";
    }
}

필드는 getter를 통해 읽기만 가능하도록 private final로 설정되어 있고 생성자와 읽기를 위한 getter, 객체 정보 출력을 위한 toString()을 오버라이딩된 내용이 있습니다. 이 내용들은 Student 객체에 있어서 필수한 내용들이라서 반복 사용되면서도 수정될 일이 없죠.

이러한 코드를 레코드를 사용하면 간단하게 처리할 수 있습니다. 다음 레코드 코드는 위의 Student 코드를 완전히 대체하게 됩니다. 정말 간단하죠?

public record StudentRecord(String name, int grade) { }
public class Main {
    public static void main(String[] args) {
        StudentRecord student = new StudentRecord("김포도", 2);

        System.out.println(student.name());
        System.out.println(student.grade());
        System.out.println(student.toString());
    }
}

0개의 댓글