C#이 처음 나왔을 당시 비즈니스적 컨셉 중 하나가
기존 C++ 프로그래머를 끌어들이는 거였는데

그 C++프로그래머들은 인터페이스에 영향받지 않는 클래스 구현 변경을 위하여
골치 아픈 전역 변수를 사용하지 않으면서
클라이언트가 private멤버에 접근할때는 
전용 접근자 함수를 사용하여 값을 설정 할 수 있도록 하였지

C#의 프로퍼티는 이걸 언어적 차원에서 지원해준다는 것이고
캡슐화, 데이터 숨김과 접근이 가능하다는것

물론 get;set; 이렇게 쓰면 그냥 멤버 선언하는거랑 차이가 없어서 활용도는 떨어질 수 있겠지만
private멤버 변수에 get;만 사용하는 경우는
프로젝트가 좀 커진다면 활용해야 할 경우가 있을거야

-----------------
추가 :
아니 get;set;도 큰 의미가 있다
비즈니스적으로 로직을 변경해야 할 경우 (예를들면 값을 사용자 입력이 아닌 DB로부터 읽어오는 것으로 변경)
그냥 public으로 선언한 멤버의 접근자 구현 수정은 골치아플 수 있지만
프로퍼티 접근자 구현 수정은 클라이언트의 영향을 받지 않어. 단지 set만 조금 만져주면 된다

느슨한 관계(예를들면 데이터를 넣고 읽어오는 로직이 서로 최소한으로 연결되어 있음)가
문제 발생의 소지가 적은 것과 같다고 할수 있지