안녕하세요. 오늘은 자바 14에서 도입된 레코드 기본에 대해서 알아보겠습니다.
1. 자바 레코드란?
자바 레코드는 자바 14 버전에서 도입된 새로운 클래스 타입입니다. 레코드는 데이터 클래스라고도 불리며, 데이터를 저장하기 위한 목적으로 사용됩니다. 레코드는 객체를 생성하고, 필드를 초기화하고, 객체를 비교하고, 객체를 출력하는 등의 작업을 간단하게 수행할 수 있습니다.
2. 자바 레코드의 특징
자바 레코드는 다음과 같은 특징을 가지고 있습니다.
- 필드의 이름을 기반으로 생성자를 자동으로 생성합니다.
record Person(String name, int age) {
}
Person person = new Person("John Doe", 30);
- 필드의 값을 기반으로 객체를 비교합니다.
Person person1 = new Person("John Doe", 30);
Person person2 = new Person("Jane Doe", 25);
if (person1.equals(person2)) {
System.out.println("The two persons are equal.");
} else {
System.out.println("The two persons are not equal.");
}
- 필드의 값을 기반으로 객체를 출력합니다.
Person person = new Person("John Doe", 30);
System.out.println(person);
출력 : Person(name=John Doe, age=30)
- 객체를 직렬화합니다.
Person person = new Person("John Doe", 30);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("person.ser"));
oos.writeObject(person);
oos.close();
3. 자바 레코드의 사용법
자바 레코드는 다음과 같이 사용합니다.
record Person(String name, int age) {
}
이 레코드는 Person이라는 클래스를 생성하며, name과 age라는 두 개의 필드를 가지고 있습니다. Person 클래스의 객체를 생성하려면 다음과 같이 할 수 있습니다.
Person person = new Person("John Doe", 30);
Person 클래스의 객체를 비교하려면 다음과 같이 할 수 있습니다.
Person person1 = new Person("John Doe", 30);
Person person2 = new Person("Jane Doe", 25);
if (person1.equals(person2)) {
System.out.println("The two persons are equal.");
} else {
System.out.println("The two persons are not equal.");
}
Person 클래스의 객체를 출력하려면 다음과 같이 할 수 있습니다.
System.out.println(person);
이 출력은 다음과 같습니다.
Person(name=John Doe, age=30)
4. 자바 레코드의 장점
자바 레코드는 다음과 같은 장점을 가지고 있습니다.
- 코드의 작성 및 유지보수를 쉽게 할 수 있습니다. 왜냐하면 자바 레코드는 필드의 이름을 기반으로 생성자를 자동으로 생성하고, 필드의 값을 기반으로 객체를 비교하고, 필드의 값을 기반으로 객체를 출력하고, 객체를 직렬화하기 때문입니다. 이로 인해 개발자는 코드를 작성하고 유지보수하는 데 많은 시간을 절약할 수 있습니다.
- 함수형 프로그래밍을 쉽게 할 수 있습니다. 왜냐하면 자바 레코드는 객체를 함수형 프로그래밍에서 사용할 수 있는 인터페이스를 제공하기 때문입니다. 이로 인해 개발자는 함수형 프로그래밍을 사용하여 코드를 더 간결하고 효율적으로 작성할 수 있습니다.
5. 자바 레코드의 단점
자바 레코드는 다음과 같은 단점을 가지고 있습니다.
- 상속을 지원하지 않습니다.
- 인터페이스를 구현하지 않습니다.
- 멀티스레드 환경에서 안전하지 않습니다.
6. 자바 레코드의 활용 사례
자바 레코드는 다음과 같은 분야에서 활용될 수 있습니다.
- 데이터베이스 ORM
- 웹 애플리케이션
- 빅 데이터
자바 레코드에 대해서 간략하게 알아보았는데요. 자바 레코드는 자바 언어의 새로운 기능으로, 코드의 작성 및 유지보수를 쉽게 할 수 있는 장점이 있습니다. 자바 레코드는 다양한 분야에서 활용될 수 있으며, 앞으로 자바 자주 사용할 것으로 예상되니 연습해 봅시다.
2023.06.16 - [JAVA] - JAVA8 | 인터페이스 디폴트 메서드, Optional 클래스
2023.06.16 - [JAVA] - JAVA8 | 스트림 API
2023.06.15 - [JAVA] - JAVA8 | 람다 표현식
'JAVA' 카테고리의 다른 글
JAVA 디자인패턴 - 팩토리(Factory) 패턴 (0) | 2023.07.12 |
---|---|
JAVA 디자인패턴 - 싱글톤(Singleton) 패턴 (0) | 2023.07.12 |
JAVA8 | 인터페이스 디폴트 메서드, Optional 클래스 (0) | 2023.06.16 |
JAVA8 | 스트림 API (0) | 2023.06.16 |
JAVA8 | 람다 표현식 (0) | 2023.06.15 |
댓글