728x90
반응형
Serializable는 Java에서 객체를 바이트 스트림으로 변환하여 파일에 저장하거나 네트워크로 전송할 수 있도록 하는 인터페이스입니다. 이 인터페이스는 데이터 전송이나 저장 후에 다시 원래 객체로 복원할 수 있는 기능을 제공합니다.
주요 특징:
- 마커 인터페이스: Serializable은 아무 메서드도 포함하지 않는 마커 인터페이스입니다. 이 인터페이스를 구현한 클래스는 직렬화가 가능하다는 의미로 Java 시스템에서 인식됩니다.
- 직렬화 (Serialization): 객체를 바이트 스트림으로 변환하여 파일에 저장하거나 네트워크를 통해 전송할 수 있게 합니다.
- 역직렬화 (Deserialization): 직렬화된 바이트 스트림을 다시 객체로 복원하는 과정입니다.
import java.io.Serializable;
public class User implements Serializable {
private static final long serialVersionUID = 1L; // 직렬화 버전 관리용 ID
private String name;
private int age;
// 생성자, getter, setter 등의 코드
}
직렬화 과정:
- 객체를 파일이나 네트워크로 전송할 때, 객체를 직렬화해야 합니다.
- 직렬화된 데이터는 저장되거나 전송된 후, 다시 역직렬화를 통해 원래 객체로 복원됩니다.
유의점:
- transient 키워드를 사용하여 특정 필드는 직렬화 과정에서 제외할 수 있습니다.
- 직렬화되지 않은 객체는 NotSerializableException을 발생시킵니다.
이 인터페이스는 주로 데이터 전송, 파일 입출력 및 세션 관리와 같은 곳에서 자주 사용됩니다.
728x90
반응형
'JAVA' 카테고리의 다른 글
[JAVA] 문자열 날짜를 LocalDate로 날짜 차이 구하기 (0) | 2024.09.22 |
---|---|
[JAVA] DecimalFormat (0) | 2024.09.21 |
[JAVA] Map containsKey (1) | 2024.09.14 |
[JAVA] stream anyMatch 사용 (0) | 2024.09.09 |
[JAVA] String 배열에서 null값을 제외하고 반환하기 (0) | 2024.09.02 |