[c#] C#에서의 직렬화 관련 패턴
C#에서 객체를 파일에 저장하거나 네트워크를 통해 전송하기 위해 직렬화는 매우 유용한 패턴입니다. 이 기술을 활용하면 객체를 이진 형식 또는 XML 형식으로 변환하여 저장하거나 전송할 수 있습니다. 다양한 직렬화 기술을 활용하여 원하는 형식에 맞게 객체를 처리할 수 있습니다.
객체 직렬화
C#에서 객체 직렬화는 System.Runtime.Serialization
네임스페이스를 사용하여 수행됩니다. 이 네임스페이스는 DataContractSerializer
나 BinaryFormatter
와 같은 클래스를 제공하여 객체를 각각 XML 또는 이진 형식으로 직렬화할 수 있습니다.
예제
다음은 C#에서 객체를 이진 형식으로 직렬화하는 간단한 예제입니다.
using System;
using System.IO;
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 = "Alice", Age = 30 };
// 객체를 파일에 저장
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream stream = new FileStream("person.bin", FileMode.Create))
{
formatter.Serialize(stream, person);
}
}
}
위의 예제에서 BinaryFormatter
클래스를 사용하여 Person
객체를 이진 형식으로 직렬화하고, 그 결과를 person.bin
파일에 저장합니다.
결론
C#에서 객체 직렬화는 데이터를 효과적으로 저장하거나 전송하는데 사용될 수 있습니다. DataContractSerializer
를 사용하여 객체를 XML로 직렬화하거나 BinaryFormatter
를 사용하여 객체를 이진 형식으로 직렬화하는 등의 다양한 방법을 활용할 수 있습니다.
여기에서는 C#에서의 직렬화에 대해 간단히 살펴보았지만, 실제 프로젝트에서는 데이터 무결성, 보안 등에 대한 고려가 더 필요한 경우가 많으므로 주의가 필요합니다.