<aside> 💡 Serializable을 구현하고 릴리즈 한 뒤에는 수정하기 어렵다.
</aside>
커스텀 직렬화
가 아닌 기본 직렬화
를 사용하는 경우 캡슐화가 깨진다
⇒ 직렬화 가능한 클래스를 만들기 위해서는 고품질의 직렬화 형태도 주의하여 설계해야함
[item 87] 커스텀 직렬화 [item90]직렬화 프록시
<aside>
💡 잘못 설계한 직렬화는 클래스 개선
을 방해한다.
</aside>
모든 직렬화된 클래스는 고유 식별 변호를 부여받음
static final long serialVerisonUID;
→ 따로 지정하지 않으면, 시스템에서 해시함수를 적용해 자동으로 생성하는데
을 포함하여 해시함수가 적용되기 때문에, 하나라도 변경되면 UID가 맞지않아 호환에 문제가 생긴다.
InvalidClassException
발생