Table of Contents
serialVersionUID 의 용도
Serializable
직렬화 (implements Serializable) 는 서버간 데이타를 전송할 때,
송신 서버에서 클래스를 전송가능한 바이너리 형식으로 변경하고,
수신 서버에서 전송된 바이너리 데이타를 클래스로 변환하게 된다.
서버간 전송뿐만 아니라,
클래스를 파일로 저장할때도 직렬화가 이루어진다.
serialVersionUID 의 기능
serialVersionUID 는 직렬화 (implements Serializable) 를 할 때 사용한다.
송신 서버에서는 serialVersionUID 를 키값으로 바이너리 형식으로 변경하고,
수신 서버에서는 serialVersionUID 를 이용해 바이너리를 클래스로 변환한다.
serialVersionUID 자동할당
serialVersionUID 를 지정해 주지 않으면,
Compiler 가 자동으로 serialVersionUID 값을 생성한다.
문제는 송/수신 서버의 Compiler 버전이 다르게 되면,
InvalidClassException
이 발생한다.
또한, 전송하려는 Class 에 변경이 생긴경우,
serialVersionUID 값
이 변경될 수 있다.
serialVersionUID 수동할당
IntelliJ 를 이용하면 serialVersionUID 를 생성해주는 메뉴를 확인할 수 있다.
Ctrl + Shift + A 를 누른다.
Serializable class without ‘serialVersinoUID’ 를 활성화한다.
또는, Serializable class without ‘serialVerionUID’ 를 활성화한다.
마우스를 가져다 대면, serialVersionUID 를 자동생성해 주는 메뉴가 표시된다.