Coding 01

Record를 DTO로 사용하는 이유 본문

기술면접

Record를 DTO로 사용하는 이유

하루우울루 2025. 1. 13. 12:31

Record는 Java16에서 나온 클래스 불변성(Immutable)을 가진다.

기존의 클래스와 달리 모든 필드가 final로 선언되고, 생성 후 변경할 수 없다. 

record의 선언만으로 자동으로 생성자, getter, equals(), hashCode(), toString() 등 메서드를 자동으로 생성해 준다.

그래서 데이터 전송 과정에서 객체의 상태가 변경되는 것을 원천적으로 방지할 수 있다.

 

보통 Lombok의 @Value나 @Data 어노테이션을 사용하는데 이보다 더 깔끔한 코드를 작성할 수 있다.

Record를 사용한 DTO
r일반 클래스로 구현한 DTO


Record는 DTO뿐 아니라 VO(Value Object)로 용도로도 사용할 수 있다.

VO는 특정 값을 표현하는 객체로 사용된다.

 

Record는 extends를 사용해서 다른 클래스를 상속할 수 없고, 필드가 final로 선언되어서 확장이 어렵다. 데이터 전달 목적이기 때문에 로직을 포함하기 적절하지는 않다. 

이점이 데이터 전송이라는 부분에서는 장점이 될 수 있다고 본다.

'기술면접' 카테고리의 다른 글

SOLID 원칙  (0) 2025.01.15
DB Replication  (0) 2025.01.14
Was와 웹 서버의 차이  (0) 2025.01.10
Stack  (0) 2025.01.08
SSR과 CSR  (0) 2025.01.07