

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 키 일치
<a name="attribute-key-matching"></a>

필터 정책의 `exists` 연산자를 사용하여 특정 속성이 있는지 여부에 따라 수신 메시지를 일치시킵니다.
+ `exists`는 리프 노드(구조의 최종 속성)에서만 작동합니다.
+ 중첩된 JSON 구조 내의 중간 노드에는 적용되지 않습니다.
+ `"exists": true`를 사용하여 지정된 속성을 포함하는 수신 메시지를 일치시킬 수 있습니다. 키는 null이 아니고 비어 있지 않은 값을 가져야 합니다.

  예를 들어, 다음 정책 속성은 `true` 값을 지닌 `exists` 연산자를 사용합니다.

  ```
  "store": [{"exists": true}]
  ```

  이 속성은 다음과 같이 `store` 속성 키가 있는 모든 메시지 속성 목록과 일치합니다.

  ```
  "store": {"Type": "String", "Value": "fans"}
  "customer_interests": {"Type": "String.Array", "Value": "[\"baseball\", \"basketball\"]"}
  ```

  이 속성은 다음 메시지 본문 중 하나와 일치합니다.

  ```
  {
      "store": "fans"
      "customer_interests": ["baseball", "basketball"]
  }
  ```

  그러나 다음과 같이 `store` 속성 키가 *없는* 메시지 속성 목록과는 일치하지 않습니다.

  ```
  "customer_interests": {"Type": "String.Array", "Value": "[\"baseball\", \"basketball\"]"}
  ```

  다음 메시지 본문과도 일치하지 않습니다.

  ```
  {
      "customer_interests": ["baseball", "basketball"]
  }
  ```
+ `"exists": false`를 사용하여 지정된 속성을 포함하지 *않는* 수신 메시지를 일치시킬 수 있습니다.
**참고**  
`"exists": false`는 하나 이상의 속성이 있는 경우에만 일치합니다. 속성 세트가 비어 있으면 필터가 일치하지 않습니다.

  예를 들어, 다음 정책 속성은 `false` 값을 지닌 `exists` 연산자를 사용합니다.

  ```
  "store": [{"exists": false}]
  ```

  이 속성은 다음과 같이 `store` 속성 키가 있는 모든 메시지 속성 목록과 일치하지 *않습니다*.

  ```
  "store": {"Type": "String", "Value": "fans"}
  "customer_interests": {"Type": "String.Array", "Value": "[\"baseball\", \"basketball\"]"}
  ```

  또한 다음 메시지 본문과도 일치하지 않습니다.

  ```
  {
      "store": "fans"
      "customer_interests": ["baseball", "basketball"]
  }
  ```

  그러나 다음과 같이 `store` 속성 키가 *없는* 모든 메시지 속성 목록과 일치합니다.

  ```
  "customer_interests": {"Type": "String.Array", "Value": "[\"baseball\", \"basketball\"]"}
  ```

  이 속성은 다음 메시지 본문과도 일치합니다.

  ```
  {
      "customer_interests": ["baseball", "basketball"]
  }
  ```