[c#] 불변 데이터 타입

C#에서 불변 데이터 타입(Immutable Data Type)은 값을 변경할 수 없는 데이터 유형을 의미합니다. 이러한 데이터 유형은 한 번 생성되면 그 값을 변경할 수 없습니다. 이는 코드의 예측 가능성과 안정성을 높이는 데 도움이 됩니다.

불변성의 장점

불변 데이터 타입을 사용하는 것에는 여러 가지 장점이 있습니다. 불변 데이터 타입은 다중 스레드 환경에서 안전하며 부작용이 없고 함수형 프로그래밍 스타일을 지원합니다. 또한 메모리 안정성을 보장하고 예상치 못한 상태 변화를 방지할 수 있습니다.

불변 데이터 타입 예시

C#에서 불변 데이터 타입을 사용하는 일반적인 예시로 System.String이 있습니다. 이 외에도 System.DateTime, System.TimeSpan 등이 있으며, 또한 C# 9부터는 record 타입을 통해 불변 데이터 모델링을 지원하고 있습니다.

아래는 C#에서 readonly 키워드를 사용하여 불변 데이터 타입을 정의하는 예시입니다.

public class ImmutableData
{
    public readonly int Id;
    public readonly string Name;

    public ImmutableData(int id, string name)
    {
        Id = id;
        Name = name;
    }
}

위 예시에서 readonly 키워드는 해당 필드의 값을 변경할 수 없도록 합니다.

결론

불변 데이터 타입은 C#에서 안정성과 예측 가능성을 높이는 데 도움이 되며, 함수형 프로그래밍과 다중 스레드 환경에서 유용합니다. 적절한 상황에서 불변 데이터 타입을 활용하여 안정적이고 확장 가능한 코드를 작성할 수 있습니다.

참고 자료: Microsoft Docs - 불변 데이터 생성