직렬화란?
- 객체와 통신 또는 파일시스템간의 패러다임 불일치가 존재합니다
- 객체는 필드와 메서드 등으로 이루어지는데, 메모리상에서 반드시 인접한 위치에 존재하리라는 보장이 없습니다
- 통신이나 파일시스템은 0과1의 ByteStream으로 이루어지는데, 반드시 인접한 위치에 존재해야 합니다
- 객체를 통신이나 파일시스템에 사용하려면 ByteStream으로 바꿔줘야할 필요성이 존재합니다
<aside>
💡 직렬화는 정말 다양한 의미로 사용됩니다
- 객체를 바이트스트림으로 바꾸는 것
- 멀티스레드의 동시다발적인 요청들을 큐 등에 넣어 순차적으로 처리할 수 있도록 하는 것
등 다양한 곳에서 직렬화라는 용어를 사용하고 있습니다
</aside>
<aside>
💡 여기서는, 자바 자체적으로 지원하는 객체의 변환 라이브러리만을 '자바 직렬화(Serialize)'라는 방법으로 통칭합니다
자바 직렬화 외의 다른 방법으로는 JSON등의 직렬화 방식이 있습니다
</aside>