

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

# Amazon SQS의 메시지 메타데이터
<a name="sqs-message-metadata"></a>

메시지 속성을 사용하여 사용자 지정 메타데이터를 애플리케이션에 대한 Amazon SQS 메시지에 추가합니다. 메시지 시스템 속성을 사용하여 AWS 서비스와 같은 다른와 통합하기 위한 메타데이터를 저장합니다 AWS X-Ray.

## Amazon SQS 메시지 속성
<a name="sqs-message-attributes"></a>

Amazon SQS는 *메시지 속성*을 사용하여 메시지에 구조화된 메타데이터(예: 타임스탬프, 지리 공간 데이터, 서명 및 식별자)를 포함하도록 허용합니다. 각 메시지에는 최대 10개의 속성이 있을 수 있습니다. 메시지 속성은 선택 사항이며 메시지 본문과 분리됩니다(단, 메시지 본문과 함께 전송됨). 소비자는 메시지 본문을 먼저 처리하지 않고도 메시지 속성을 사용하여 특정 방식으로 메시지를 처리할 수 있습니다. Amazon SQS 콘솔을 사용하여 속성이 있는 메시지를 전송하는 방법에 대한 자세한 내용은 [Amazon SQS를 사용하여 속성을 포함하는 메시지 전송](sqs-using-send-message-with-attributes.md) 섹션을 참조하세요.

