iOS 캠프 TIL - 2021.02.01 월

Updated:

Play Kahoot

  • 컬렉션뷰는 가로 세로방향 스크롤이 동시에는 불가능 하다
  • 컬렉션뷰의 리스트 기능은 iOS14 부터 지원
  • 컬렉션뷰의 레이아웃을 커스텀할 때 사용하는 클래스: UICollcetionViewFlowLayout
  • 제네릭은 프로토콜 기본구현을 적용할 수 없다
    • 클래스, 구조체, 열거형은 가능

학습활동 - 키체인

  • 키체인이란 무엇일까?
    • 암호화된 데이터베이스(컨테이너)
    • developer documents

      The keychain services API helps you solve this problem by giving your app a mechanism to store small bits of user data in an encrypted database called a keychain

  • Keyed Archiver, User Defaults, CoreData와 다른 점은 무엇일까?
    • Keyed Archiver
      • 사용자 정의타입을 User Defaults에 저장하려 할 때 NSKeyedArchiver를 사용해 아카이빙 후 저장해야 한다
      • 아카이빙하여 저장된 데이터를 사용하려면 User Defaults에 저장된 데이터를 NSKeyedArchiver로 타입 캐스팅해서 반환
  • User Defaults
    • 기본 데이터 타입을 바로 저장
    • 사용자의 연결된 기기에서 환경설정과 기타 데이터를 동기화할 수 없다? 로컬에서 데이터가 관리된다.
    • To synchronize preferences and other data across a user’s connected devices, use NSUbiquitousKeyValueStore instead.
    • UserDefaults에 저장되는 정보들은 모두 base64 인코딩되어 plist형식으로 저장된다.
      • 경로는 :/User/Containers/Data/Application/{해당앱}/Libaray/Preferences/{AppID}.plist
  • CoreData
    • 객체간의 관계를 관리하는 프레임워크 (데이터베이스 X)
    • 단일 디바이스에서 데이터를 유지 혹은 캐시하고 실행 취소를 지원
  • KeyChain 다른점
    • 암호화된 데이터를 저장
    • 키체인은 잠글 수 있어서 한번 잠기면 풀기전까지는 접근하지 못하지만, ios에서는 기기의 잠금이 해제되는 순간 키 체인의 잠금도 함께 해제된다.
    • 키체인에 저장한 정보는 앱을 삭제한 이후에도 보관할 수 있다
  • iOS의 키체인과 macOS의 키체인의 차이는?
    • macOS에서는 단순히 애플리케이션이 원하는 만큼 키체인을 만들 수 있음 (In macOS, however, the system supports an arbitrary number of keychains)
    • iOS에서는 모든 앱에서 사용할 수 있는 하나의 키체인만을 제공 (In iOS, apps have access to a single keychain (which logically encompasses the iCloud keychain)
  • 키체인 서비스를 사용하기 위해 k- 접두어를 사용하는 여러 타입과 값을 사용합니다
    • k- 접두어의 비밀은? 상수를 나타내는 헝가리안 표기법(옛날 방식의 이름 짓기…) k-보안 🇰🇷 (라자냐’s)
    • CFString objects are immutable
    • k = constant formal parameter
  • 어떤 프레임워크의 값일까? CoreFounation
  • 그 프레임워크와 Foundation 프레임워크와의 차이는?
    • Foundation: Cocoa Touch layer
      • 주로 Objectve-C로 구현
    • CoreFoundation
      • Core Service layer -> Cocoa Touch layer보다 아래, Core Service layer에 iCloud가 속함
      • 주로 C or C++로 구현
  • 키체인은 언제 사용하면 좋을까?
    • 사용자에게 예민한 정보/중요한 정보를 저장할 때
    • Push Notificaion 사용할 때 기기 고유값을 등록하고 사용해야함, 근데 앱을 삭제하고 다시 설치한다면 다른 값이 제공됨. 그럼 서버에서는 각기 다른 기기로 인식되어 둘다에게 노티를 보내야 하는 상황이 생길 수 있음. 그래서 키체인에 처음에 받은 기기 고유값을 저장해서 그 정보만으로 계속 서버와 통신하게 할 수 있다.

Leave a comment