본문 바로가기
SwiftUI

@Observable 이 뭐야?

by 밤새는 탐험가89 2025. 6. 5.
728x90
SMALL

@Observable은 Swift의 SwiftData(또는 Observation 프레임워크)에서 도입된 새로운 속성 래퍼로,
클래스가 관찰 가능(observable)하도록 만들어주는 역할
즉, 해당 클래스의 프로퍼티가 바뀌면 자동으로 뷰에 반영될 수 있게 해주는 도구

 

✅ @Observable의 의미

@Observable
class ModelData {
    var landmarks: [Landmark] = load("landmarkData.json")
}

 

이 코드는 ModelData 클래스가 SwiftUI 뷰에서 관찰될 수 있게 한다는 뜻

즉, landmarks 배열이 변경되면 이를 사용하는 SwiftUI 뷰가 자동으로 업데이트

 

🔄 @Observable과 @ObservedObject, @Published의 차이

기존에는 다음과 같이 작성

class ModelData: ObservableObject {
    @Published var landmarks: [Landmark] = ...
}

 

하지만 이제 Swift 5.9 이상과 함께 등장한 새로운 Observation 시스템에서는:

@Observable
class ModelData {
    var landmarks: [Landmark] = ...
}

 

✅ 더 간결하게 작성할 수 있습니다.
✅ @Published를 쓰지 않아도 속성 변경이 감지됩니다.
✅ 컴파일러가 자동으로 감시 코드를 생성해줍니다.

728x90
LIST

'SwiftUI' 카테고리의 다른 글

@Binding 은 뭐야?  (0) 2025.06.05
@Environment(ModelData.self) var modelData 에서 @Environment는 뭐야?  (0) 2025.06.05
@State란?  (0) 2025.06.05
Hashable, Codable 뭐여?  (0) 2025.06.04
Spacer()  (0) 2024.12.22