본문 바로가기
프로그래밍 툴/Eclipse

[이클립스] Eclipse에서 serialVersionUID 자동으로 생성해주는 플러그인(Plugin) 설치해서 사용하기

by 우림 2015. 1. 29.

이클립스에서 serialVersionUID 자동으로 생성해주는 플러그인이 있어서 소개를 드립니다.

아래 파일 다운로드 받아서 압축을 풀고 [eclipse > plugin] 폴더에 넣어주시면 됩니다.


플러그인을 넣었다면 이클립스를 껐다가 다시 켠 후에

원하는 java 파일에서 마우스 오른쪽 버튼을 클릭하시면 [Add SerialVersionUID]라는 메뉴가 보이는데 클릭하시면 끝~!!!


잘 생성이 되었네요^^

@SuppressWarnings("serial") 어노테이션으로 해결할수도 있습니다.
아래 링크 클릭해 보세요~
http://zzznara2.tistory.com/admin/entry/post/?id=186


1. Serialization 이란?

 

  모든 데이터의 흐름은 바이트 전송으로 이루어 집니다. 이것은 객체도 마찬가진데, 이때 사용되는 개념이 Serialization 이라는 것이고 자바에서는 java.io.Serializable 이라는 interface입니다.

이것을 사용하는 방법은 implements Serializable 이라고 class명 옆에다 추가만 해주면 됩니다. 그런데, 클래서를 선언하면 static final long 타입의 serialVersionUID 상수를 선언하라는 경고문구를 
이클립스의 노란 warning 아이콘과 더불어 확인 할 수 있습니다.

 

2. serialVersionUID 용도는?

 

만일 serialVersionUID를 지정하지 않으면 실행시점에서 JVM이 디폴트 값을 산정하게 되며, 
그 알고리즘은 Java(TM) Object Serialization Specification 정의된 것을 따른다고 합니다. 
한마디로 굳이 신경 쓸필요는 없다는 뜻이고 이클립스내에서 이 경고아이콘을 제외하도록 설정할 수도 있습니다.

그러나 모든 serialization이 필요한 클래스에는 명시적으로 serialVersionUID를 선언해줄것을 강력하게 권유하고 있는데 그 이유는 디폴트 serialVersionUID 계산은 클래스의 세부 사항을 매우 민감하게 반영하기 때문에 컴파일러 구현체에 따라서 달라질 수 있어 deserialization(serialization 했던 객체를 복구하는 과정)과정에서 예상하지 못한 InvalidClassExceptions을 유발할 수 있다 라는 것이 그 이유입니다.

즉 서로 다른 자바 컴파일러 구현체 사이에서도 동일한 serialVersionUID값을 얻기 위해서는 명시적으로 serialVersionUID값을 선언해야 하며 가능한 serialVersionUID을 private으로 선언하라는 것입니다.


출처 : http://softlife.tistory.com/category/%EA%B0%9C%EB%B0%9C%EB%8F%84%EA%B5%AC/Eclipse


댓글