[Java] 직렬화
2020. 7. 13. 16:39ㆍLanguage/Java
1. 직렬화
인스턴스의 상태를 그대로 저장하거나 네트워크로 전송하고 다시 복원하는 방식이다. ObjectInputStream, ObjectOutputStream 보조 스트림을 사용한다. 인스턴스 내용이 외부로 유출되는 것이므로 객체의 직렬화 가능 여부를 명시하고 구현 코드가 없는 mark interface한다.
// 직렬화하겠다는 의도로 인터페이스 사용
class Person implements Serializable {
String name;
String job;
}
※ 역직렬화 과정에서 안정적인 다운캐스팅을 수행할 때 EOFException 오류에 대한 처리를 하지 못한다.
2. transient
trainsient 키워드를 통해 직렬화를 수행을 방지할 수 있다. 직렬화할 수 없는 socket에 사용한다.
3. Externalizable
구현할 수 있는 메서드가 존재한다(writeExternal, readExternal). readObject, writeObject에 대한 직접 읽고 쓰는 로직 구현이 가능하다.
728x90
'Language > Java' 카테고리의 다른 글
[Java] Process, Thread (0) | 2020.07.13 |
---|---|
[Java] 그 외 입출력 클래스와 데코레이터 패턴 (0) | 2020.07.13 |
[Java] 보조 스트림 (0) | 2020.07.13 |
[Java] 문자 단위 스트림 (0) | 2020.07.13 |