JavaBookStudy / JavaBook

책읽기 스터디
https://javabookstudy.github.io/
Apache License 2.0
19 stars 2 forks source link

[Effective Java] Item 87. 직렬 버전 UID의 목적 #56

Closed kjsu0209 closed 3 years ago

kjsu0209 commented 3 years ago

직렬 버전 UID가 호환성 문제를 해결하기 위해서만 존재하나요? 다른 용도가 있는지 궁금합니다.

taxol1203 commented 3 years ago

넵, serialVersionUID는 예상하신 것 처럼, 직렬화와 역직렬화를 하는 시점의 클래스에 대한 버전 번호를 부여하여, 역 직렬화 중에서 직렬화된 개체의 송신자와 수신자가 직렬화와 관련하여 호환되는 해당 개체의 클래스를 로드했는지 확인하는 용도로만 사용된다 라는 내용이 대부분 나와있네요

jth2747 commented 3 years ago

객체를 저장하고 불러올 때 serialVersionUID를 사용하는데, 이 값을 지정하지 않으면 컴파일러가 계산한 값을 부여합니다. 그럼 컴파일러에 따라서 값이 다 달라지는 경우가 발생해서 호환성에 문제가 생길 것입니다. serialVersionUID는 이런 문제를 해결하기 위한 용도로 쓰인다고 언급되어 있습니다..