Keychain services
·
SwiftUI
Keychain service란 유저를 대신하여 작은 데이터를 보안적으로 안전하게 저장하는 서비스입니다. Overview컴퓨터 유저들은 보안적으로 안전하게 저장하고 싶은 데이터가 존재합니다. 예를 들어 수 많은 계정의 아이디와 비밀번호 같은 데이터가 있습니다. 모든 계정의 아이디와 비밀번호는 각각 다를 수 있으며 기억하기 어려워지는데 하지만 종이같은 곳에 적기에는 안전하지 않을 수 있습니다. 유저들은 이런 이유로 계정을 간단하게 설정하는 경우가 있는데 이 또한 보안적으로 안전하지 않습니다. Keychain service API는 keycahin이라고 불리는 암호화된 데이터베이스에 작은 사용자 데이터를 저장할 수 있는 메커니즘을 제공하여 이 문제를 해결하는 데 도움을 줍니다. 이렇게 keychain를 통해..
Core Data
·
SwiftUI
Core Data는 기기에서 데이터를 유지하거나 캐시하거나, CloudKit으로 여러 장치에 데이터를 동기화할 수 있게 합니다.Archiving은 객체를 저장할 뿐만 아니라 객체 간의 연결된 관계도 저장하는데 객체간의 관계를 묶어주는 것을 Object Graph 라고 합니다. Archiving은 Object Graph를 저장하기 좋은 기능입니다, 하지만 제한적입니다. Object Graph를 Archiving으로 저장하는 것은 확장하거나 수정하기 어렵습니다. 왜냐면 전체 Graph는 약간의 수정이 있다고 해도 반드시 파일에 저장되어야 하기 때문입니다. 또한 어떤 객체가 저장될지 객체간의 연결을 컨트롤하기가 쉽지 않습니다. 이런 Archiving의 단점을 보강해주기 위해서 Core Data를 사용합니다. ..
EnvironmentObject
·
SwiftUI
부모뷰나 그 상위 뷰가 제공하는 ObserbableObject를 위한 프로퍼티 래퍼 타입입니다. 가장 큰 특징은 EnvironmentObject로 선언된 인스턴스의 값이 다른 뷰에서 값이 바꿀 수 있으며 @StateObject를 사용하면 그에 대응하는 즉각적인 행동을 취할 수 있다는 것입니다. EnvironmentObject 는 앱의 많은 뷰와 공유해야하는 데이터인 경우 사용되는 프로퍼티 래퍼입니다. EnvironmentObject를 사용하면 데이터가 변경 될 때 뷰가 자동으로 업데이트 된 상태로 유지되고 @ObservedObject를 사용하지 않아도 됩니다, 하지만 Observable 객체와 같은 방식으로 선언되어 반드시 ObservableObject 프로토콜을 준수해야합니다. @ObservedObje..
NSCoding
·
SwiftUI
아카이빙과 배포를 하기 위해 인스턴스가 encoded, decoded 가능하게 해주는 프로토콜 입니다. NSCoding 프로토콜은 클래스의 인스턴스가 encoded, decoded 될 수 있게 반드시 2가지 메서드를 구현해야합니다. 이 기능은 구현함으로서 archiving과 distribution의 기반을 제공합니다. 이 프로토콜은 객체를 저장하고 다른 위치로 전송하는 과정을 가능케 하며, 이는 주로 아카이빙 및 디스트리뷰션의 기반을 제공합니다. 아카이빙은 객체를 디스크에 저장하여 나중에 사용할 수 있게 하는 것이고, 디스트리뷰션은 객체의 복사본을 다른 주소 공간으로 전송하여 다른 시스템과의 상호 작용이나 데이터 공유를 지원합니다. 객체 지향 디자인 원칙을 유지하기 위해, 인코딩 또는 디코딩되는 객체는 ..
Archiving, encoding, decoding
·
SwiftUI
아카이브를 사용하는 이유간편성: 아카이브를 사용하면 Core Data 보다 느리지만 덜 복잡하고 객체를 간단하게 파일로 만들고 읽을 수 있습니다. 데이터 보존: 아카이브를 사용하여 객체의 현재 상태와 데이터를 영구적으로 저장할 수 있습니다. 이를 통해 앱이 종료되거나 재시작되더라도 사용자 데이터를 보존할 수 있습니다. 예를 들어, 사용자 설정, 게임 진행 상황, 또는 다른 중요한 데이터를 저장할 수 있습니다. 데이터 교환: 아카이브된 객체를 파일 또는 네트워크를 통해 다른 앱 또는 기기로 전송할 수 있습니다. 이를 통해 데이터를 공유하고 다른 플랫폼 또는 앱과 호환성을 유지할 수 있습니다. 상태 저장 및 복원: 앱이 사용자 상호작용 또는 화면 전환을 관리하는 경우, 현재 화면 또는 앱 상태를 아카이브하여..
Bundle
·
SwiftUI
Bundle 클래스란 디스크의 bundle 디렉토리에 저장된 코드와 리소스의 표현입니다.여기서 그럼 Bundle이란 실행 가능한 코드와 그 코드가 사용하는 자원을 포함하고 있는 디렉터리입니다. Apple은 bundle을 사용하여 앱, 프레임워크, plug_in 및 기타 많은 특정 유형의 콘텐츠를 나타냅니다. bundle은 포함된 리소스를 잘 정의된 하위 디렉토리로 구성하며, bundle 구조는 플랫폼과 번들 유형에 따라 다릅니다. 번들 객체를 사용하면 번들의 구조를 모른 채 번들의 리소스에 액세스할 수 있습니다. bundle 객체는 bundle 구조, 사용자 선호도, 사용자의 지역 및 기타 관련 요소를 고려하여 아이템을 찾기 위한 단일 인터페이스를 제공합니다. 모든 실행 파일은 bundle 객체를 사용하..
ytw_developer
IT Document