# 프로퍼티 경로

> Understand the role of property paths and the performance considerations when using them.

프로퍼티 경로는 컨테이너 오브젝트 내에서 프로퍼티의 위치를 설명하는 문자열입니다.

## 개념##performance-considerations

프로퍼티 경로를 사용하여 특정 경로에서 오브젝트의 데이터를 가져오거나 설정하거나 오브젝트의 하위 프로퍼티에서 방문자를 수락할 수 있습니다.

프로퍼티 경로는 문자열로 구성되며 루트 오브젝트에서 특정 프로퍼티 인스턴스를 확인합니다. 예를 들어 `foo.bar.baz[12]` 경로는 `foo` 컨테이너 내에 중첩된 `baz` 리스트 컨테이너의 13번째 요소를 `bar` 컨테이너 내에서 확인합니다.

프로퍼티 경로를 만들고 조정하려면 [`Unity.Properties.PropertyPath`](/engine/6000.0/script-reference/unity-properties/property-path.md) 클래스를 사용합니다.

프로퍼티 경로를 사용하여 다음을 수행할 수 있습니다.

* 특정 경로에서 오브젝트의 데이터 가져오기 또는 설정
* 오브젝트의 하위 프로퍼티에 대한 방문자 수락

## 성능 고려 사항##additional-resources

[`Unity.Properties.PropertyPath`](/engine/6000.0/script-reference/unity-properties/property-path.md)는 변하지 않는 구조체 유형입니다. 문자열에서 프로퍼티 경로를 구성할 때 하위 문자열 추출에 대한 할당이 발생합니다.

다음 표에는 프로퍼티 경로가 문자열에서 구성될 때 발생하는 할당 동작이 나열되어 있습니다.

| 문자열                     | 길이 | 할당 | 할당 사유                       |
| ----------------------- | -- | -- | --------------------------- |
| `"Path"`                | 1  | 0  | 문자열을 그대로 사용합니다.             |
| `"Path.To"`             | 2  | 2  | 문자열을 두 부분으로 나눕니다.           |
| `"Path.To[2]"`          | 3  | 3  | 문자열을 두 부분으로 나누고 인덱스를 추출합니다. |
| `"Path.To[2].My"`       | 4  | 4  |                             |
| `"Path.To[2].My.Value"` | 5  | 6  | 추가 부분에 배열을 할당합니다.           |

다음 표에는 프로퍼티 경로가 여러 부분으로 구성될 때 발생하는 할당 동작이 나열되어 있습니다.

| 문자열                                          | 길이 | 할당 | 할당 사유             |
| -------------------------------------------- | -- | -- | ----------------- |
| `PropertyPath.FromName("Path")`              | 1  | 0  |                   |
| `PropertyPath.AppendName(previous, "To")`    | 2  | 0  |                   |
| `PropertyPath.AppendIndex(previous, 2)`      | 3  | 0  |                   |
| `PropertyPath.AppendName(previous, "My")`    | 4  | 0  |                   |
| `PropertyPath.AppendName(previous, "Value")` | 5  | 1  | 추가 부분에 배열을 할당합니다. |

성능을 최적화하고 메모리 할당을 방지하려면 다음을 수행합니다.

* 초기화 루틴 중에 프로퍼티 경로를 초기화하고 캐싱합니다.
* 문자열로 구성하는 대신 프로퍼티 경로 파트를 최대 4개까지 결합하거나 추가합니다.

## 추가 리소스

* [프로퍼티 백](/engine/6000.0/manual/scripting/object-oriented-development/properties/property-bags.md)
* [프로퍼티 방문자](/engine/6000.0/manual/scripting/object-oriented-development/properties/property-visitors.md)
* [`PropertyVisitor`를 사용하여 프로퍼티 방문자 생성](/engine/6000.0/manual/scripting/object-oriented-development/properties/property-visitors-propertyvisitor.md)
* [로우 레벨 API를 사용하여 프로퍼티 방문자 생성](/engine/6000.0/manual/scripting/object-oriented-development/properties/property-visitors-low-level-api.md)
