valid type

생성자에서 검증하면 이후 코드는 유효한 타입만 다룬다

외부 입력을 바로 필드에 넣지 않고 Result<Self> 생성자에서 검사하면 불변식을 타입 안에 가둘 수 있다.

01 raw input사용자 값

아직 신뢰 불가

02 new()범위·형식 검증

불변식 확인

03 Ok(Self)유효한 값만 생성

이후 안전

04 Err생성 실패 이유

호출자가 처리

구분의미판단
필드 public아무 값이나 대입불변식 깨짐
필드 private생성자만 통과검증 경계
Result<Self>실패 가능성 표현panic 없이 거절

핵심 유효 타입은 값 검사를 매번 반복하지 않고 생성 지점에 모으는 설계다.