**참고**  
메시지 속성을 *메시지 시스템 속성*과 혼동하지 마세요. 메시지 속성을 사용하여 애플리케이션의 Amazon SQS 메시지에 사용자 지정 메타데이터를 연결할 수 있지만 [메시지 시스템 속성을](#sqs-message-system-attributes) 사용하여와 같은 다른 AWS 서비스에 대한 메타데이터를 저장할 수 있습니다 AWS X-Ray.

**Topics**
+ [메시지 속성 구성 요소](#message-attribute-components)
+ [메시지 속성 데이터 형식](#message-attribute-data-types)
+ [메시지 속성의 MD5 메시지 다이제스트 계산](#sqs-attributes-md5-message-digest-calculation)

### 메시지 속성 구성 요소
<a name="message-attribute-components"></a>

**중요**  
메시지 속성의 모든 구성 요소는 1MiB의 메시지 크기 제한에 포함됩니다.  
`Name`, `Type`, `Value`, 메시지 본문은 비어있거나 null이면 안됩니다.

각 메시지 속성은 다음 구성 요소로 구성됩니다.
+ **이름** - 메시지 속성 이름에 사용할 수 있는 문자는 `A`-`Z`, `a`-`z`, `0`-`9`, 밑줄(`_`), 하이픈(`-`), 마침표(`.`)입니다. 다음과 같은 제한 사항이 있습니다.
  + 최대 256자일 수 있음
  + `AWS.` 또는 `Amazon.`(또는 모든 대소문자 변형)으로 시작할 수 없음
  + 대소문자 구분
  + 메시지의 모든 속성 이름 중에서 고유해야 함
  + 마침표로 시작하거나 끝나지 않아야 함
  + 시퀀스에 마침표가 없어야 함
+ **형식** - 메시지 속성 데이터 형식입니다. 지원되는 형식은 `String`, `Number`, `Binary`입니다. 또한 데이터 형식에 대한 사용자 지정 정보를 추가할 수 있습니다. 데이터 유형에는 메시지 본문과 동일한 제한 사항이 있습니다(자세한 내용은 *Amazon Simple Queue Service API 참조*의 `[SendMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)` 참조). 또한 다음과 같은 제한 사항이 적용됩니다.
  + 최대 256자일 수 있음
  + 대소문자 구분
+ **값** - 메시지 속성 값입니다. `String` 데이터 형식의 경우 속성 값은 메시지 본문과 동일한 제한 사항이 있습니다.

### 메시지 속성 데이터 형식
<a name="message-attribute-data-types"></a>

메시지 속성 데이터 형식은 해당 메시지 속성 값의 처리 방법을 Amazon SQS에 지시합니다. 예를 들어 형식이 `Number`인 경우 Amazon SQS에서 숫자 값을 확인합니다.

Amazon SQS는 `String`, `Number`, `Binary` 논리 데이터 형식과 `.custom-data-type` 형식의 선택적 사용자 지정 데이터 형식 레이블을 지원합니다.
+ **문자열** - `String` 속성은 모든 유효한 XML 문자를 사용하여 유니코드 텍스트를 저장할 수 있습니다.
+ **숫자** - `Number` 속성은 양수 또는 음수 값을 저장할 수 있습니다. 숫자는 최대 38자릿수의 정밀도를 갖출 수 있으며 10^-128에서 10^\$1126 사이일 수 있습니다.
**참고**  
Amazon SQS는 앞과 끝의 0을 제거합니다.
+ **이진** - 이진 속성은 모든 이진 데이터를 저장할 수 있습니다(예: 압축된 데이터, 암호화된 데이터 또는 이미지).
+ **사용자 지정** - 사용자 지정 데이터 형식을 생성하려면 사용자 지정 형식 레이블을 데이터 형식에 추가합니다. 예제:
  + `Number.byte`, `Number.short`, `Number.int`, `Number.float`는 숫자 형식을 구별하는 데 도움이 될 수 있습니다.
  + `Binary.gif`와 `Binary.png`는 파일 형식을 구별하는 데 도움이 될 수 있습니다.
**참고**  
Amazon SQS는 추가된 데이터를 해석, 확인 또는 사용하지 않습니다.  
사용자 지정 형식 레이블은 메시지 본문과 동일한 제한 사항이 있습니다.

### 메시지 속성의 MD5 메시지 다이제스트 계산
<a name="sqs-attributes-md5-message-digest-calculation"></a>

를 사용하는 경우이 섹션을 건너뛸 AWS SDK for Java수 있습니다. Java용 SDK의 `MessageMD5ChecksumHandler` 클래스는 Amazon SQS 메시지 속성에서 MD5 메시지 다이제스트를 지원합니다.

쿼리 API 또는 Amazon SQS 메시지 속성에 대해 MD5 메시지 다이제스트를 지원하지 않는 AWS SDKs 중 하나를 사용하는 경우 다음 지침을 사용하여 MD5 메시지 다이제스트 계산을 수행해야 합니다.

**참고**  
MD5 메시지 다이제스트 계산에는 항상 사용자 지정 데이터 유형 접미사를 포함하세요.

#### 개요
<a name="attributes-md5-message-digest-calculation-overview"></a>

다음은 MD5 메시지 다이제스트 계산 알로리즘의 개요입니다.

1. 모든 메시지 속성을 이름에 따라 오름차순으로 정렬합니다.

1. 각 속성의 개별 부분(`Name`, `Type`, `Value`)을 버퍼로 인코딩합니다.

1. 전체 버퍼의 메시지 다이제스트를 계산합니다.

다음 다이어그램은 단일 메시지 속성에서 MD5 메시지의 인코딩을 나타냅니다.

![\[단일 메시지 속성에 대한 MD5 메시지 다이제스트의 인코딩입니다.\]](http://docs.aws.amazon.com/ko_kr/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-msg-attrib-md5.png)


#### 단일 Amazon SQS 메시지 속성을 인코딩하려면
<a name="attributes-md5-message-digest-calculation-encode-single-attribute"></a>

1. 이름(이름의 길이(4바이트) 및 UTF-8바이트)을 인코딩합니다.

1. 데이터 형식(데이터 형식의 길이(4바이트) 및 UTF-8바이트)을 인코딩합니다.

1. 값(1바이트)의 전송 형식(`String` 또는 `Binary`)을 인코딩합니다.
**참고**  
`String` 및 `Number` 논리 데이터 형식은 `String` 전송 형식을 사용합니다.  
`Binary` 논리 데이터 형식은 `Binary` 전송 형식을 사용합니다.

   1. `String` 전송 형식은 1을 인코딩합니다.

   1. `Binary` 전송 형식은 2를 인코딩합니다.

1. 속성 값을 인코딩합니다.

   1. `String` 전송 형식은 속성 값(값의 길이(4바이트) 및 UTF-8바이트)을 인코딩합니다.

   1. `Binary` 전송 형식은 속성 값(값의 길이(4바이트) 및 원시 바이트)을 인코딩합니다.

## Amazon SQS 메시지 시스템 속성
<a name="sqs-message-system-attributes"></a>

[메시지 속성](#sqs-message-attributes)을 사용하여 사용자 지정 메타데이터를 응용 프로그램에 대한 Amazon SQS 메시지에 연결할 수 있는 반면, **메시지 시스템 속성을 사용하여 AWS X-Ray같은 다른 AWS 서비스에 대한 메타데이터를 지정할 수 있습니다. 자세한 내용은 **Amazon Simple Queue Service API 참조의 `[SendMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)` 및 `[SendMessageBatch](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html)` API 작업의 `MessageSystemAttribute` 요청 파라미터, `[ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)` API 작업의 `AWSTraceHeader` 속성, `[MessageSystemAttributeValue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_MessageSystemAttributeValue.html)` 데이터 유형을 참조하세요.

메시지 시스템 속성은 다음을 제외하고 메시지 시스템과 똑같이 구조화됩니다.
+ 현재 유일하게 지원되는 메시지 시스템 속성은 `AWSTraceHeader`입니다. 유형은 이어야 `String` 하며 값은 올바른 형식의 AWS X-Ray 트레이스 헤더 문자열이어야 합니다.
+ 메시지 시스템 속서으이 크기는 총 메시지 크기에 합산되지 않습니다.