공부/JAVA

JAVA_[Eclipse_SerialVersionUID]

LuceteWoo:) 2012. 6. 23. 11:30

#### SerialVersionUID ####

 

- 데이타의 전송은 객체건 뭐건 바이트의 흐름으로 전송&저장 이 된다.

  다시 읽었을 때 객체의 자료구조를 그대로 보존하지 않으면 안된다(그것이 Serialzation)

  만일, serialVersionUID 를 지정하지 않으면 실행시점에서 JVM 이 디폴트 값을 산정하게 되며,

  그 알고리즘은 JAVA(TM) Objec Serialzation Specification 의 정의 된것을 따른다고 한다.

  한마디로 굳이 신경 쓸 필요는 없다는 뜻!

 

  모든 serialzation 이 필요한 클래스에는 명시적으로 serialVersionUID 를 선언해주는 것이 좋다.

  그 이유는 디폴트 serialVersionUID 계산은 클래스의 세부 사항을 매우 민감하게 반영하기 때문에

  컴파일러 구현체에 따라 deserialzation(serialization 했던 객체를 복구하는 과정) 과정에서 예상하지 못한

  InvalidClassException을 유발할 수 있다는게 이유란다. 난 몬 소린지 모르겟다.

 

  위에 설명 다 집어 치우고 - 서로 다른 자바 컴파일러 구현체 사이에서도 동일한 serialVersionUID 값을 얻기 위해서는 명시적으로

  serivalVersionUID 값을 선언해야 하며 가능한 serivalVersionUID 을 pivate 으로 선언하라는 것이다.

  (상속되어 쓰여지는 것은 유용하지 않고, 해당 클래스에서만 쓰일 것이기 때문에...)

 

  - 설정 방법

  1. 첨부파일을 압축을 풀고, 이클립스 플러그인 디렉토리에 넣어두면 자동생성 플러그인 설치 끝

serialversionutil-civan.zip

 

  2. 설정 방법

 

 

  다음과 같이 Add SerialVersionUID 가 자동생성 후

  앞에 private 만 적어주면 완료.