시리얼라이제이션이란?
OOP(Object-Oriented Programming)를 시작하고 있는데 OOP 용어로 시리얼라이제이션의 의미를 알고 싶습니다.
시리얼라이제이션은 메모리 내의 오브젝트를 바이트 스트림으로 변환하여 디스크에 저장하거나 네트워크를 통해 전송할 수 있도록 하는 프로세스입니다.
역직렬화는 그 반대 프로세스입니다.바이트 스트림을 메모리의 객체로 변환합니다.
간단히 말해 시리얼라이제이션은 오브젝트를 바이트 스트림으로 변환하여 네트워크를 통해 전송하거나 영속적인 스토리지에 저장할 수 있도록 하는 프로세스입니다.
역직렬화는 정반대입니다.네트워크 또는 지속성 스토리지에서 바이트 스트림을 가져와 동일한 상태의 개체로 다시 변환합니다.
이해해야 할 것은 이러한 바이트 스트림이 어떻게 해석되거나 조작되어 동일한 객체/동일한 상태를 얻을 수 있는가 하는 것입니다.그것을 실현하는 방법은 다양합니다.그 중 몇 가지는...
- XML: 객체를 XML로 변환하거나 네트워크를 통해 전송하거나 파일/db에 저장합니다.검색하여 동일한 상태의 개체로 다시 변환합니다.Java에서는 JAXB(XML 바인딩을 위한 Java 아키텍처) 라이브러리를 사용합니다.(java 6부터는 JDK와 함께 제공됩니다).
- JSON: 객체를 JSON(JavaScript Object 표기법)으로 변환하여 동일한 작업을 수행할 수 있습니다.여기에 사용할 수 있는 GSON 라이브러리가 있습니다.
- 또는 OOP 언어 자체에 의해 제공되는 시리얼화를 사용할 수도 있습니다.들어 "Java"를 합니다.
Serializable interface
오브젝트 스트림에 글을 씁니다.
시리얼라이제이션이란?
그림을 통한 간단한 설명:
요약:.
시리얼라이제이션이란, 예를 들면, 제 개 렉스(Rex)를 일련의 1과 0으로 변환하는 것을 의미합니다.이것은, 전화 회선을 개입시켜 전송 해 메모리에 보존할 수 있어 메모리에 보존됩니다.해외에 있는 제 친구들은 이 1과 0을 강아지(직렬화 해제)의 완벽한 표현으로 바꿔서 렉스와 함께 즐길 수 있습니다.
유추의 명확화
여러분, 이건 비유입니다.강아지 롤을 실제로 연재할 수 있을 것 같지 않아요.데이터 구조 또는 기타 복잡한 개체를 직렬화할 수 있습니다.(이 답변은 기술적인 백과사전의 정의에 대해 고민하지 않고 10초 이내에 개념을 재미있게 이해할 수 있도록 작성했습니다.그러나 원하는 경우 이 Wikipedia 링크를 확인하십시오.
이것을 확인해 주세요.이것에 의해, 좋은 설명이 됩니다.
http://en.wikipedia.org/wiki/Serialization
serialization이라는 용어의 가장 일반적인 용도는 바이너리 오브젝트를 XML(또는 다른 문자열) 표현으로 변환하여 데이터베이스/파일에 저장하거나 웹 서비스 호출로 네트워크를 통해 전송할 수 있도록 하는 것이라고 생각합니다.역직렬화는 XML/문자열을 개체로 다시 변환하는 역프로세스입니다.
편집: 다른 용어로는 마샬링/언마샬링이 있습니다.마샬링은 기본적으로 시리얼화와 같은 개념이며, 언마샬링은 역직렬화와 동일합니다.
직렬화는 개체를 바이트 스트림으로 변환하여 개체를 저장하거나 메모리, 데이터베이스 또는 파일로 전송하는 프로세스입니다.그 주된 목적은 오브젝트 상태를 저장하여 필요할 때 오브젝트를 재생성하는 것입니다.그 반대의 프로세스를 역직렬화라고 부릅니다.
...
이 그림은 시리얼라이제이션의 전체적인 프로세스를 나타내고 있습니다.
...
시리얼라이제이션에 의해 개발자는 웹 서비스를 통해 리모트애플리케이션에 오브젝트를 송신하거나 도메인 간에 오브젝트를 전달하거나 XML 문자열로서 방화벽을 통과하는 오브젝트를 전달하거나 애플리케이션 전체에서 보안 또는 사용자 고유의 정보를 유지하는 등의 액션을 수행할 수 있습니다.
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/serialization/ 에서
(내 것을 제외)
직렬화는 순서가 없는 데이터(예: 개체)를 나중에 원래 데이터를 재구성하는 데 사용할 수 있는 일련의 토큰으로 변환하는 프로세스입니다.직렬화된 형식은 대부분의 경우 텍스트 문자열이지만 반드시 문자열일 필요는 없습니다.
직렬화는 Java, C# 또는 기타 (OOP 언어) 지원 개체를 전송 가능한 형식으로 변환하는 프로세스입니다.이렇게 하면 네트워크를 통해 전송되거나 디스크에 저장됩니다.클래스를 시리얼화하려면 시리얼화 가능한 인터페이스를 구현해야 합니다.
serialization은 객체를 저장 가능한 비트시퀀스로 변환하고 있습니다.
따라서 이 시퀀스를 파일, DB 또는 네트워크를 통해 전송할 수 있습니다.
나중에 실제 개체로 역직렬화하여 필요할 때 언제든지 재사용할 수 있습니다.
Web Services 와 AJAX 는, 시리얼화의 가장 일반적인 예입니다.클라이언트에 응답을 보내기 전에 직렬화된 개체입니다.
serialization은 java 지원 개체를 파일 지원 형식으로 전송하는 것에 불과합니다.
(OR)
Java 지원 폼을 네트워크 지원 폼으로 변환합니다.시리얼라이제이션의 주요 범위는 데이터를 한 계층에서 다른 계층으로 전송하는 것입니다.네트워크를 통해 전송할 수 있는 것은 직렬화된 객체뿐입니다.
클래스(청사진)에서 실제 오브젝트(물건)를 인스턴스화(구성)할 때 오브젝트를 메모리 공간에 시리얼화(기본 원자구조로 분해)하여 저장할 필요가 있다(스타트랙스 트랜스포터).데이터를 정보의 흐름으로 세분화하면 전송 및 저장될 수 있습니다.그런 다음 해당 항목을 재구성할 때 원자적으로 저장된 인스턴스를 개체로 다시 끌어오면 됩니다.선동과는 다릅니다.
직렬화는 데이터를 바이트의 선형 "문자열"로 변환합니다.
다른 사람들도 거의 같은 말을 했지만, 저는 컴퓨터 모델에서는 데이터가 1차원적으로 주소 지정된 RAM이나 영구 스토리지에 적합해야 한다고 강조합니다.
"데이터"의 대부분은 본질적으로 직렬화 가능하지만(추상 모델을 선형으로 축소해야 하는 경우에도), 직렬화 불가능은 네트워크 연결이나 파서와 같은 복잡한 상태 기반 시스템입니다.
시리얼화는 바이너리 오브젝트를 XML(또는 다른 문자열) 표현으로 변환하여 데이터베이스/파일에 저장하거나 웹 서비스 호출로 네트워크를 통해 전송할 수 있도록 합니다.역직렬화는 XML/문자열을 개체로 다시 변환하는 역프로세스입니다.
시리얼라이제이션은 오브젝트를 바이너리 데이터 스트림으로 변환하여 파일에 저장하거나 네트워크를 통해 전송하여 동일한 오브젝트로 되돌릴 수 있도록 하는 프로세스입니다.
이 문서는 Java 시리얼라이제이션에 대해 자세히 이해하는 데 도움이 됩니다.
시리얼라이제이션은 오브젝트(메모리 청크)가 형식으로 변환되었을 때 오브젝트의 상태를 파일(예:)에 저장할 수 있습니다.
쿠키를 만드는 것처럼 다루세요.-물체는 반죽이고, 쿠키는 연속된 반죽입니다.
따라서 "직렬화"를 통해 친구에게 쿠키를 보낼 수 있습니다.
뭐 그런 거 :-)
Serialization(시리얼라이제이션)이라는 이름은 메모리 내의 데이터를 디플러그하기 때문에 붙여진 것일 수 있습니다.여기에서는 메모리 플래그멘테이션이란 무엇입니까?메모리 플래그멘테이션이란?
그저 그것을 이해하려면 다음 아이디어를 고려하세요.
시리얼화:
"hello world".split() returns ['hello', 'world']
디시리얼라이제이션:
" ".join(['hello', 'world']) returns "hello world"
언급URL : https://stackoverflow.com/questions/633402/what-is-serialization
'programing' 카테고리의 다른 글
sqrt(n)의 정수 부분을 얻는 가장 빠른 방법? (0) | 2022.08.27 |
---|---|
Vue 변경 폭 및 내용 (0) | 2022.08.27 |
Java Servlet이란? (0) | 2022.08.27 |
Java POJO의 필드, 변수, 속성 및 속성은 어떤 차이가 있습니까? (0) | 2022.08.27 |
Python 프로그램을 C/C++ 코드로 변환하시겠습니까? (0) | 2022.08.27 |