상태값이 있어야 할 곳은 뷰가 아닌 모델이다.
하지만, 기획에 따라 뷰에 일시적으로 상태값이 머무를 수밖에 없는 경우가 있다.
예컨데, 텍스트를 입력한 후 완료 버튼을 눌러야 진행되는 기능이라면, 완료 버튼을 누르기 전까지의 텍스트값은 뷰가 갖고있을 수밖에 없다.
이러한 경우에만 한정적으로 사용하는 것이 @State 이다.
@State 프로퍼티는 항상 private하게 선언해야 하고, (어차피 해당 뷰에서만 접근 가능하며, 해당 뷰에만 관련된 프로퍼티이다)
이는 Heap 영역에 할당된다.
struct인 View가 갈아끼워진다고 해도, 새롭게 대체된 View가 해당 Heap영역의 @State 인스턴스를 가리키게(point) 된다. (해제 후 재할당되는 것이 아니라는 뜻이다)