Skip to content
Discussion options

You must be logged in to vote

직렬화란?

  • 직렬화는 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 변환하는 것을 말합니다.
  • 직렬화를 통해서 프로그램이 실행되는 동안 생성된 객체를 스트림을 이용해서 지속적으로 보관하거나 전송할 수 있습니다.
  • 직렬화가 되어있어야 파일에 읽고 쓸 수 있는 클래스가 된다 !
  • 역직렬화란 스트림에 입력된 데이터를 읽어서 객체 인스턴스를 생성하는 것

조건

  • 직렬화를 하려면 무조건적으로 인터페이스인 java.io.Serializable 를 상속해서 사용해야 합니다.
  • Serializable 인터페이스는 메서드나 필드가 없으며, 직렬화 가능한 의미 체계를 식별하는 역할로만 사용이 됩니다.

어디서 사용되는지

  • 주로 서블릿 세션, 캐시, 자바 RMI 등에서 사용된다고 합니다.

예약어 : transient

  • 객체를 저장하거나, 다른 JVM으로 보낼 때 transient 예약어를 사용하여 선언한 변수는 Serializable 의 대상에서 제외된다.
  • 패스워드와 같이 보안상 중요한 변수나 꼭 저장해야 할 필요가 없는 변수에 대해서는 transient 를 사용하는 것이 좋다.

serialVersionUID

  • serialVersionUID를 통해 직렬화한 객체와 역직렬화할 객체의 버전이 일치하는지 확인한다.
  • 직접 작성하지 않아도 자동으로 추가되지만, static final lon…

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by YuDeokRin
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2 participants