ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA - 객체 직렬화
    CS/Java 2021. 2. 19. 22:30

    객체 직렬화(Serialization)


    직렬화

    • 내부에서 사용되는 객체 또는 데이터를 외부의 시스템에서도 사용할 수 있도록 다른 형태(바이트, JSON등)로 변환하는 기술이다.

    • 자바에서는 Serializable 인터페이스를 통해서 직렬화를 구현한다.

     

    역직렬화

    • 직렬화와 반대된다. 즉, 직렬화된 데이터를 역으로 직렬화 하여 객체로 재구성 하는 것을 의미한다.

     

    객체 직렬화

    • 객체 직렬화: 객체의 내용을 자바 I/O가 자동적으로 바이트 단위로 변환하는 기능을 제공한다.

    • 자바의 I/O처리는 정수, 문자열, 바이트 단위의 처리만 지원하므로 복잡한 객체의 내용을 저장/복원 하거나 네트워크로 전송하기 위해선 객체의 멤버변수의 각 내용을 일정한 형식(패킷)으로 만들어 전송해야 한다.

    • 자바에서 자동으로 처리해 주기 때문에 OS가 달라도 문제되지 않는다.

    • 직렬화를 처음 시작한 객체를 중심으로 트리 구조의 객체 직렬화가 연속적으로 일어난다. 

     

    RMI(원격 메소드 호출)

    • 한 쪽의 JVM에 존재하는 객체가 네트워크를 통해 다른 곳의 JVM에 존재하는 객체의 메소드를 호출할 수 있게 해주는 기술이다.
    • 원격 객체 통신을 지원하기 때문에 객체의 내용이 투명하게 이동해야 한다.
    • RMI를 위해 객체를 네트워크로 전송 가능한 형태로 바꿀 필요가 있으며 이 때 사용되는 개념이 직렬화/역직렬화 이다.

     

    Serializable 인터페이스

    • 객체 직렬화가 필요한 객체는 반드시 Serializable 인터페이스를 구현 해야 한다.

    • Override해야할 메소드는 없다.

     

    reference

    goodgid.github.io/Java-Object-Serialization/

    '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

    댓글

Designed by Tistory.