TIL(Today I Learned)
2월 1일(월)
학습내용
- Kahoot
- 가장 빠르게 리뷰를 받을 수 있는 최적의 PR 시간은 평일 오전과 평일 오후 6시 이전.
- 컬렉션뷰는 가로방향과 세로방향 스크롤이 동시에 가능하지 않다. 스크롤뷰는 가능하다. 컬렉션뷰는 가로 또는 세로만 가능하다. 테이블뷰는 오직 세로만 가능하다.
- 컬렉션뷰에서 리스트 모양을 보여줄수 있는 방법은 UICollectionLayoutListConfiguration.
- 컬렉션뷰의 리스트 기능을 지원하는 최소 iOS버전은 iOS14.
- 현재 iOS 이용자 버전 비율을 확인하는 방법은 developer.apple.com/support/app-store
- 컬렉션뷰의 레이아웃을 커스텀할때 사용하는 클래스는 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 처럼)
참고