[c#] C#에서 뮤터블과 이뮤터블 데이터 타입

C#은 뮤터블(mutable)과 이뮤터블(immutable) 데이터 타입을 지원합니다. 뮤터블 데이터 타입은 변할 수 있지만, 이뮤터블 데이터 타입은 변하지 않습니다.

뮤터블 데이터 타입

뮤터블 데이터 타입은 값을 변경할 수 있는 데이터 타입을 의미합니다. 예를 들어, 배열(array)과 리스트(list)는 뮤터블 데이터 타입에 속합니다. 이러한 데이터 타입을 사용할 때는 값이 언제든지 변경될 수 있으므로 주의가 필요합니다.

var myList = new List<int> { 1, 2, 3 };
myList.Add(4); // myList가 변경됨

이뮤터블 데이터 타입

이뮤터블 데이터 타입은 값을 변경할 수 없는 데이터 타입을 의미합니다. 예를 들어, 문자열(string)은 이뮤터블 데이터 타입에 속합니다. 한 번 정의된 문자열은 변경할 수 없으며, 새로운 문자열을 생성해야 합니다.

string myString = "Hello";
myString = myString + " World"; // 새로운 문자열이 생성됨

장점과 단점

뮤터블 데이터 타입은 기존 객체를 직접 수정할 수 있어 편리하지만, 여러 곳에서 동시에 수정될 수 있는 위험이 있습니다. 반면, 이뮤터블 데이터 타입은 데이터의 무결성을 보장하고 병렬 처리를 쉽게 할 수 있지만, 새로운 객체를 생성하는 비용이 발생합니다.

C#에서는 뮤터블과 이뮤터블 데이터 타입을 적절히 활용하여 데이터 안전성을 보장하고 자원을 효율적으로 활용할 수 있습니다.