본문 바로가기

기록하기

Day + 42


public record UserDTO(String name, String password) {
}

 

  • 프로젝트를 하면서 이런 Dto 클래스를 만남
  • 평소 사용하는 방식이 아니라서, 좀 더 확실히 알고싶어서 찾아본 자료 정리

Record

  • 값의 집합으로 이루어진 간단한 객체를 심플하게 개발하기 위해 고안
  • immutable data(불변데이터)를 다룰 class 구현에 최적화
  • 웹서비스 구현에서 많이 사용되는 DTO 개념에 적용하면 유용
  • 생성자, accessors(getter), equals(), hashCode(), toString() 등 DTO 특성의 클래스를 개발할때, 매번 반복적으로 직접 구현해줘야한던 작업이 불필요해짐
  • '이 클래는 data carrier 용도'를 명시적으로 나타낼 수 있어서 코드의 대한 이해를 돕고, 해당 클래스의 목적에 맞지 않는 구현을 하지 않도록 방지

특징

  • final 클래스이므로 다른 클래스를 상속하거나/상속시킬 수 X
  • 자동생성 accessor 함수는 인스턴스 멤버 변수의 이름과 동일
  • Record 클래스의 접근 제어자는 public, package-private 만 가능
  • Record 생성자의 접근 제어자는 클래스의 접근 제어자보다 제한된 수준이어서는 X

레코드 선언 방법

record 레코드명(컴포넌트1, 컴포넌트2, ...) {}

참조

https://velog.io/@oyoungsun/Java-RECORD-DTO를-record-type으로-설정하는-이유

 

[Java - RECORD] , DTO를 record type으로 설정하는 이유

스프링 프로젝트를 기획하면서 DTO를 만드는 과정에서, class를 record로 바꿀 수 있다는 것을 알게되었다.값의 집합으로 이루어진 간단한 객체를 심플하게 개발하기위해 고안되었습니다.immutable dat

velog.io

https://s7won.tistory.com/6

 

자바의 Record로 DTO를 만들어보자 - 2

1. 다시 글을 쓴 이유 안녕하세요. 오늘은 Record에 대해서 다시 한번 작성해보려고 합니다. 생각보다 Record를 보려고 찾아주시는 분들이 많더라구요. 그래서 제가 직접 프로젝트에 도입해서 적극

s7won.tistory.com

 

'기록하기' 카테고리의 다른 글

DAY + 52  (1) 2023.12.06
Day + 48  (1) 2023.12.02
Day + 39  (1) 2023.11.23
Docker  (0) 2023.11.21
Day + 37  (0) 2023.11.21