plist 파일

.plist 파일은 macOS에서 다양한 설정 및 구성 정보를 저장하는 데 사용되며, launchd의 구성 파일 또한 이 형식을 따릅니다. 따라서 .plist 파일은 launchd 구성 파일의 구조를 정의하고, 이러한 파일을 통해 launchd가 시스템 작업을 관리합니다. launchd 더 알아보기

.plist 파일은 macOS에서 다양한 설정 및 구성 정보를 저장하는 데 사용되는 중요한 요소입니다. 이러한 파일들은 애플리케이션의 동작 방식을 결정짓는 핵심적인 정보를 담고 있습니다. 특히, 시스템 서비스를 관리하는 launchd의 구성 파일도 .plist 형식을 따르기 때문에, 이러한 파일들의 이해는 macOS 시스템 작업 관리에 근본적으로 중요합니다.

이번 글에서는 .plist 파일의 기본 구조와 사용법에 대해 살펴보고자 합니다. 우선 .plist파일이 무엇인지, 어떤 용도로 사용되는지 간략하게 소개하겠습니다. 그 후에 XML 기반의 .plist파일 내부 구조와 주요 엘리먼트들을 살펴보겠습니다.

.plist 파일

.plist 파일은 macOS와 iOS에서 사용되는 설정 파일 형식입니다. 이 파일들은 소프트웨어 설정, 환경 변수, 애플리케이션 구성 정보를 저장하며, XML 또는 이진 형식으로 저장됩니다. 키-값(key-value) 쌍을 사용하여 데이터를 저장하며, 주로 소프트웨어 설정 및 초기화에 활용됩니다.

.plist 파일은 macOS와 iOS에서 주로 사용되는데, 예를 들어 애플리케이션의 기본 설정값을 저장하거나, 시스템 서비스의 구성 정보를 담는 등 다양한 용도로 활용됩니다. 또한 이러한 .plist 파일들은 소프트웨어가 처음 실행될 때 읽혀지므로 초기 상태나 설정을 정의하는 데 중요합니다. 사용자 환경, 애플리케이션 동작, 화면 해상도 등의 중요 정보를 담고 있으며, 잘못 수정하면 소프트웨어 동작에 영향을 미칠 수 있으므로 주의가 필요합니다.

Hammerspoon에서 Spoons 사용하는 방법

.plist 파일의 역할

.plist 파일은 소프트웨어 설정, 환경 변수, 애플리케이션 구성 및 다양한 데이터를 저장하는 데 사용됩니다. 이것은 일반 텍스트 파일로 저장되며, 응용 프로그램에 필요한 정보를 보관합니다. .plist파일은 XML 형식으로 작성되며, Key-Value 쌍 형태로 데이터가 저장됩니다. 따라서 각각의 값들은 고유한 Key 이름으로 접근 가능하고 이러한 특징 때문에 유연하게 다룰 수 있는 장점이 있습니다.

  • 소프트웨어 설정: .plist 파일은 주로 소프트웨어 설정을 저장하는 데 사용됩니다. 이 파일에는 응용 프로그램의 동작을 제어하는 데 필요한 데이터가 포함됩니다. 예를 들어, 화면 해상도, 언어 설정, 사용자 환경 설정 등이 여기에 해당합니다.
  • 환경 변수: 환경 변수는 .plist 파일 내부에서 특정 작업을 수행하는 데 필요한 정보를 저장합니다. 이것은 경로, 키 및 인증 정보와 같은 데이터를 포함할 수 있습니다. 스크립트나 애플리케이션이 이러한 변수에 접근하여 작업을 수행합니다.
  • 애플리케이션 구성: .plist 파일은 애플리케이션 동작을 결정하는 데 필요한 중요한 정보를 저장합니다. 이것은 서버 연결 정보, 데이터베이스 구성, 라이센스 키와 같은 데이터를 포함합니다.
  • 다양한 데이터: 이 파일 형식은 문자열, 숫자, 불리언 값, 날짜 및 시간 등 다양한 데이터 형식을 저장할 수 있습니다. 애플리케이션이나 서비스가 실행 중에 이러한 데이터를 참조하거나 수정할 수 있습니다.

.plist 파일의 기본 구조와 데이터 타입

.plist 파일은 Property List 형식으로 작성되며, macOS 및 다른 Apple 제품 및 서비스에서 구성 정보를 저장하는 데 사용됩니다. 이러한 파일은 XML 형식으로 작성되며, 다음은 .plist 파일의 기본 형태와 구문에 대한 설명입니다.

클립보드란

루트 엘리먼트

.plist 파일은 하나의 루트 엘리먼트를 가지며, 모든 내용은 이 루트 엘리먼트 내에 포함됩니다.

<plist>
    <!-- 내용이 여기에 들어갑니다 -->
</plist>

데이터 타입 지정

.plist 파일은 데이터의 타입을 지정해야 합니다. 이를 위해 <dict>, <array>, <string>, <integer>, <real>, <true>, <false> 등의 엘리먼트를 사용합니다.

