[c#] C#에서의 직렬화와 데이터 검증
C#에서 직렬화와 데이터 검증은 데이터를 저장하고 전송하기 위한 중요한 기술입니다. 직렬화는 객체를 데이터 스트림으로 변환하는 과정을 의미하며, 데이터 검증은 전송된 데이터가 유효한지 확인하는 과정을 말합니다.
이번 포스트에서는 C#에서의 직렬화와 데이터 검증에 대해 알아보겠습니다.
직렬화
직렬화는 개체를 데이터 스트림으로 변환하는 과정입니다. C#에서는 다양한 방법을 사용하여 직렬화를 수행할 수 있습니다. 가장 일반적인 방법은 BinaryFormatter
나 XmlSerializer
를 사용하는 것입니다.
BinaryFormatter를 사용한 직렬화
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 = "John", Age = 30 };
BinaryFormatter formatter = new BinaryFormatter();
using (FileStream stream = new FileStream("person.dat", FileMode.Create))
{
formatter.Serialize(stream, person);
}
}
}
XmlSerializer를 사용한 직렬화
using System;
using System.IO;
using System.Xml.Serialization;
public class Person
{
public string Name;
public int Age;
}
class Program
{
static void Main()
{
Person person = new Person { Name = "John", Age = 30 };
XmlSerializer serializer = new XmlSerializer(typeof(Person));
using (FileStream stream = new FileStream("person.xml", FileMode.Create))
{
serializer.Serialize(stream, person);
}
}
}
데이터 검증
C#에서 데이터를 검증하는 방법은 다양합니다. 주로 데이터의 일관성과 유효성을 검사하여 데이터가 손상되지 않았는지 확인합니다. 예를 들어, 해시 함수를 사용하여 데이터의 무결성을 검증할 수 있습니다.
해시 함수를 사용한 데이터 검증
using System;
using System.Security.Cryptography;
using System.Text;
class Program
{
static void Main(string[] args)
{
string data = "Hello, world!";
byte[] dataBytes = Encoding.UTF8.GetBytes(data);
using (SHA256 sha256 = SHA256.Create())
{
byte[] hash = sha256.ComputeHash(dataBytes);
Console.WriteLine("Computed Hash: " + BitConverter.ToString(hash).Replace("-", ""));
}
}
}
결론
C#에서는 다양한 방법을 사용하여 직렬화와 데이터 검증을 수행할 수 있으며, 데이터의 안전한 저장과 전송을 보장하기 위해 이러한 기술들을 적절히 활용해야 합니다.
이상으로 C#에서의 직렬화와 데이터 검증에 대해 알아보았습니다.
MSDN Magazine - Custom Serialization in C#