-
JAVA - 객체 직렬화CS/Java 2021. 2. 19. 22:30
객체 직렬화(Serialization)
직렬화
-
내부에서 사용되는 객체 또는 데이터를 외부의 시스템에서도 사용할 수 있도록 다른 형태(바이트, JSON등)로 변환하는 기술이다.
- 자바에서는 Serializable 인터페이스를 통해서 직렬화를 구현한다.
역직렬화
- 직렬화와 반대된다. 즉, 직렬화된 데이터를 역으로 직렬화 하여 객체로 재구성 하는 것을 의미한다.
객체 직렬화
-
객체 직렬화: 객체의 내용을 자바 I/O가 자동적으로 바이트 단위로 변환하는 기능을 제공한다.
-
자바의 I/O처리는 정수, 문자열, 바이트 단위의 처리만 지원하므로 복잡한 객체의 내용을 저장/복원 하거나 네트워크로 전송하기 위해선 객체의 멤버변수의 각 내용을 일정한 형식(패킷)으로 만들어 전송해야 한다.
-
자바에서 자동으로 처리해 주기 때문에 OS가 달라도 문제되지 않는다.
-
직렬화를 처음 시작한 객체를 중심으로 트리 구조의 객체 직렬화가 연속적으로 일어난다.
RMI(원격 메소드 호출)
- 한 쪽의 JVM에 존재하는 객체가 네트워크를 통해 다른 곳의 JVM에 존재하는 객체의 메소드를 호출할 수 있게 해주는 기술이다.
- 원격 객체 통신을 지원하기 때문에 객체의 내용이 투명하게 이동해야 한다.
- RMI를 위해 객체를 네트워크로 전송 가능한 형태로 바꿀 필요가 있으며 이 때 사용되는 개념이 직렬화/역직렬화 이다.
Serializable 인터페이스
-
객체 직렬화가 필요한 객체는 반드시 Serializable 인터페이스를 구현 해야 한다.
- Override해야할 메소드는 없다.
reference
'CS > Java' 카테고리의 다른 글
JAVA - Ramda (0) 2021.02.26 JAVA - Generic (0) 2021.02.26 JAVA - final (0) 2021.02.19 JAVA - Mutable, Immutable (0) 2021.02.18 JAVA - foreach (0) 2021.02.18 -