[c#] 뮤터블과 이뮤터블의 사용 예시와 활용 패턴
C#에서는 뮤터블(mutable)과 이뮤터블(immutable) 데이터 타입을 모두 사용할 수 있습니다. 뮤터블 객체는 변경 가능한 상태를 가지며, 해당 객체가 메모리에서 수정될 수 있습니다. 반면에 이뮤터블 객체는 수정이 불가능하며, 변경되지 않은 상태에서 새로운 값으로 복사됩니다. 이러한 두 가지 데이터 타입을 적절히 활용하면 메모리 사용 및 데이터 무결성 측면에서 이점을 얻을 수 있습니다.
뮤터블와 이뮤터블의 사용 예시
뮤터블(Mutable) 예시
아래는 C#에서의 뮤터블 예시입니다.
public class MutableExample
{
public int Value { get; set; }
}
// ...
var mutableObj = new MutableExample { Value = 5 };
mutableObj.Value = 10; // 뮤터블 객체의 값을 변경할 수 있음
이뮤터블(Immutable) 예시
이뮤터블 타입의 예시로는 System.String
이나 System.DateTime
등이 있습니다.
string immutableStr = "immutable";
immutableStr = immutableStr.ToUpper(); // 새로운 값이 생성되며 이뮤터블한 성질이 유지됨
활용 패턴
뮤터블의 활용 패턴
뮤터블 객체는 상태가 변경될 수 있는 경우에 유용하게 사용됩니다. 예를 들어 데이터베이스에서 읽어온 값을 프로그램 내에서 수정해야 하는 경우에는 뮤터블한 객체를 사용하여 해당 값을 변경할 수 있습니다.
이뮤터블의 활용 패턴
이뮤터블 객체는 병렬 처리나 스레드 안전성 등을 고려해야 하는 경우에 유용합니다. 또한, 함수형 프로그래밍 패러다임에서 데이터 불변성을 유지하고 싶을 때도 이뮤터블한 객체를 사용할 수 있습니다.
결론
C#에서는 뮤터블과 이뮤터블한 객체를 적절히 활용하여 프로그램의 효율성과 안전성을 높일 수 있습니다. 각 데이터 타입의 특성을 이해하고 해당 특성에 맞는 객체를 선택하여 적절히 활용하는 것이 중요합니다.
참고 문헌:
- Microsoft Docs. “Immutable Objects.” Microsoft, https://docs.microsoft.com/en-us/dotnet/standard/design-guidelines/immutable-objects. Accessed 10 Dec. 2021.