사실 고수라고 해봤자 초기에 나오는 내용이기는 한지라 아실 수 있는 분은 아실 겁니다
단순 사용법이 아니라 개념적으로 좀 이해하셔야 답변을 해주실 수 있긴한데
질문이 모냐하면
이게 사실 c++ 때부터 넘어오는건데
c++ 는 데이터의 은닉성을 위해서
변수는 private 에 set 과 get 을 써서 접근하잖아요
근데
c#에서는 프로퍼티를 써서 할 수 있는데
예를 들어
public int variable { get; set; }
이렇게 기본 프로퍼티 형태로 가버리면
데이터의 은닉성이 완전히 사라지게 되잖아요?
변수 자체를 그냥 다른 곳에서 읽고 쓸 수 있으니깐요
프로퍼티 기본 폼을 쓰는 이유를 간단하게 알 수 있을까요?
그러면 private 으로 선언하게 되면 get 과 set 을 만들어주거나
public int value { get; private set; }
이렇게 사용하면, 클래스 외부에서 설정은 불가능 하고 값만 넘겨 주도록 할 수 있습니다.
또, 본문의 예시 코드 처럼 직접 set 구문을 구현하고 값을 실제 변수에 설정 전/후의 처리를 할 수 있고,
get 구문에서 값 리턴전에 값의 유효성 체크에 따라 예외를 던지거나 하는 처리가 가능 합니다.