이 제한은 문제가 되지 않을 수 있습니다.
Restful Api 에서, 요청 바디에 포함된 모델에 대한 유효성 검증이 필요한 경우는 Post, Put 요청인데, 클라이언트 입장에서 이 모델은 mutable 한 편이 좋습니다.
예를 들어, Post 요청 바디에 포함될 모델이 클래스로 선언된 경우,
class CreatePersonRequest
{
public string Name { get; set; } = "";
}
클라이언트에서는, 별도의 Input 모델을 선언하지 않고, 이 모델을 사용하여 사용자 입력과 바인딩하고, api 로 바로 보낼 수 있습니다.
만약, 이 모델이 record 로 선언되어 있다면, record 는 사용자 입력과 바인딩할 수 없기에, 바인딩 용 class 를 별도로 선언하고, 이를 다시 record 로 변환해야 하는 추가적인 코드가 필요합니다.
저는 프론트 엔드와 백엔드에 동일한 C# 언어를 사용하는데, Post 와 Put 용 모델은 항상 class 로 선언해서 공용으로 사용할 수 있도록 합니다.