[스프린터스] 직렬화(Serialization)

MSK·2022년 6월 22일
0

직렬화(Serialization)

  • 디스크에 저장하거나 네트워크 통신을 할 때 값형식 데이터만 사용할 수 있기 때문에 byte 형태로 데이터를 변환해야함
  • 자바 시스템 내부에서 사용되는 Object 또는 Data를 외부의 자바 시스템에서도 사용할 수 있도록 byte 형태로 데이터를 변환하는 기술.
  • JVM(Java Virtual Machine 이하 JVM)의 메모리에 상주(힙 또는 스택)되어 있는 객체 데이터를 바이트 형태로 변환하는 기술

Java에서의 직렬화

  • java.io.Serializable 인터페이스를 상속
import java.io.Serializable;

public class Member implements Serializable {

    private String name;
    private String email;
    private int age;

    public Member(String name, String email, int age) {
        this.name = name;
        this.email = email;
        this.age = age;
    }

    @Override
    public String toString() {
        return String.format("Member{name='%s', email='%s', age='%s',", name, email, age);
    }
}

언제 사용하는가?

  • JVM의 메모리에만 상주되어 있는 객체 데이터를 그대로 영속화(persist)가 필요할 때
  • 서블릿 세션들이 서블릿 메모리 위에서 운용한다면 직렬화가 필요없지만, 파일로 저장하거나 세션 클러스터링, DB를 저장하는 옵션등을 선택하게 되면 세션 자체가 직렬화되어 저장되어 전달
  • 캐시할 부분을 자바 직렬화된 데이터를 저장해서 사용됩니다.

참고자료

profile
여긴어디나는누구

0개의 댓글