Dictionary 사전

Dictionary는 키와 값의 쌍으로 데이터를 저장하는데 사용됩니다. 예시에서는 이름과 나이라는 두 가지 정보가 저장되어 있으며, 각각의 정보는 키를 통해 식별됩니다. 이러한 구조는 설정 파일이나 데이터 저장에 유용하게 활용됩니다.

<dict>
    <key>이름</key>
    <string>John</string>
    <key>나이</key>
    <integer>30</integer>
</dict>

위의 코드는 .plist 파일 내에서 Dictionary 형식의 데이터를 나타내는 예시입니다.

  • <dict>: Dictionary사전의 시작을 나타내는 태그입니다. 이 태그로 사전의 시작을 표시합니다.
  • <key>이름</key>: 이름이라는 키Key를 정의합니다. 이 키는 문자열string 값을 가지며, 여기서는 John으로 설정되어 있습니다.
  • <key>나이</key>: 나이라는 키Key를 정의합니다. 이 키는 정수integer 값을 가지며, 여기서는 30으로 설정되어 있습니다.
  • </dict>: Dictionary사전의 끝을 나타내는 태그입니다. 이 태그로 사전의 끝을 표시합니다.

Array 배열

배열은 여러 값을 순차적으로 나열하는 데 사용됩니다. 배열 내의 각 요소는 인덱스를 통해 접근할 수 있으며, 각 요소는 태그 <string> 내에 저장되어 있습니다. 이러한 배열 구조는 목록이나 데이터 집합을 표현하는 데 유용하게 활용됩니다.

<array>
    <string>사과</string>
    <string>바나나</string>
    <string>오렌지</string>
</array>

위의 코드는 .plist 파일 내에서 배열Array 형식의 데이터를 나타내는 예시입니다.

  • <array>: 배열의 시작을 나타내는 태그입니다. 이 태그로 배열의 시작을 표시합니다.
  • <string>사과</string>, <string>바나나</string>, <string>오렌지</string>: 배열 내의 각 요소element를 나타내는 문자열string 값들입니다. 여기서는 사과, 바나나, 오렌지라는 세 가지 문자열이 배열에 포함되어 있습니다.
  • </array>: 배열의 끝을 나타내는 태그입니다. 이 태그로 배열의 끝을 표시합니다.

String 문자열

문자열은 단순한 텍스트 데이터를 나타내며, 주로 설정값, 레이블, 설명 등 다양한 문자열 데이터를 저장하는 데 사용됩니다. 위의 예시에서는 Hello, World!라는 문자열이 저장되어 있으며, 필요한 경우 다른 문자열로 대체할 수 있습니다.

<string>Hello, World!</string>

위의 코드는 .plist 파일 내에서 문자열String 데이터를 나타내는 예시입니다.

  • <string>: 문자열을 표현하는 태그입니다. 이 태그 안에 문자열 데이터가 저장됩니다.
  • Hello, World!: <string> 태그 안에 있는 문자열 데이터로, 여기에서는 Hello, World!라는 문자열이 포함되어 있습니다.

Integer 정수

정수는 숫자 데이터를 나타내며, 주로 개수, 우선순위, 길이 등의 숫자 데이터를 저장하는 데 사용됩니다. 위의 예시에서는 숫자 42가 저장되어 있으며, 필요한 경우 다른 정수값으로 대체할 수 있습니다.

<integer>42</integer>

위의 코드는 .plist 파일 내에서 정수Integer 데이터를 나타내는 예시입니다.

  • <integer>: 정수를 표현하는 태그입니다. 이 태그 안에 정수 데이터가 저장됩니다.
  • 42: <integer> 태그 안에 있는 정수 데이터로, 여기에서는 숫자 42가 저장되어 있습니다.

Real 실수

실수는 소수점 아래 숫자를 포함하는 실수 데이터를 나타내며, 주로 금액, 비율, 속도 등과 같은 소수로 표현되는 데이터를 저장하는 데 사용됩니다. 위의 예시에서는 π 값을 나타내는 실수인 3.14가 저장되어 있으며, 필요한 경우 다른 실수값으로 대체할 수 있습니다.

<real>3.14</real>

위의 코드는 .plist 파일 내에서 실수Real 데이터를 나타내는 예시입니다.

  • <real>: 실수를 표현하는 태그입니다. 이 태그 안에 실수 데이터가 저장됩니다.
  • 3.14: <real> 태그 안에 있는 실수 데이터로, 여기에서는 원주율 π3.14가 저장되어 있습니다.

Boolean 불리언

불리언 데이터는 주로 조건을 표현하는데 사용됩니다. 예를 들어, 소프트웨어 설정에서 자동 업데이트 허용이라는 옵션을 생각해보면, 이 옵션이 참이면 업데이트가 허용되고 거짓이면 업데이트가 차단됩니다. 이렇게 불리언 데이터는 두 가지 상태를 나타내는 데 유용하게 활용됩니다.

<true/>
<false/>

