OOP (Object-Oriented Programming)를 시작하고 OOP 용어에서 직렬화의 의미가 무엇인지 알고 싶습니다.
OOP (Object-Oriented Programming)를 시작하고 OOP 용어에서 직렬화의 의미가 무엇인지 알고 싶습니다.
답변:
직렬화는 메모리의 객체를 바이트 스트림으로 변환하여 디스크에 저장하거나 네트워크를 통해 전송하는 것과 같은 작업을 수행하는 프로세스입니다.
역 직렬화는 리버스 프로세스입니다. 바이트 스트림을 메모리의 객체로 변환합니다.
Marshal
와 Unmarshal
와 동의어 Serialize
와 Deserialize
.
abc
은 NUL 터미네이터 또는 인코딩 된 길이와 함께 또는없는 것으로 0x61 0x62 0x63
(ASCII) 또는 0x00 0x61 0x00 0x62 0x00 0x63
(UTF16) 으로 직렬화됩니다 .
간단히 말해서 직렬화 는 네트워크를 통해 전송되거나 영구 저장소에 저장 될 수 있도록 객체를 바이트 스트림으로 변환하는 프로세스입니다.
역 직렬화는 정반대입니다. 네트워크 또는 지속성 저장소에서 바이트 스트림을 가져와 동일한 상태 의 Object 로 다시 변환합니다 .
이해해야 할 것은 바이트 스트림이 해석되거나 조작되어 정확히 동일한 객체 / 동일한 상태를 얻는 방법입니다. 이를 달성하기위한 다양한 방법이 있습니다. 그들 중 일부는-
Serializable interface
하고 객체 스트림에 쓰도록 객체를 직렬화 할 수 있습니다 .JSON
나도 알지 못하므로 처음부터 배울 수있는 링크를 제공해 주시겠습니까?
내가 전화로 내 친구와 이야기하고 있고 새 강아지에 대해 이야기한다고 가정 해 봅시다.
여기 내 문제가 있습니다 : 강아지는 살아 숨쉬는 포유류입니다. 전화선을 통해 강아지를 어떻게 전해야합니까? 강아지를 전화 수신기에 물리적으로 넣을 수 없습니다.
대신, 전화로 강아지의 표현을 전달해야합니다. 다시 말해, 나는 내 개 렉스를 직렬화하고 전화선을 통해 직렬화 된 버전의 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/
(강조 광산)
직렬화는 Java, C # 또는 기타 (OOP 언어) 지원 개체를 전송 가능한 형식으로 변환하는 프로세스입니다. 이런 방식으로 네트워크를 통해 전송되거나 디스크에 저장됩니다. 클래스를 직렬화 가능하게하려면 직렬화 가능 인터페이스를 구현해야합니다.
직렬화는 객체의 상태를 파일에 저장할 수있는 형태 (예 :)로 객체 (메모리 덩어리)를 변환 한 경우입니다.
쿠키를 만드는 것으로 취급하십시오-물체는 반죽이고 쿠키는 일련 화 된 반죽입니다.
"직렬화"를하면 쿠키를 친구에게 보낼 수 있습니다.
그런 것 :-)