본문 바로가기
iOS/설명

[iOS] 프로퍼티 리스트 (Property List)

by Sky Titan 2021. 4. 25.
728x90

※출처 - 꼼꼼한 재은씨의 Swift: 실전편

 

싸니까 믿으니까 인터파크도서

제대로 스위프트를 즐기는 방법 이 책은 전반적으로 하나의 메인 프로젝트를 완성해나가는 동시에 각 주제별로 소규모 앱을 만들면서 기능을 익히도록 구성되어 있습니다. 따라서 특정 주제나

book.interpark.com

프로퍼티 리스트 (Property List)

  • 애플의 주요 소프트웨어 프레임워크에 이용되는 객체 직렬화를 위한 XML 형식의 파일
  • .plist 확장자를 가지기 떄문에 plist라고도 불림
  • 간단한 데이터 계층을 표현하기 위한 추상화
  • 비교적 단순한 데이터를 XML 포맷에 맞추어 key-value 형식으로 저장하는 것
  • 대부분 앱의 공통 데이터나 주요 설정 정보를 저장하는 데 쓰임
    • 마지막으로 열었던 문서, 파일에 대한 정보
    • 가장 많이 실행한 메뉴 정보
    • 환경 설정 데이터
  • 저장 가능한 데이터 타입은 2가지
    1. Primitive data type (원시 타입)
      • String, Int, Float 등 (Swift에서 제공)
    2. Reference data type (레퍼런스 타입)
      • NSString, NSNumber, NSDate, NSData ( Foundation 프레임워크에서 제공)

 

※ 객체 직렬화

  • 객체의 내용을 바이트 단위로 변환하여 파일에 기록 or 네트워크를 통해 전달이 가능하도록 하는 것

 

 

UserDefaults

  • iOS에 앱을 설치하면 데이터를 저장할 수 있는 영역인 기본 저장소가 생성됨 -> 기본 저장소는 plist를 기반으로 <앱 아이디>.plist 파일 생성 후 XML 형식으로 데이터 저장
    • 파일은 앱 실행 시점에 생성되기 때문에 Xcode 프로젝트 네비게이터에서는 확인 불가능
  • 앱 실행 과정에서 저장해야 할 데이터가 비교적 단순한 구조라면 기본 저장소에 저장하는 것이 적절
  • iOS에서는 기본 저장소를 쉽게 다룰 수 있도록 UserDefaults를 제공
  • 런타임 (runtime) 환경에서 동작하는 객체
    • 앱이 실행되는 동안 기본 저장소에 접근하여 데이터를 가져오고 기록한다.
    • 예를 들어, 앱의 설정 값을 저장 후 나중에 재실행 시 불러올 수 있다.
    • 플레이 그라운드에선 사용 불가
  • 싱글톤 (SingleTone) 패턴
  • 여러 곳에서 동시에 호출할 시 생기는 동시성 문제를 방지하기 위해 Blocking 알고리즘을 이용하여 Thread-safe 하게 설계됨
  • 불러오기 메소드
    • EX) string(forKey:), integer(forKey:), data(forKey:), object(forKey:) 등등
  • 저장 메소드
    • EX) set(_:forKey), setValue(_:forKey:)
    • EX) sertNilValueForKey(_:) (nil 타입)
728x90

댓글