3월에 나온 Java 14에서 새롭게 탄생한 타입 Records에 대한 소식은 올해(2020년) 2월쯤 처음 봤던 것 같습니다. 간단히 얘기해서 생성자(Constructor)와 Get(Accessor) 그리고 일반적인 클래스의 기본 요소인 equals(), hashCode(), toString() 을 가지는 데이터 클래스 타입입니다. Records 타입의 경우는 위 다섯 가지 기본 요소를 데이터 클래스에 적합한 형태로 사전 생성해 줍니다. 예를 들면 equals 와 hash 코드 같은 경우는 생성된 서로 다른 Records 객체가 만약 같은 타입과 같은 상태(State. 간단히 안의 Field 값이 다 같은 경우를 말한다고 보면 되겠죠?) 인 경우 동일하게 취급하도록 만들어져 있고, toString()의 경우는 모든 Field의 name과 value를 보여주게 처리되어 있다고 합니다. 저는 스칼라나 코틀린을 잘 모르지만, 스칼라의 case, 코틀린의 data와 같은 역할을 한다고 합니다. 관련 글들을 몇 개 봤었는데 저 같은 경우는 아래 링크의 Preview Post가 가장 이해가 잘 가더군요. 다만, 1월쯤에 쓰인 Preview로 Java 14의 Release 전에 쓰인 글입니다. Java 14 new features: Records 자바 14의 기능을 과연 언제쯤 쓰게 될지는 모르겠지만, 그동안 lombok을 썼던 가장 큰 이유가 하나 없어지는 듯합니다.