

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

# Amazon SQS 대기열로 메시지 속성 보내기
<a name="sqs-java-send-message-with-attributes"></a>

**메시지 속성을 사용하여 메시지에 구조화된 메타데이터(예: 타임스탬프, 지리 공간 데이터, 서명 및 식별자)를 포함할 수 있습니다. 자세한 내용은 [Amazon SQS 메시지 속성](sqs-message-metadata.md#sqs-message-attributes) 단원을 참조하십시오.

 예제 코드를 실행하기 전에 자격 AWS 증명을 설정했는지 확인합니다. 자세한 내용은 *AWS SDK for Java 2.x 개발자 안내서*의 [개발을 위한 AWS 자격 증명 및 리전 설정을 참조하세요](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html#setup-credentials).

## 속성 정의
<a name="sqs-java-define-attributes"></a>

메시지에 대한 속성을 정의하려면 `[MessageAttributeValue](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_MessageAttributeValue.html)` 데이터 유형을 사용하는 다음 코드를 추가합니다. 자세한 내용은 [메시지 속성 구성 요소](sqs-message-metadata.md#message-attribute-components) 및 [메시지 속성 데이터 형식](sqs-message-metadata.md#message-attribute-data-types) 섹션을 참조하세요.

는 메시지 본문 및 메시지 속성 체크섬을 AWS SDK for Java 자동으로 계산하고 Amazon SQS가 반환하는 데이터와 비교합니다. 자세한 내용은 **[AWS SDK for Java 2.x 개발자 안내서](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) 및 다른 프로그래밍 언어의 [메시지 속성의 MD5 메시지 다이제스트 계산](sqs-message-metadata.md#sqs-attributes-md5-message-digest-calculation)을 참조하세요.

------
#### [ String ]

이 예제에서는 값 `Jane`을 사용하여 `Name`이라는 `String` 속성을 정의합니다.

```
final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
messageAttributes.put("Name", new MessageAttributeValue()
.withDataType("String")
.withStringValue("Jane"));
```

------
#### [ Number ]

이 예제에서는 값 `230.000000000000000001`을 사용하여 `AccurateWeight`이라는 `Number` 속성을 정의합니다.

```
final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
messageAttributes.put("AccurateWeight", new MessageAttributeValue()
.withDataType("Number")
.withStringValue("230.000000000000000001"));
```

------
#### [ Binary ]

이 예제에서는 초기화되지 않은 10바이트 어레이의 값을 사용하여 `ByteArray`라는 `Binary` 속성을 정의합니다.

```
final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
messageAttributes.put("ByteArray", new MessageAttributeValue()
.withDataType("Binary")
.withBinaryValue(ByteBuffer.wrap(new byte[10])));
```

------
#### [ String (custom) ]

이 예제에서는 값 `ABC123456`을 사용하여 `EmployeeId`라는 사용자 지정 속성 `String.EmployeeId`를 정의합니다.

```
final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
messageAttributes.put("EmployeeId", new MessageAttributeValue()
.withDataType("String.EmployeeId")
.withStringValue("ABC123456"));
```

------
#### [ Number (custom) ]

이 예제에서는 값 `000123456`을 사용하여 `AccountId`라는 사용자 지정 속성 `Number.AccountId`를 정의합니다.

```
final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
messageAttributes.put("AccountId", new MessageAttributeValue()
.withDataType("Number.AccountId")
.withStringValue("000123456"));
```

**참고**  
기본 데이터 입력이 `Number`이므로 `[ReceiveMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)` 메서드가 `123456`을 반환합니다.

------
#### [ Binary (custom) ]

이 예제에서는 초기화되지 않은 10바이트 어레이의 값을 사용하여 `ApplicationIcon`이라는 사용자 지정 속성 `Binary.JPEG`를 정의합니다.

```
final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
messageAttributes.put("ApplicationIcon", new MessageAttributeValue()
.withDataType("Binary.JPEG")
.withBinaryValue(ByteBuffer.wrap(new byte[10])));
```

------

## 속성을 포함하는 메시지 전송
<a name="sqs-java-send-attributes"></a>

이 예에서는 메시지를 보내기 전에 `SendMessageRequest`에 속성을 추가합니다.

```
// Send a message with an attribute.
final SendMessageRequest sendMessageRequest = new SendMessageRequest();
sendMessageRequest.withMessageBody("This is my message text.");
sendMessageRequest.withQueueUrl(myQueueUrl);
sendMessageRequest.withMessageAttributes(messageAttributes);
sqs.sendMessage(sendMessageRequest);
```

**중요**  
선입선출(FIFO) 대기열로 메시지를 보내는 경우 메시지 그룹 ID를 제공한 **후 `sendMessage` 메서드가 실행되는지 확인하세요.  
`[SendMessage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)` 대신 `[SendMessageBatch](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessageBatch.html)` 메서드를 사용하는 경우 배치의 개별 메시지에 대해 메시지 속성을 지정해야 합니다.