[c#] C# 직렬화와 프로토콜 버퍼
이번 글에서는 C#에서 직렬화와 프로토콜 버퍼에 대해 알아보겠습니다.
직렬화
직렬화는 객체를 파일이나 네트워크로 전송 가능한 형태로 변환하는 프로세스를 말합니다. C#에서는 BinaryFormatter
나 DataContractSerializer
등을 사용하여 객체를 직렬화할 수 있습니다.
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
public class Person
{
public string Name;
public int Age;
}
class Program
{
static void Main()
{
Person person = new Person { Name = "John", Age = 30 };
IFormatter formatter = new BinaryFormatter();
Stream stream = new FileStream("person.bin", FileMode.Create, FileAccess.Write, FileShare.None);
formatter.Serialize(stream, person);
stream.Close();
}
}
프로토콜 버퍼
프로토콜 버퍼는 구조화된 데이터를 직렬화하기 위한 방법 중 하나이며, Google에서 개발되었습니다. 프로토콜 버퍼는 직렬화된 데이터의 크기가 작고, 파싱이 빠르며, 여러 언어에 대한 지원이 우수하다는 장점을 가지고 있습니다.
Google은 C#용 프로토콜 버퍼 라이브러리인 protobuf-net
을 제공하고 있습니다. 이 라이브러리를 사용하면 C#에서 간단하고 빠르게 프로토콜 버퍼를 사용할 수 있습니다.
결론
C#에서는 직렬화를 통해 객체를 파일 또는 네트워크로 전송 가능한 형태로 변환할 수 있습니다. 또한 프로토콜 버퍼를 사용하여 구조화된 데이터를 효율적으로 직렬화하고 파싱할 수 있습니다.