macOS에서 plist(Property List) 파일 확장을 자주 접하지만 자세히 알아볼 생각을 한 적은 없던 것 같습니다.
예전에는 OS X을 구석구석 만지는 재미로 시간을 보냈는데, 슬립모드에 있던 맥라이프의 기억을 깨울 겸 가볍게 글을 작성해 봅니다.
Property List(plist)는 앱에서 취급하는 각종 속성 정보를 파일에 담는데 사용됩니다.
(plist 자체는 자료의 직렬화를 위한 확장이나, 대체로 속성 파일의 취급에 사용됩니다.)
Windows의 레지스트리와 비슷한 기능을 하고 있다고 볼 수 있습니다.
macOS에서는 변경 가능한 속성, 비공개 속성, 자동 생성된 캐시 등 앱과 관한 다양한 정보를 plist로 취급합니다.
잘 활용하면 설정 자동화, 고급 커스터마이징 등 편의를 누릴 수 있고, 숨어있는 OS 구성요소의 ID도 엿볼 수 있습니다.
사용자의 plist는 Binary Property List라는 형식으로, /Users/<사용자 계정>/Library/Preferences에 앱 별로 저장됩니다.
* 시스템 plist의 경로: /Library/Preferences
여기에서는 기본적인 XML 형식 대신 사람이 한 눈에 읽기는 다소 어려운 바이너리 파일 형태로 데이터를 저장합니다.
이러한 파일의 열람과 수정을 위해 Xcode에 plist 편집기나 macOS의 기본 명령어인 defaults나 plutil을 사용하면 됩니다.
* man defaults, man plutil 명령어로 각 명령어의 사용 방법을 확인할 수 있습니다.
* 실제 장치에 적용 전에 가상 환경에서의 충분한 테스트를 권하며 모든 영향에 대해서는 글쓴이에게 책임이 없습니다.
맥당분들도 인터넷에 알려지지 않은 macOS와 앱의 숨은 속성을 찾아보는 시간을 가져보시는 것이 어떨지 말씀드리며, 마치겠습니다.