record

왕감자·2025년 2월 18일

2025 내일배움캠프

목록 보기
16/39

불변객체(immutable object) 만들 때 유용한 기능
DTO 클래스를 작성할 때 훨씬 간결해짐

public record MemberDto(Long id, String name, String email) {}
  • 위 코드만으로 getter, constructor, equals(), hashCode(), toString() 자동 생성
  • DTO는 수정 될 필요 없음
  • record는 모든 필드가 final
  • Thread-safe

❗️ setter 없음! -> 불변객체라서
❗️ @JsonProperty를 붙이지 않으면 직렬화/역직렬화 문제 발생


기존 클래스로 만든 DTO

@Getter
@NoArgsConstructor
@AllArgsConstructor
public class ReviewRequestDto {
    private String content;
    private int rating;
}

record 사용 DTO

public record ReviewRequestDto(
        String content,

        @NotNull(message = "평점은 필수 입력 값입니다.")
        @PositiveOrZero(message = "평점은 0보다 큰 값이어야 합니다.")
        int rating
) {
}

오늘 배운 것!

record

: 불변 객체 (immutable object)를 쉽게 생성 - DTO 만들 때 자주 사용

  • getter
  • setter
  • equals()
  • hashCode()
  • toString()

-> 자동 생성

public record MemberDTO(String id, String name, String email) {
    // id, name, email에 대한 getter와 equals, hashCode, toString은 자동으로 생성
}

record는 불변객체 - 데이터 수정이 불필요 한 경우 유용

0개의 댓글