본문 바로가기

Java

Java Record

1. Java record

그동안 Java 11 버전을 주로 사용하다보니, 이후 버전에 추가된 것들에 대해 잘 알지 못해서, 학습해보려 합니다.

Java Record는 Java 14에서 JEP 359의 일부로 프리뷰 기능으로 도입되었고, Java 16에서 정식 기능으로 승격되었습니다. Record는 데이터만을 담는 불변의 단순한 클래스를 간결하게 생성하기 위한 새로운 타입입니다.

2. 왜 Record를 사용하는가?

Java에서는 데이터 전송 객체 DTO, VO 등과 같이 데이터만을 저장하는 클래스를 많이 사용합니다. 그러나 이러한 클래스를 작성할 때 마다 생성자, 게터, equals(), hashCode(), toString() 등의 메서드를 반복적으로 작성해야 합니다. Record는 이러한 반복을 줄이고 코드를 간결하게 만들어줍니다.

3. Record의 특징

  • 불변성: Record는 생성 시에 초기화된 값에서 변경될 수 없습니다.
  • 자동 구현: 생성자, 게터, equals(), hashCode(), toString() 메서드가 자동으로 생성됩니다.
  • 접근 제한: 모든 필드는 final 이며, 접근 수준은 public 입니다.

4. Record 사용법

Record를 정의하는 방법은 간단합니다. 예를 들어, 이름과 나이만을 갖는 Person 클래스를 Record로 정의해보겠습니다.

record Person(String name, int age) {}

위의 코드만으로 다음의 것들이 자동으로 제공됩니다:

  • 모든 필드에 대한 생성자
  • 모든 필드에 대한 게터
  • 모든 필드에 대한 equals(), hashCode(), toString()

5. Record 제한

그러나 Java Record에는 다음과 같은 제한사항이 있습니다.

  • Record는 상속할 수 없습니다.
  • 명시적으로 확장 또는 구현된 클래스나 인터페이스를 가질 수 없습니다.
  • Record의 모든 필드는 암시적으로 final 입니다. 따라서 변경될 수 없습니다.

'Java' 카테고리의 다른 글

어떻게 JVM은 메모리를 관리할까  (0) 2024.01.13
디미터의 법칙  (0) 2023.11.14
Spring Test - H2 적용하기  (0) 2023.10.31
[JUnit5] @ParameterizedTest  (0) 2023.10.30
== & Equals  (0) 2023.10.15