TIL(Today I Learned)

2월 1일(월)

학습내용

  • Kahoot
    • 가장 빠르게 리뷰를 받을 수 있는 최적의 PR 시간은 평일 오전과 평일 오후 6시 이전.
    • 컬렉션뷰는 가로방향과 세로방향 스크롤이 동시에 가능하지 않다. 스크롤뷰는 가능하다. 컬렉션뷰는 가로 또는 세로만 가능하다. 테이블뷰는 오직 세로만 가능하다.
    • 컬렉션뷰에서 리스트 모양을 보여줄수 있는 방법은 UICollectionLayoutListConfiguration.
    • 컬렉션뷰의 리스트 기능을 지원하는 최소 iOS버전은 iOS14.
    • 컬렉션뷰의 레이아웃을 커스텀할때 사용하는 클래스는 UICollectionViewFlowLayout
    • 프로토콜 기본구현은 프로토콜에 익스텐션을 활용하여 기본기능을 구현한다.
      • 저장프로퍼티는 구현 불가능하다.
      • 이니셜라이저도 구현 불가능하다.
      • 프로퍼티 옵저버도 구현 불가능하다.
    • 클래스, 구조체, 열거형은 프로토콜 기본구현을 적용할 수 있다.
  • Key Chain
    • iCloud를 통해서 키체인을 공유해서 여러 기기에서 사용할 수 있다는 이점이 있다.
    • Keyed Archiver: NSCoding을 채택한 데이터를 저장할 수 있다. Key-Value형식으로 데이터를 저장. 프로퍼티가 Key가되고 프로퍼티의 내용이 Value가 되는식으로 저장한다.
    • Core Data: SQLite의 Wrapper, 구조화된 데이터를 저장하기에 적합. 많은 데이터를 저장할 때 적합.
    • User Defaults: 앱이 삭제되면 User Defaults로 삭제된다. 간단히 저장하고 싶은 것을 딕셔너리 형태로 저장. 암호화하지 않는다.
    • 키체인은 앱이 삭제되도 데이터가 삭제되지 않는다. Key-Value형태이다. 암호화되는 데이터베이스이다.
    • iOS 키체인과 macOS의 키체인은 다른점이 있다. mac에서는 Key Chain Access를 통해 관리할 수 있다.
    • k 접두어는 상수(constant)라는 의미이다.
    • Core Foundation은 Foundation에 비해 더 저급 프레임워크이다. C로 구현되어있다. Foundation은 Obj-C로 구현되어있다.
    • 키체인에 기기의 고유값을 저장하는 용도로 사용할 수도 있다. 서버에서 보내주는 난수(기기를 구분하기 위한)를 키체인에 저장하여, 앱을 삭제하고 다시깔고 해도 여러번 난수를 보내야하는 것을 방지할 수 있다. (키체인에 한번 저장하면 앱을 삭제해도 난수는 지워지지 않으므로)

문제점/고민한점

  • Serialization(직렬화)란?

해결방법

  • 직렬화는 데이터를 저장하거나 전송하기위해 다른 형식으로 변환하는 것을 의미한다. (Encodable, Decodable, Codable 처럼)

참고