직렬화 란 무엇입니까?
OOP 프로그래밍을 시작하고 OOP 용어에서 직렬화의 의미가 무엇인지 알고 싶습니다.
직렬화는 메모리의 객체를 바이트 스트림으로 변환하여 디스크에 저장하거나 네트워크를 통해 전송하는 것과 같은 작업을 수행하는 프로세스입니다.
역 직렬화는 리버스 프로세스입니다. 바이트 스트림을 메모리의 객체로 변환합니다.
간단히 말하면 직렬화 는 네트워크를 통해 전송되거나 영구 저장소에 저장 될 수 있도록 객체를 바이트 스트림으로 변환하는 프로세스입니다.
역 직렬화는 정반대입니다. 네트워크 또는 지속성 저장소에서 바이트 스트림을 가져와 동일한 상태 의 Object 로 다시 변환합니다 .
이해해야 할 것은 바이트 스트림이 해석되거나 조작되어 정확히 동일한 객체 / 동일한 상태를 얻는 방법입니다. 이를 달성하기위한 다양한 방법이 있습니다. 그들 중 일부는-
- XML : Object를 XML로 변환하거나 네트워크를 통해 전송하거나 파일 / DB에 저장합니다. 그것을 검색하고 같은 상태의 객체로 다시 변환하십시오. Java에서는 JAXB (Java binding for Java binding) 라이브러리를 사용합니다 (java 6부터 JDK와 번들로 제공).
- JSON : Object를 JSON (JavaScript Object notation) 으로 변환하여 동일하게 수행 할 수 있습니다 . 다시 사용할 수있는 GSON 라이브러리가 있습니다.
- 또는 OOP 언어 자체에서 제공하는 직렬화를 사용할 수 있습니다. 예를 들어 Java에서는 구현
Serializable interface
하고 객체 스트림에 쓰도록 객체를 직렬화 할 수 있습니다 .
그림을 통한 간단한 설명 :
유추에 의한 설명 :
내가 전화로 내 친구와 이야기하고 있고 새 강아지에 대해 이야기하고 있다고 가정 해 봅시다.
여기 내 문제가 있습니다 : 강아지는 살아 숨쉬는 포유류입니다. 전화선을 통해 강아지를 어떻게 전해야합니까? 강아지를 전화 수신기에 물리적으로 넣을 수 없습니다.
대신, 전화로 강아지의 표현을 전달해야합니다. 다시 말해, 나는 내 개 렉스를 직렬화하고 전화선을 통해 직렬화 된 버전의 Rex를 보냅니다.
{ "name":"Rex", "age":5, "favourite_food": pedigree_choice_cuts, "favourite_game": fetch_ball, "favourite_hobby": wagging_tail }
내 강아지의 직렬화-완벽한 표현입니다.
요약:
직렬화는 기본적으로 내 개 렉스를 다른 객체 (JSON 객체)로 변환 한 다음 전화선을 통해 일련의 1과 0으로 전송할 수 있습니다. NYC의 내 친구는 그 1과 0을 다시 JSON 객체로 변환하여 내 개 렉스를 완벽하게 표현할 수 있습니다. 단순한! 질문 있습니까? 의견을 게시하십시오.
이것을 확인하십시오, 이것은 당신에게 좋은 설명을 줄 것입니다 :
http://en.wikipedia.org/wiki/Serialization
직렬화라는 용어의 가장 일반적인 사용은 이진 객체를 XML (또는 다른 문자열) 표현으로 변환하여 데이터베이스 / 파일에 저장하거나 웹 서비스 호출에서 네트워크를 통해 전송하는 것과 관련이 있다고 생각합니다. 역 직렬화는 XML / 문자열을 다시 객체로 변환하는 역 프로세스입니다.
편집 : 또 다른 용어는 마샬링 / 비 마샬링입니다. 마샬링은 기본적으로 직렬화와 동일한 개념이며 비 정렬 화는 직렬화 해제와 동일합니다.
직렬화는 객체를 바이트 스트림으로 변환하여 객체를 저장하거나 메모리, 데이터베이스 또는 파일로 전송 하는 프로세스입니다 . 주요 목적은 필요할 때 다시 만들 수 있도록 객체의 상태를 저장하는 것입니다. 역 프로세스를 역 직렬화라고합니다.
...
이 그림은 전체 직렬화 프로세스를 보여줍니다.
...
직렬화를 통해 개발자는 웹 서비스를 통해 원격 애플리케이션으로 오브젝트를 전송하거나 한 도메인에서 다른 도메인으로 오브젝트를 전달하거나 XML 문자열로 방화벽을 통해 오브젝트를 전달하거나 보안 또는 사용자 별 특성을 유지하는 등의 조치를 수행 할 수 있습니다. 응용 프로그램 간 정보
에서 https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/serialization/
(강조 광산)
직렬화 는 정렬되지 않은 데이터 (예 : 개체)를 일련 의 토큰 으로 변환하여 나중에 원본 데이터를 재구성하는 데 사용할 수있는 프로세스입니다 . 직렬화 된 양식은 대부분 텍스트 문자열이지만 반드시 그럴 필요는 없습니다.
직렬화는 객체를 저장 가능한 비트 시퀀스로 변환합니다.
이 시퀀스를 파일, db 또는 네트워크를 통해 전송하여 저장할 수 있습니다.
later you can deserialize it to the actual object and reuse it whenever you want.
Web Services and AJAX is the most common example of serialization. The objects serialized before sending the response to the client.
serialization is nothing but transfering the java supported object to file supported form
(OR)
converting java supported form to network supported form..the main scope of the serialization is nothing but to transfering the data from one layer to the another layer...only serialized objects we can send over the network..
Serialization is the process of converting a Java,C# or any other (OOP languages) supported object to a transportable form. This way it be transported over the network or stored on a disk. For a class to be serializable, it must implement serializable interface.
Serialization is when object (a chunk of memory) translated in a form when object's state could be saved in file (as an example).
Just treat it as making cookies - object is a dough, cookie - is a serialized dough.
So by "serializing" you can send cookie to your friend.
Something like that :-)
Serialization is turning data into a linear "string" of bytes.
Others have said more or less the same thing, but I stress that computer models require that data fits in the one-dimensionally addressed RAM or persistent storage.
Most things that are "data" are inherently serializable (even if you must reduce the abstract model to a linear one); not serializable are say a network connection or a complicated state-based machine like a parser.
serialization has to do with converting a binary object into an XML (or other string) representation so that it can be stored in a database/file or sent across a network in a web service call. Deserialization is the reverse process - converting an XML/string back into an object.
When instantiating (constructing) the actual object(the thing) from a class (blueprint) there is a need to save the object (thing) by serializing it (breaking it down to its basic atomic structure) to a space in memory. (Kind of like Star Treks Transporter). You break the thing down into it stream of information that can be transported somewhere and stored. Then when you want to reconstruct the thing you just pull the atomically stored instance back into the object. Different from instaniation.
직렬화는 객체를 이진 데이터 스트림으로 변환하여 파일에 저장하거나 네트워크를 통해 동일한 객체로 다시 복원 할 수 있도록하는 프로세스입니다.
이 문서는 Java 직렬화를 자세히 이해하는 데 도움이됩니다.
참고 URL : https://stackoverflow.com/questions/633402/what-is-serialization
'IT story' 카테고리의 다른 글
Oracle SQL에서 날짜 비교 (0) | 2020.07.06 |
---|---|
대화식 편집 중 Vim 내부에서 git rebase를 중단하는 방법 (0) | 2020.07.06 |
소프트 키보드가 표시 될 때 레이아웃을 위로 이동 하시겠습니까? (0) | 2020.07.06 |
루비 클래스 유형 및 사례 설명 (0) | 2020.07.06 |
Matplotlib (pyplot) savefig는 빈 이미지를 출력합니다. (0) | 2020.07.06 |