본문 바로가기
Java

java Record

by curious week 2025. 4. 4.

.
record "불변 객체 + 자동 코드 생성"


Java/Spring에서 record와 유사한 것들

     
Lombok @Data / @Value 클래스 getter/setter/toString 등 자동 생성 불변은 @Value, 가변은 @Data, 별도 의존성 필요
Java Bean (POJO) 수동으로 getter/setter 생성 코드 양 많고, 불변 객체 아님
DTO 클래스 (전통 방식) controller ↔ service 사이 데이터 전달용 가변 객체, 코드 반복 많음
Value Object 패턴 equals/hashCode 기반 값 비교용 클래스 record가 VO 구현에 딱 적합함
Sealed Class (Java 17+) 상속을 제한한 클래스 계층 record는 값 자체 표현, sealed는 계층 구조

 

record vs Lombok 비교

// record
public record User(String name, int age) {}
// Lombok
@Data
@AllArgsConstructor
public class User {
    private final String name;
    private final int age;
}

 

불변 데이터 전송 객체 (DTO) ✅ record
복잡한 가변 객체 ✅ Lombok + class
상속 구조가 필요한 객체 ❌ record → class/abstract 사용
Java 14 이하 ❌ record 사용 불가 → Lombok 추천

 

'Java' 카테고리의 다른 글

JAVA  (2) 2025.04.07
Java sealed class  (0) 2025.04.04
[Java] java 제어문  (4) 2025.01.17
[Java] 클래스 기본 구조  (2) 2025.01.16
[Java] Variable(변수), Constant(상수), 자료형  (1) 2024.08.26