직렬화는 신중해야함

<aside> 💡 Serializable을 구현하고 릴리즈 한 뒤에는 수정하기 어렵다.

</aside>

⇒ 직렬화 가능한 클래스를 만들기 위해서는 고품질의 직렬화 형태도 주의하여 설계해야함

[item 87] 커스텀 직렬화 [item90]직렬화 프록시

직렬화의 단점

<aside> 💡 잘못 설계한 직렬화는 클래스 개선을 방해한다.

</aside>

스트림 고유 식별자(UID)

모든 직렬화된 클래스는 고유 식별 변호를 부여받음

static final long serialVerisonUID;

→ 따로 지정하지 않으면, 시스템에서 해시함수를 적용해 자동으로 생성하는데

을 포함하여 해시함수가 적용되기 때문에, 하나라도 변경되면 UID가 맞지않아 호환에 문제가 생긴다.

InvalidClassException 발생