[c#] 뮤터블과 이뮤터블의 데이터 유효성 검사

데이터 유효성 검사는 개발자가 데이터를 올바르게 처리하고 저장하기 위해 필수적인 단계입니다. 이 중요한 주제를 다루면서 C#에서 뮤터블과 이뮤터블 데이터의 차이에 대해 알아보고, 각각의 데이터를 어떻게 유효성을 검사하는지 살펴보겠습니다.

뮤터블(mutability) vs. 이뮤터블(immutability)

데이터 유효성 검사

뮤터블(mutability) 데이터의 유효성 검사

뮤터블 데이터를 유효성을 검사할 때는 데이터가 변경되지 않도록 제어해야 합니다. 보통 속성일 경우 setter 함수를 사용하여 입력값을 제어하고, 메서드의 경우 입력값을 유효성 검사하여 처리합니다.

속성의 예시

private string _name;
public string Name
{
    get { return _name; }
    set
    {
        if (string.IsNullOrEmpty(value))
        {
            throw new ArgumentException("Name cannot be null or empty");
        }
        _name = value;
    }
}

메서드의 예시

public void UpdateAge(int age)
{
    if (age <= 0)
    {
        throw new ArgumentException("Age must be greater than 0");
    }
    _age = age;
}

이뮤터블(immutability) 데이터의 유효성 검사

이뮤터블 데이터를 유효성을 검사할 때는 데이터가 변경 불가능하기 때문에 객체 생성 시에 유효성을 검사해야 합니다. 생성자에서 입력값을 검사하여 객체 생성을 여부를 결정합니다.

생성자에서의 유효성 검사

public class ImmutableData
{
    public int Value { get; }
    
    public ImmutableData(int value)
    {
        if (value < 0)
        {
            throw new ArgumentException("Value cannot be negative");
        }
        Value = value;
    }
}

결론

이뮤터블 데이터는 변경되지 않기 때문에 생성 시에 유효성을 검사하여 올바른 상태로 유지할 수 있습니다. 뮤터블 데이터의 경우는 변경을 제어하여 올바른 데이터 처리를 보장할 수 있습니다.

이러한 데이터 유효성 검사를 통해 안정적이고 신뢰할 수 있는 코드를 작성할 수 있습니다.


위와 같이 C#에서 뮤터블과 이뮤터블 데이터의 유효성 검사에 대해 간략하게 알아보았습니다. 데이터 유효성 검사는 개발 중요한 부분이므로 신중하게 처리해야 합니다.