새소식

자바

Record를 DTO로 사용하는 이유?

  • -

아 맞다 그런게 있었지

 

 Record는 Java 16에서 정식 출시된 새로운 유형의 클래스로 모든 필드가 final 키워드로 선언되기 때문에 불변성(Immutable)의 특징이 존재한다. 또한 자동으로 생성자, getter, equals, hashCode, toString 등의 메서드를 자동으로 생성해준다.

 

// 생성자, getter, hashCode(), equals(), toString() 자동 완성
public record MemberDto(String name, String email, int age) {}

 

 특히 계층 간 데이터 전송을 목적으로 하는 DTO로 사용될 수 있으며 자동으로 여러 메서드를 생성해주기 때문에 보일러 플레이트 코드를 줄일 수 있다.

 

 그렇지만 Record는 다른 클래스를 상속할 수 없고 필드가 final로 선언되기 때문에 확장도 어렵다. 또한 데이터 전송을 목적으로 설계되었기 때문에 비즈니스 로직을 포함하기에 적절하기 않다. 또한 자바 16 이전 버전에서 호환이 불가능하다는 단점이 존재한다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.