C# 9의 init 접근자로 불변 개체 만들기

  • 2 minutes to read

C# 9에서는 init 접근자가 새롭게 추가되어 개체의 불변성을 보장하는 속성을 정의할 수 있습니다. 기존의 set 접근자와 유사하지만, init 키워드를 사용하면 속성 값은 생성자나 개체 이니셜라이저를 통해서만 설정할 수 있습니다. 개체가 생성된 이후에는 값 변경이 불가능해, 코드의 안정성과 가독성을 높이는 데 유리합니다. 아래 코드 예제를 보면 Vendor 개체의 Name 속성은 초기화 시점에만 설정할 수 있고, 이후에는 수정이 불가능한 것을 확인할 수 있습니다.

public class Vendor
{
    public string Name { get; init; }
}

var vendor = new Vendor { Name = "Microsoft" };  // 초기화 시 설정 가능
// vendor.Name = "Hawaso";  // 컴파일 오류: 'init' 속성은 수정할 수 없음

init 접근자를 활용하면 개체가 생성된 이후 속성 값을 변경할 수 없기 때문에, 의도치 않은 데이터 수정으로 인한 문제를 예방할 수 있습니다. 이러한 속성은 데이터 모델 (Data Models), 데이터 전송 객체 (DTO), 레코드 타입 (Record Types) 등에서 특히 유용하며, 개체의 상태를 초깃값 그대로 유지할 수 있도록 도와줍니다. 또한, 중요한 값이 비즈니스 로직 중에 실수로 변경되는 것을 방지하여 코드의 안정성을 높입니다. 이처럼 init 접근자는 초기 설정 이후 값을 변경할 필요가 없는 경우에 유용하게 사용됩니다.

VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com