- ToString 이 미리 구현되있다:


  내부 맴버들의 이름과 값을 알아서 막 출력해준다.

  만일 서로가 서로를 맴버로 들고있는 record 데이터를 확인해보려고 하면 바로 무한재귀난다.


- GetHashCode 가 미리 구현되있다.


  class 처럼 그냥 고유한 객체주소값이 아니라 전 맴버들의 값들을 취합해 해시를 계산해 내기때문에

  record타입의 객체를 Dictionay나 HashSet의 키로 사용하게되면, 넣어둔 키를 가지고 밸류를 찾을수 없는 상황에 처할수가 있다.


사실 위와같은 사항은 record 데이터의 불변성을 준수하여 개발했다면 저지경이 생길일이 없는것아지만,

딱히 불변데이터가 아니더라도 record의 맴버가 될수 있기때문에 몇번 아무렇지도 않게 저지르고 사고난적이있다.


- with 로 생성자를 호출하지 않고 새로운 객체를 만들수가 있다.



private constructor로 싱글톤을 만든다거나, 생성과정을 어케 통제하고자 해도 record타입이라면 빠져나갈 구멍이 언어적으로 항상 지원되는것이다.