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

버들비·2020년 9월 3일
0

iOS

목록 보기
3/5

객체 직렬화?

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

프로퍼티 리스트?

애플의 주요 소프트웨어 프레임워크에서 객체 직렬화를 위해 쓰이는 XML 파일. 대부분 .plist 확장자를 가진다.

비교적 단순한 데이터를 XML 포맷에 맞춰 키-밸류 형식으로 저장해 둔 것.

주로 앱의 공통 데이터나 주요 설정 정보를 저장하는데 쓰인다. 마지막으로 열었던 문서나 파일에 대한 정보, 가장 많이 실행한 메뉴 정보 등을 기록하는데 사용된다. 환경설정 데이터를 사용하는 용도로도 사용된다.

간단한 데이터 계층을 표현하기 위한 추상화.
Swift에서 제공하는 String 타입과 파운데이션 프레임워크에서 제공하는 NSString, 코어데이터에서 제공하는 CFString 모두 구별되는 특성을 갖고 있다. 이런 구체적인 객체가 아니라, 추상화된 <string> 타입으로 추상화 되는 것.
추상화 된 <string> 타입은 연관된 어느 타입으로든 읽을 수 있다. String 으로 읽을 수도, NSString 으로 읽을 수도 있다.
이처럼 데이터 타입을 추상화 하는 것이지만, 값 자체가 추상화 되는 것은 아니다.

Xcode 에서는 프로퍼티 리스트를 수정할 수 있는 GUI 를 제공하지만, XML 코드를 작성하는 방법도 있다.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

<plist version="1.0">
<dict>
  	<key>이름</key>
  	<string>버들비</string>
  	<key>언어</key>
  	<array>
        	<string>swift</string>
        	<string>JS</string>
        </array>
  </dict>
</plist>

파일 상단에 프로퍼티 리스트에 대한 형식 및 메타 정보들이 2, 3줄 들어간다. XML 문법 1.0을 사용하고, utf-8 인코딩을 사용하며, 엘리먼트들의 형식은 http://www.apple.com/DTDs/PropertyList-1.0.dtd 에 정의되어 있다는 뜻을 담고 있다.

기본적으로 프로퍼티 리스트는 키와 값을 기반으로 하는 데이터이기에 최상위 노드는 반드시 딕셔너리 타입이어야 한다.


reference

꼼꼼한 재은 씨의 Swift 실전편

0개의 댓글