@Published
는 SwiftUI 및 Combine 프레임워크와 함께 사용되는 속성 래퍼(property wrapper) 중 하나입니다. 이것은 속성을 관찰 가능한 속성으로 만들어주는 역할을 합니다. @Published
로 선언된 속성은 해당 속성의 값이 변경될 때마다 SwiftUI 뷰에 자동으로 업데이트를 알리게 된다.
예를 들어, 다음과 같이 @Published
를 사용하여 프로퍼티를 선언할 수 있다:
@Published var someProperty: SomeType
그런 다음 이 속성이 변경될 때마다 SwiftUI 뷰가 업데이트된다. @Published
로 선언된 속성의 값이 변경될 때마다 관련된 뷰가 다시 그려진다. 이를 통해 데이터의 변경을 UI에 반영할 수 있다.
일반적으로 ObservableObject와 함께 사용되며, ObservableObject 클래스 내부에서 @Published
로 선언된 속성이 변경될 때마다 objectWillChange
퍼블리셔가 자동으로 호출된다. 이를 통해 SwiftUI는 뷰를 업데이트해야 함을 알게 된다.
@Published
는 SwiftUI 앱에서 데이터 바인딩을 구현하고 UI 업데이트를 관리하는 데 매우 유용한 도구 중 하나이다.
여기서 SwiftUI뷰인지 확인하는 방법은 해당 뷰의 유형이 View
프로토콜을 채택하고, SwiftUI 뷰 빌더(body
속성을 가진)를 가지고 있는지 확인한다. SwiftUI 뷰는 View
프로토콜을 준수하는 구조체, 클래스 또는 열거형으로 정의된다.
@Published 속성은 SwiftUI에서 상태를 관리하기 위해 사용된다. 그래서 단순한 Swift코드에서는 관리하질 않는다.