위의 코드는 .plist 파일 내에서 불리언Boolean 데이터를 나타내는 예시입니다.

  • <true/>: <true> 태그는 참True을 나타냅니다. 이것은 어떤 조건이 참임을 나타내는데 사용됩니다.
  • <false/>: <false> 태그는 거짓False을 나타냅니다. 이것은 어떤 조건이 거짓임을 나타내는데 사용됩니다.

Key-Value Pairs키-값 쌍

<dict> 엘리먼트 내에서 키-값 쌍을 정의합니다. 키는 <key> 엘리먼트를 사용하여 지정하고, 값은 그에 해당하는 데이터 타입 엘리먼트를 사용하여 나타냅니다.

<dict>
    <key>Name</key>
    <string>John</string>
    <key>Age</key>
    <integer>30</integer>
</dict>

키-값Key-Value 쌍은 .plist 파일 내에서 데이터를 구조화하고 저장하는 중요한 방식입니다. 아래의 코드는 키-값 쌍을 .plist 파일 내에서 어떻게 정의하는지를 나타내는 예시입니다.

  • <dict>: 키-값 쌍을 포함하는 딕셔너리Dictionary의 시작을 나타내는 태그입니다. 이 태그 내부에 키-값 쌍들이 저장됩니다.
  • <key>Name</key>: 키Key를 정의하는 엘리먼트로, <key> 태그를 사용하여 지정합니다. 여기서는 Name이라는 키를 정의하고 있습니다.
  • <string>John</string>: 키 Name에 해당하는 값을 문자열String 데이터로 정의합니다. 이 값은 John으로 설정되어 있습니다.
  • <key>Age</key>: 또 다른 키 Age를 정의하는 엘리먼트입니다.
  • <integer>30</integer>: 키 Age에 해당하는 값을 정수Integer 데이터로 정의합니다. 이 값은 30으로 설정되어 있습니다.
macOS 맥북 글자 삭제 시 자소 단위가 아닌 글자 단위로 삭제하기

예시

.plist 파일의 예시로, 애플리케이션 설정을 저장하는 데 사용되는 파일을 생각해 볼 수 있습니다. 이 파일에는 사용자 환경 설정, 애플리케이션 동작 옵션 및 기타 데이터가 포함됩니다.

<?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>UserSettings</key>
    <dict>
        <key>Theme</key>
        <string>Dark</string>
        <key>Language</key>
        <string>English</string>
    </dict>
    <key>RecentFiles</key>
    <array>
        <string>document1.txt</string>
        <string>image.jpg</string>
    </array>
</dict>
</plist>

이 예시에서는 사용자 설정과 최근 파일 목록을 저장하는 간단한 .plist 파일을 나타냅니다. 여기에서 주요 포인트는 다음과 같습니다.

  • .plist 파일은 XML 형식으로 작성되며, <plist> 태그로 둘러싸여 있습니다.
  • 데이터는 키-값 쌍의 형태로 저장되며, <dict> Dictionary, <array> Array, <string> String 등의 데이터 타입이 사용됩니다.
  • 이 예시에서는 사용자 환경 설정과 최근 파일 목록이 저장되어 있으며, 각각의 데이터는 키를 통해 식별됩니다.
  • 사용자가 애플리케이션 설정을 수정하면 해당 .plist 파일이 업데이트되어 변경 사항을 반영합니다.
<?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>Label</key>
    <string>com.example.myapp</string>
    <key>ProgramArguments</key>
    <array>
        <string>/path/to/your/app</string>
        <string>--arg1</string>
        <string>value1</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

이 예시에서는 시작 프로그램을 등록하기 위한 필수적인 요소들이 포함되어 있습니다. 이러한 설정은 macOS에서 백그라운드 프로세스, 데몬, 에이전트 등을 등록하고 관리할 때 사용됩니다. .plist 파일을 이용하여 시작 프로그램을 등록하면 시스템이 부팅될 때 해당 프로그램이 자동으로 실행되어 특정 작업을 수행하게 됩니다. macOS Ventura에서 시작프로그램 등록하는 방법 알아보기

  • <key>Label</key>: 시작 프로그램의 고유한 식별자를 지정하는 키입니다. 이 예시에서는 com.example.myapp로 설정되어 있습니다.
  • <key>ProgramArguments</key>: 실행할 프로그램 및 해당 인수argument를 지정하는 키입니다. 여기에서는 /path/to/your/app 경로의 프로그램을 실행하고, --arg1 value1 인수를 전달하고 있습니다.
  • <key>RunAtLoad</key>: 시스템 부팅 시에 이 프로그램을 실행할지 여부를 결정하는 키입니다. 이 예시에서는 true로 설정되어 있으므로 시스템 부팅 시에 자동으로 실행됩니다.

관련 글

댓글로 남기기 어려운 내용은 Contact Form 에서 개별적으로 문의 할 수 있습니다. 해당 글과 연관 된 내용은 Copy를 이용해 현재 페이지의 주소를 복사 후 문의 폼에 입력시 보다 정확한 답을 얻을 수 있습니다.

Leave a Comment