☕️ Java 의 Record 를 아시나요?

객체를 생성한 뒤에 이를 변경할 수 없도록 하는 개념을 불변성(Immutability) 이라고 합니다. 불변성은 데이터 무결성을 유지하는데 도움을 주기 때문에 우리가 자주 접하고 사용하는것 중 하나입니다. Java 의 Class 를 통해 이러한 불변성을 지키려고 하면 다음과 같이 몇가지 반복적이고 실수를 할 수 있는 작업들을 진행해야 합니다. 1️⃣ Class 에 속한 field 를 private final 로 정의합니다. 2️⃣ 필드별로 getter method 를 정의합니다. 3️⃣ 각 필드에 해당하는 인수가 있는 public 생성자를 정의합니다. 4️⃣ 모든 필드가 일치할 때 동일한 클래스의 개체에 대해 true 를 반환할 수 있도록 equals 메서드를 재정의 합니다. 5️⃣ 모든 필드가 일치할 때 동일한 값을 반환하는 hashCode 메서드를 재정의 합니다. 6️⃣ 필요에 따라 클래스 이름과 각 필드 이름 및 해당 값을 포함하는 toString 메서드를 재정의 합니다. 물론 위와 같은 작업은 왠만한 IDE 툴로 자동 생성하도록 할 수 있습니다. 다만, 이렇게 생성한 class 의 field 를 변경하거나 추가, 삭제할 경우 이를 일일히 작업해줘야하고 이때 자칫 실수가 발생할 수 있습니다. 또한 Class 는 경우에 따라 다양한 함수를 정의할 수 있고 이를 통해 데이터를 변경할 수 있는 가능성이 존재하기에 불변성이 언제든 깨질 가능성이 있습니다. Java 14 에서는 이러한 데이터의 불변성을 지킬수 있게 강제하면서 불필요한 Boilerplate 코드를 줄일 수 있도록 하기 위해 Record 라는 데이터 Class 를 정의하였습니다. Record 를 사용할 경우 위에 언급한 절차 없이 매우 간단하게 불변성을 지키는 데이터 Class 를 생성할 수 있습니다. 이를 통해 단순하게 데이터를 불변성을 지키면서 관리하고자 한다면, 예를 들어 데이터베스로부터 단순히 데이터를 조회하거나 서비스 정보등을 관리하는 Class 를 정의하고자 한다면 Record 를 통해 매우 효율적으로 코드를 관리할 수 있습니다. Record 에 대한 자세한 사항은 첨부드린 링크에 자세히 설명되어 있으니 관심있으신 분들께서는 한번 읽어보시면 좋겠습니다.

Class vs Record: Difference between class and record in Java

Medium

Class vs Record: Difference between class and record in Java

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 1월 25일 오전 3:24

 • 

저장 135조회 4,363

댓글 1