본문 바로가기

cs(with 매일메일)

[251030목] Record를 DTO로 사용하는 이유가 뭔가요?

Record : java16에서 정식 출시된 특별한 유형의 클래스로, 불변성(immutable) 데이터를 모델링하는데 집중하기 위한 클래스

 

기존 클래스와 차이점

- 모든 필드가 final 키워드로 선언

- 객체 생성 후 변경 X

- 필드 선언만으로 getter, equals(), toString()을 메서드를 자동으로 생성

 

장점

- 멀티 스레드 환경에서 데이터가 의도치 않게 변경되지 않고 안전하게 전달

 

한계

- extends를 사용하여 다른 클래스를 상속할 수 없다

- 필드가 fiinal이기에 확장 X

- 주로 데이터를 전달하려는 목적으로 설계되었기에 비즈니스 로직 포함이 어렵다

- java 14, 16버전 이하에는 호환 X

 

 

DTO : 계층 간 데이터 전송을 목적으로 하는 객체