[C#] 레코드(Record) 형식으로 만드는 불변(Immutable) 객체
불변 객체(Immutable Object) 불변 객체는 내부 상태(데이터)를 변경할 수 없는 객체를 말한다. 상태를 변경할 수 없다는 특성 때문에 불변 객체에서는 데이터 복사와 비교가 많이 이뤄진다. 레코드(record)는 이런 불변 객체에서 빈번하게 일어나는 복사와 비교 연산을 편하게 수행할 수 있도록 C# 9.0에서 도입된 형식이다. record Transaction { ... } "불변 객체는 클래스나 구조체로도 만들 수 있지 않아?" 클래스는 참조 형식이므로 모든 필드를 readonly로 선언하면 불변 객체로 만들 수 있다. 구조체는 값 형식이므로 readonly struct로 구조체를 선언하면 된다. 컴파일러가 모든 필드를 readonly로 선언하도록 강제하기 때문. 참조 형식과 값 형식의 장점..