상세 컨텐츠

본문 제목

Java Record type

자바

by R4MeN 2024. 5. 20. 19:24

본문

Record

Record는 값의 집합으로 이루어진 간단한 객체를 심플하게 개발하기 위해 고안됨. immutable data(불변 데이터)를 다루는 클래스 구현에 최적화되어 있음. 웹서비스 구현에서 많이 사용되는 DTO 개념에 적용하면 유용함.

주요 특징

  1. final 클래스: 다른 클래스를 상속하거나 상속시킬 수 없음
  2. 자동 생성 accessor 함수: 인스턴스 멤버 변수의 이름과 동일함
  3. 접근제어자: 클래스의 접근제어자는 public, package-private만 가능. 생성자의 접근제어자는 클래스의 접근제어자보다 제한된 수준이어서는 안됨

장점

  • 반복 작업 불필요: 생성자, accessor(getter), equals(), hashCode(), toString() 등 반복적인 작업을 자동으로 처리함
  • 명시적 용도 표현: "이 클래스는 data carrier 용도"임을 명시적으로 나타내어 코드 이해를 돕고, 해당 클래스의 목적에 맞지 않는 구현을 방지함

DTO 클래스에 Record가 적합한 이유

  • 데이터 전달: 데이터를 한쪽에서 다른 한쪽으로 전달하는 데 사용되는 데이터 전송 객체(DTO)에 적합함
  • 효율성: 불필요한 데이터를 제거하여 대역폭 사용량을 줄임
  • 캡슐화: 세부 구현을 노출시키지 않음
  • 불변성: 변경되지 않는 API 설계를 지원함

기존 구현 방식의 문제점

  • 게터(getter), equals(), hashCode(), toString() 같은 반복적인 코드를 작성해야 했음
  • 롬복이나 IDE의 도움을 받을 수 있었지만, 여전히 번거로운 작업이었음

Record 클래스를 사용하면 이러한 문제점을 해결할 수 있음.

'자바' 카테고리의 다른 글

this와 this(), super와 super()  (0) 2024.06.02
Overloading[오버로딩] vs Overriding[오버라이딩]  (0) 2024.05.28
자바 수강생 삭제 - removeif  (0) 2024.05.08
자바 문법 Week4  (0) 2024.05.02
자바 문법 Week2  (0) 2024.04.30

관련글 더보기