Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 트라이 자료구조
- 다중 서버
- 예외처리
- 벌크헤드패턴
- thundering herd
- ddl-auto
- BFS
- 베타락
- 타임아웃
- 이진탐색
- queue
- 캐시 스탬피드
- expired key
- id생성
- 낙관적 락
- DP
- prg패턴
- 백준
- Entity Manager
- 비관적 락
- 스택
- java
- JPA
- 슬라이스 테스트
- 이분탐색
- session인증
- 자바
- 외부 서비스 장애
- Stack
- 알고리즘
Archives
- Today
- Total
Coding 01
Record를 DTO로 사용하는 이유 본문
Record는 Java16에서 나온 클래스 불변성(Immutable)을 가진다.
기존의 클래스와 달리 모든 필드가 final로 선언되고, 생성 후 변경할 수 없다.
record의 선언만으로 자동으로 생성자, getter, equals(), hashCode(), toString() 등 메서드를 자동으로 생성해 준다.
그래서 데이터 전송 과정에서 객체의 상태가 변경되는 것을 원천적으로 방지할 수 있다.
보통 Lombok의 @Value나 @Data 어노테이션을 사용하는데 이보다 더 깔끔한 코드를 작성할 수 있다.
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 |