데이터 모델링
-
SwiftUI 데이터 모델에 actor를 사용하면 안되는 이유Apple🍎/SwiftUI 2025. 2. 19. 22:44
Swift Actor 기본 개념Actor는 독립적인 실행 컨텍스트를 가지고 있으며, 이 컨텍스트 안의 데이터는 자동으로 동기화되어 안전하게 관리됩니다. 여러 작업(Task)이 동시에 Actor에 접근하려고 할때, 시스템은 이를 알아서 순차적으로 처리합니다. 마치 줄을 서서 차례를 기다리듯이, 한 번에 하나의 작업(Task)만 Actor의 데이터에 접근할 수 있게 되어 데이터 경장상태(race condition)을 효과적으로 예방할 수 있습니다. actor ChatRepository { private var messages: [Message] = [] func addMessage(_ message: Message) { messages.append(message) } ..
-
[Swift] Enum을 다양하게 활용해보자.Apple🍎/Swift 2023. 12. 11. 15:59
모델이 가지는 상태값이 OR 일 때는 Struct대신 Enum을 쓰자. 아래와 같은 채팅앱의 메세지가 가질 수 있는 유형은 다음과 같다. 참여 메시지 : “철수 님이 대화에 참여했습니다.” 일반 메시지 : “지금 롤 할 사람” 이모티콘 떠남 메시지 : 철수님이 대화방에서 떠났습니다. 작성중 메시지 : 작성중입니다….. 위와 같은 메시지를 strcut를 통해 모델링 해보면 다음과 같이 작성할 수 있다.import Foundation struct Message { let userId: String. // 참여자 식별자(ID) let contents: String? // 메시지 내용 let date: Date. // 시간 let hasJoined: Bool. // 참여 let hasLeft: Bool. // ..