[c#] 직렬화의 이점
C#에서 직렬화는 객체를 바이트 스트림으로 변환하는 프로세스입니다. 직렬화를 사용하면 객체를 파일에 저장하거나 네트워크를 통해 전송할 수 있습니다. 이로 인해 여러 가지 이점이 있습니다.
1. 데이터 저장
직렬화를 사용하여 객체를 파일에 저장할 수 있습니다. 이를 통해 데이터를 장치에 저장하고 나중에 다시 로드할 수 있습니다.
using System;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
class Person
{
public string Name;
public int Age;
}
class Program
{
static void Main()
{
Person person = new Person { Name = "Alice", Age = 30 };
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream stream = new FileStream("person.bin", FileMode.Create))
{
formatter.Serialize(stream, person);
}
}
}
2. 네트워크 통신
직렬화를 사용하여 객체를 네트워크를 통해 전송할 수 있습니다. 이는 원격 API 호출이나 분산 시스템에서 유용합니다.
using System;
using System.Net;
using System.Net.Sockets;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]
class Data
{
public string Message;
}
class Program
{
static void Main(string[] args)
{
Data data = new Data { Message = "Hello, World!" };
BinaryFormatter formatter = new BinaryFormatter();
using (TcpClient client = new TcpClient("127.0.0.1", 8080))
{
NetworkStream stream = client.GetStream();
formatter.Serialize(stream, data);
}
}
}
3. 상태 저장
직렬화를 사용하여 객체의 상태를 저장하고 나중에 복원할 수 있습니다. 이는 애플리케이션의 상태를 보존하거나 프로그램의 이전 세션을 복원하는 데 유용합니다.
직렬화는 C#에서 객체를 유연하게 다룰 수 있는 강력한 도구입니다.
MSDN Documentation on Serialization