cleanUrl: /posts/implement-serializable-with-great-caution-effective-java-86
share: true

자바에 대해 무언가 궁금한 것이 있다면 역시 Effective Java 를 보는 것이 확실한것 같다. 이 item 은 정말 Serializable 을 구현해야 하는지, 무엇이 필요한지, 주의할 것은 무엇인지를 간단히 살펴본다.

직렬화: 데이터를 Stream 으로 전송할 수 있는 상태로 만든다 (ex. 파일) 역직렬화: Stream 으로 전송 받은 데이터를 객체로 만든다

<script async src="<https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js>"></script>
<ins class="adsbygoogle"
     style="display:block; width: 100%;"
     data-ad-format="fluid"
     data-ad-layout-key="-fb+5w+4e-db+86"
     data-ad-client="pub-8946038251809377"
     data-ad-slot="5490836264"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script>

직렬화가 클래스 개선을 방해하는 예시들

직렬 버젼 UID(serial Version ID)

버그와 보안 구멍이 생길 위험이 높아진다

클래스의 신버전을 일리즈 할때 테스트할 것이 늘어난다.