SwiftUI에서 @State와 @Binding은 둘 다 프로퍼티 래퍼(wrapper)로 사용되는데, 각각 다음과 같은 차이가 있습니다. @State는 값이 변경될 때마다 SwiftUI가 뷰를 다시 그리도록 트리거합니다.
이는 해당 값이 이 뷰에서만 사용되고, 다른 뷰에서 사용되지 않는 경우에 적합합니다. @Binding은 값의 변경을 반영하기 위해 뷰 간에 데이터를 공유할 때 사용합니다.
이것은 일반적으로 한 뷰에서 값을 수정하면 다른 뷰에서 해당 값을 보여주기 위해 사용됩니다. 예를 들어, 두 개의 뷰가 있고 첫 번째 뷰에서 사용자 입력으로 값을 변경하면, 이 값을 다른 뷰에서 보여주기 위해 @Binding으로 두 뷰에서 공유할 수 있습니다.
한 뷰에서 변화된 값은 다른 뷰에서도 업데이트되어 표시됩니다. 이렇게 @State와 @Binding은 데이터 변경에 대한 SwiftUI의 처리 방식이 다르기 때문에 상황에 맞게 선택해서 사용해야 합니다....
원문 링크 : SwiftUI @Binding vs @State