직렬화는 Java에서 지속성을 위해 사용됩니다. 직렬화를 사용하여 몇 가지 개체를 유지하는 것이 좋습니다. 그러나 많은 수의 객체의 경우 ORM, 데이터베이스 등이 더 좋습니다. 직렬화는 소규모 작업에만 유용합니다. 내가 틀렸을 수도 있습니다. 비 직렬화 방법에 비해 직렬화의 장점은 무엇입니까? 언제 사용해야하고 언제 피해야합니까?
이 질문은 DZone 기사 가 Object Serialization Evil입니까?
그리고 이것들은 내 질문을 일으킨 선입니다.
Java와 해당 세션 객체를 보면 순수한 객체 직렬화가 사용됩니다. 애플리케이션 세션이 상당히 오래 지속된다고 가정하면 (최대 몇 시간) 객체 직렬화는 간단하고 잘 지원되며 Java 개념의 세션에 내장됩니다. 그러나 데이터 지속성이 더 오래 (몇 주 또는 몇 주) 지속되고 응용 프로그램의 새로운 릴리스에 대해 걱정해야하는 경우 직렬화는 빠르게 악의가됩니다. 훌륭한 Java 개발자가 알고 있듯이 세션에서도 객체를 직렬화하려면 1L이 아니라 실제 직렬화 ID (serialVersionUID)가 필요하며 Serializable 인터페이스를 구현해야합니다. 그러나 대부분의 개발자는 Java 직렬화 해제 프로세스의 실제 규칙을 모릅니다. 단순한 필드를 객체에 추가하는 것 이상으로 객체가 변경된 경우 직렬화 ID가 변경되지 않은 경우에도 Java가 오브젝트를 올바르게 직렬화 해제 할 수 없습니다. 갑자기 데이터를 더 이상 검색 할 수 없으므로 본질적으로 나쁩니다.
이제 이것을 읽는 개발자는이 문제가있는 코드를 절대 작성하지 않을 것이라고 말할 수 있습니다. 사실 일 수도 있지만 회사에서 더 이상 사용하지 않는 라이브러리 나 다른 개발자는 어떻습니까? 이 문제가 발생하지 않을 것이라고 보장 할 수 있습니까? 이를 보장하는 유일한 방법은 다른 직렬화 방법을 사용하는 것입니다.
1L
정확하지 않습니다.