

**지원 종료 공지:** 2026년 10월 30일에 Amazon Pinpoint에 대한 지원이 AWS 종료됩니다. 2026년 10월 30일 이후에는 Amazon Pinpoint 콘솔 또는 Amazon Pinpoint 리소스(엔드포인트, 세그먼트, 캠페인, 여정, 분석)에 더 이상 액세스할 수 없습니다. 자세한 내용은 [Amazon Pinpoint 지원 종료](https://docs.aws.amazon.com/console/pinpoint/migration-guide)를 참조하세요. **참고:** SMS, 음성, 모바일 푸시, OTP 및 전화번호 검증과 관련된 APIs는이 변경의 영향을 받지 않으며 AWS 최종 사용자 메시징에서 지원됩니다.

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

# Amazon Pinpoint 메시지 템플릿
<a name="messages-templates"></a>

주간 뉴스레터 또는 약속 미리 알림과 같은 특정 유형의 메시지를 자주 디자인하고 보내는 경우 메시지를 작성하여 메시지 템플릿으로 저장할 수 있습니다. 그런 다음 메시지를 다시 디자인하고 작성하는 대신 해당 유형의 메시지를 전송해야 할 때마다 템플릿을 시작점으로 사용할 수 있습니다.

*메시지 템플릿*은 모든 Amazon Pinpoint 프로젝트를 위해 보내는 메시지에서 작성, 저장 및 재사용할 수 있는 콘텐츠 및 설정 집합입니다. 템플릿을 생성하는 경우 템플릿을 토대로 하는 메시지의 다양한 구성 요소에서 다시 사용하려는 콘텐츠를 지정합니다.

이러한 구성 요소를 *템플릿 파트*라고 하며 템플릿의 유형에 따라 정적 텍스트, 개인화된 콘텐츠, 이미지, 기타 디자인 요소를 포함할 수 있습니다. 템플릿 부분에는 채널별 설정도 포함될 수 있습니다. 예를 들어, 푸시 알림 템플릿의 템플릿 부분은 재생할 사용자 지정 사운드 또는 수신자가 템플릿을 기반으로 하는 푸시 알림을 받을 때 표시할 이미지를 지정할 수 있습니다.

메시지를 생성할 때 메시지에 사용할 템플릿을 선택할 수 있습니다. 템플릿을 선택하면 Amazon Pinpoint가 템플릿의 콘텐츠와 설정으로 메시지를 채웁니다.

Amazon Pinpoint에서 다음과 같은 유형의 메시지 템플릿을 디자인할 수 있습니다.
+ 캠페인이나 여정에서 전송하거나 제한된 대상에게 다이렉트 또는 테스트 메시지로 보내는 이메일 메시지의 **이메일 템플릿**입니다.
+ 캠페인에서 전송하거나 제한된 대상에게 다이렉트 또는 테스트 메시지로 보내는 푸시 알림의 **푸시 알림 템플릿**입니다.
+ 캠페인에서 전송하거나 제한된 대상에게 다이렉트 또는 테스트 메시지로 보내는 SMS 문자 메시지의 **SMS 템플릿**입니다.
+ 다이렉트 또는 테스트 메시지로 보내는 음성 메시지의 **음성 템플릿**입니다.

Amazon Pinpoint는 여러 유형의 메시지 템플릿을 지원할 뿐 아니라 메시지 템플릿의 버전 관리도 지원합니다. 버전 관리를 사용하면 시간 경과에 따라 템플릿을 디자인하고 변경함과 동시에 템플릿의 이력을 작성하고 유지할 수 있습니다. 또한 버전 관리를 사용하면 메시지에 사용할 수 있는 템플릿 버전을 지정할 수 있습니다. 템플릿 버전에 대한 자세한 내용은 [메시지 템플릿 버전 관리](message-templates-versioning.md) 단원을 참조하십시오.

이 챕터의 주제에서는 Amazon Pinpoint 계정의 메시지 템플릿을 생성하고 관리하는 방법을 설명합니다.

**Topics**
+ [이메일 템플릿 만들기](message-templates-creating-email.md)
+ [인앱 템플릿 생성](message-templates-creating-inapp.md)
+ [푸시 알림 템플릿 생성](message-templates-creating-push.md)
+ [SMS 템플릿 만들기](message-templates-creating-sms.md)
+ [음성 템플릿 만들기](message-templates-creating-voice.md)
+ [메시지 템플릿에 맞춤형 콘텐츠 추가](message-templates-personalizing.md)
+ [메시지 템플릿 헬퍼 사용](message-template-helpers.md)
+ [메시지 템플릿 관리](message-templates-managing.md)
+ [메시지 템플릿 버전 관리](message-templates-versioning.md)

# 이메일 템플릿 만들기
<a name="message-templates-creating-email"></a>

*이메일 템플릿*은 모든 Amazon Pinpoint 프로젝트를 위해 보내는 이메일 메시지에서 작성, 저장 및 재사용할 콘텐츠와 설정이 포함된 메시지 템플릿 유형입니다. Amazon Pinpoint를 사용하여 만들고 보내는 모든 유형의 이메일 메시지에 이메일 템플릿을 사용할 수 있습니다.

이메일 템플릿을 생성하는 경우 템플릿을 토대로 하는 이메일 메시지의 다양한 구성 요소에서 다시 사용하려는 콘텐츠와 설정을 지정합니다. *템플릿 부분*이라고 하는 이러한 구성 요소는 메시지 제목, 메시지 본문 또는 둘 다일 수 있습니다. 콘텐츠는 정적 텍스트, 맞춤형 콘텐츠, 이미지 또는 기타 디자인 요소일 수 있습니다. 수신자의 이메일 애플리케이션이 HTML 콘텐츠를 표시하지 않는 경우, 템플릿 부분은 사용할 메시지 본문과 같은 설정일 수도 있습니다.

템플릿을 기반으로 하는 이메일 메시지를 만들 때 Amazon Pinpoint는 템플릿에서 정의한 콘텐츠와 설정으로 메시지를 채웁니다.

**이메일 템플릿 만들기**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **템플릿 생성**을 선택합니다.

1. **채널**에서 **이메일**을 선택합니다.

1. **템플릿 세부 정보**에서 **템플릿 이름**에 템플릿의 이름을 입력합니다. 이름은 문자 또는 숫자로 시작해야 합니다. 최대 128자까지 입력할 수 있습니다. 문자는 문자, 숫자, 밑줄(\$1) 또는 하이픈(-)일 수 있습니다.

1. (선택 사항) **버전 설명**에 템플릿에 대한 간단한 설명을 입력합니다. 설명은 최대 500자까지 입력할 수 있습니다.

1. **이메일 세부 정보**에 다음 옵션을 사용하여 템플릿을 사용하는 메시지의 콘텐츠를 지정합니다.
   + **제목**에 메시지의 제목 줄에 표시할 텍스트를 입력합니다.
   + **메시지**에 메시지 본문에 표시할 콘텐츠를 입력합니다.
**작은 정보**  
메시지 본문에 HTML 또는 디자인 보기를 사용하여 콘텐츠를 입력할 수 있습니다. HTML 보기에서는 서식, 링크 및 메시지에 포함시킬 기타 특성 등 HTML 콘텐츠를 수동으로 입력할 수 있습니다. 디자인 보기에서 서식 있는 텍스트 편집기를 사용하여 콘텐츠를 입력할 수 있습니다. 서식 도구 모음을 사용하여 서식을 적용하고, 콘텐츠에 링크와 기타 기능을 추가할 수 있습니다. 보기를 전환하려면 메시지 편집기 위의 보기 선택기에서 **HTML** 또는 **디자인**을 선택합니다.  
템플릿 제목과 본문에 맞춤형 콘텐츠를 포함할 수도 있습니다. 이렇게 하려면 사용자의 이름을 저장하는 속성 등 사용자 또는 Amazon Pinpoint가 생성한 특정 속성을 참조하는 메시지 변수를 추가하세요. 메시지 변수를 사용하면 템플릿을 사용하는 메시지 수신자마다 다른 콘텐츠를 표시할 수 있습니다. 메시지 변수를 사용하려면 **속성 파인더**에서 기존 속성의 이름을 선택합니다. Amazon Pinpoint는 속성에 대한 메시지 변수를 생성하여 클립보드에 복사합니다. 원하는 위치에 변수를 붙여넣습니다. 자세한 내용은 [메시지 템플릿에 맞춤형 콘텐츠 추가](message-templates-personalizing.md) 단원을 참조하십시오.

1. 
**참고**  
이메일 헤더를 사용하려면 먼저 이메일 오케스트레이션 전송 역할을 설정해야 합니다. 자세한 내용은 [Amazon Pinpoint에서 이메일 오케스트레이션 전송 역할 생성](channels-email-orchestration-sending-role.md) 단원을 참조하십시오.

   **헤더**에서 **새 헤더 추가**를 선택하여 이메일 메시지에 최대 15개의 헤더를 추가합니다. 지원되는 헤더 목록은 [Amazon Simple Email Service 개발자 안내서](https://docs.aws.amazon.com/ses/latest/dg/header-fields.html)의 [Amazon SES 헤더 필드](https://docs.aws.amazon.com//ses/latest/dg/Welcome.html)를 참조하세요.
   + **이름**에 헤더 이름을 입력합니다.
   + **값**에는 헤더 값을 입력합니다.

   (선택 사항) 프로모션 이메일에 원클릭 구독 취소 링크를 추가하려면 다음 두 헤더를 추가합니다.

   1. **이름**에 대해 `List-Unsubscribe`를 사용하여 헤더를 생성하고 **값**을 구독 취소 링크로 설정합니다. 수신자의 구독 취소 요청을 처리하려면 링크에서 HTTP POST 요청을 지원해야 합니다.

   1. **이름**에 대해 `List-Unsubscribe-Post`를 사용하여 헤더를 생성하고 **값** `List-Unsubscribe=One-Click`으로 설정합니다.

1. (선택 사항) **일반 텍스트 버전**에서, 템플릿을 사용하고 이메일 애플리케이션에 HTML 콘텐츠가 표시되지 않는 받는 사람에게 전송되는 메시지 본문에 표시할 내용을 입력합니다.

1. 메시지 변수를 사용하여 개인화된 콘텐츠를 템플릿에 추가한 경우 각 변수의 기본값을 지정합니다. 이렇게 하면 수신자에 해당하는 값이 없는 경우 Amazon Pinpoint가 변수를 지정한 값으로 바꿉니다. 템플릿의 각 변수에 대해 이 작업을 수행하는 것이 좋습니다.

   변수의 기본값을 지정하려면 **기본 속성 값** 섹션을 확장합니다. 그런 다음 각 변수에 사용할 기본값을 입력합니다. 기본값을 지정하지 않고 수신자에 대한 값이 없는 경우 Amazon Pinpoint는 메시지를 보내지 않습니다.

1. 템플릿의 내용 및 설정 입력을 마치면 **만들기**를 선택합니다.

사용자에게 보내는 이메일 메시지에 템플릿을 사용하기 전에 템플릿을 테스트하려면 해당 템플릿을 사용하는 [테스트 메시지를 전송](messages-email.md)하면 됩니다. 이렇게 하려면 먼저 9단계를 완료하여 템플릿의 모든 변수에 기본값을 지정해야 합니다. 그러지 않으면 메시지가 전송되지 않거나 올바르게 렌더링되지 않을 수 있습니다.

## 메시지 템플릿에 구독 취소 링크 포함
<a name="message-templates-creating-email-optout"></a>

이메일에 구독 취소 링크를 포함하는 것이 모범 사례이며, 일부 국가에서는 법적 요구 사항이기도 합니다. 구독 취소 링크에는 특수 속성 `ses:tags="unsubscribeLinkTag:value"`를 포함할 수 있습니다. 여기서 *value*는 사용자가 정의한 값입니다. 수신자가 이 특수 속성이 포함된 링크를 클릭하면 Amazon Pinpoint는 분석을 위해 이를 옵트아웃 이벤트로 간주합니다(예: [분석 개요 페이지](analytics-overview.md)의 옵트아웃 비율 지표에서). 다음 예제는 이 링크 유형의 구문을 보여 줍니다.

```
<a ses:tags="unsubscribeLinkTag:optout" href="https://www.example.com/preferences">Unsubscribe</a>
```

템플릿에 이 속성의 링크가 포함되어 있는 경우에도 옵트아웃 요청을 처리하기 위한 시스템을 개발해야 합니다. 옵트아웃 요청을 처리하는 시스템의 예는 AWS 솔루션 라이브러리의 [Amazon Pinpoint Preference Center 솔루션을](https://aws.amazon.com/solutions/implementations/amazon-pinpoint-preference-center/) 참조하세요.

**참고**  
Amazon Pinpoint Preference Center 솔루션이 이제 지침입니다. 솔루션을 더 이상 배포할 수 없지만 아키텍처 다이어그램과 코드는 참조로 남았습니다.

# 인앱 템플릿 생성
<a name="message-templates-creating-inapp"></a>

*인앱 템플릿*은 Amazon Pinpoint에서 애플리케이션 사용자에게 보내는 메시지의 템플릿입니다. 인앱 템플릿을 사용하여 인앱 메시지의 설정과 콘텐츠를 생성, 저장 및 재사용할 수 있습니다.

인앱 템플릿을 만들 때 템플릿을 사용하는 인앱 메시지의 본문에서 다시 사용할 설정과 콘텐츠를 지정합니다. 템플릿을 사용하는 메시지를 만들 때 Amazon Pinpoint는 정의한 설정과 콘텐츠로 메시지를 채웁니다.

인앱 메시지는 자유롭게 사용자 지정할 수 있습니다. 인앱 메시지에는 웹 사이트를 열거나 사용자를 앱의 특정 부분으로 이동시키는 버튼이 포함될 수 있습니다. 배경색과 텍스트 색상을 구성하고, 텍스트 위치를 조정하고, 알림에 이미지를 추가할 수 있습니다. 단일 메시지를 보내거나, 사용자가 스크롤할 수 있는 최대 5개의 고유한 메시지가 포함된 *Carousel*을 생성할 수 있습니다.

**인앱 템플릿을 생성하려면**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **템플릿 생성**을 선택합니다.

1. **채널**에서 **인앱 메시징**을 선택합니다.

1. **템플릿 세부 정보**에서 **템플릿 이름**에 템플릿의 이름을 입력합니다. 이름은 문자 또는 숫자로 시작해야 합니다. 최대 128자까지 입력할 수 있습니다. 문자는 문자, 숫자, 밑줄(\$1) 또는 하이픈(-)일 수 있습니다.

1. (선택 사항) **버전 설명**에 템플릿에 대한 간단한 설명을 입력합니다. 설명은 최대 500자까지 입력할 수 있습니다.

1. **인앱 메시지 세부 정보** 섹션의 **레이아웃**에서 메시지 템플릿의 레이아웃 유형을 선택합니다. 다음 옵션 중에서 선택할 수 있습니다.
   + **상단 배너** - 페이지 상단에 배너로 표시되는 메시지입니다.
   + **하단 배너** - 페이지 하단에 배너로 표시되는 메시지입니다.
   + **중간 배너** - 페이지 중간에 배너로 표시되는 메시지입니다.
   + **전체 화면** - 전체 화면을 덮는 메시지입니다.
   + **모달** - 페이지 앞의 창에 표시되는 메시지입니다.
   + **캐러셀** - 최대 5개 고유 메시지의 스크롤 가능한 레이아웃입니다.

1. **헤더**에서 메시지 시작 부분에 표시되는 제목을 구성합니다. 캐러셀 메시지를 생성한 경우 헤더가 포함된 캐러셀의 첫 번째 메시지를 작성해야 합니다.

   1. 배너에 표시할 **헤더 텍스트**의 경우 최대 64자까지 입력할 수 있습니다.

   1. **헤더 텍스트 색상**에서 헤더의 텍스트 색상을 선택합니다. 선택적으로 RGB 값 또는 16진수 색상 코드를 입력할 수 있습니다.

   1. **헤더 정렬**에서 텍스트를 **왼쪽**, **가운데** 또는 **오른쪽** 정렬할지 선택합니다.

1. **메시지**에서 메시지의 본문을 구성합니다.

   1. **메시지**에서 메시지의 본문 텍스트를 입력합니다. 메시지는 최대 150자를 포함할 수 있습니다.

   1. **텍스트 색상**에서 메시지 본문의 텍스트 색상을 선택합니다. 선택적으로 RGB 값 또는 16진수 색상 코드를 입력할 수 있습니다.

   1. **텍스트 정렬**에서 텍스트를 **왼쪽**, **가운데** 또는 **오른쪽** 정렬할지 선택합니다.

1. (선택 사항) 메시지의 배경색을 변경합니다. **배경**에서 메시지의 배경색을 선택합니다. 선택적으로 RGB 값 또는 16진수 색상 코드를 입력할 수 있습니다.

1. (선택 사항) 메시지에 이미지를 추가합니다. **이미지 URL**에서 메시지에 표시할 이미지의 URL을 입력합니다. .jpg 및.png 파일만 허용됩니다. 이미지 크기는 메시지 유형에 따라 달라집니다.
   + **배너**의 경우 이미지는 100픽셀 x 100픽셀이거나 가로 세로 비율 1:1이어야 합니다.
   + **캐러셀**의 경우 이미지는 300픽셀 x 300픽셀이거나 가로 세로 비율 3:2여야 합니다.
   + **전체 화면** 메시지의 경우 이미지는 300픽셀 x 200픽셀이거나 가로 세로 비율 3:2여야 합니다.

1. (선택 사항) 메시지에 버튼을 추가합니다. **기본 버튼**에서 다음 작업을 수행합니다.

   1. **기본 버튼 추가**를 선택합니다.

   1. **버튼 텍스트**에서 버튼에 표시할 텍스트를 입력합니다. 최대 64자까지 입력할 수 있습니다.

   1. (선택 사항) **버튼 텍스트 색상**에서 버튼 텍스트의 색상을 선택합니다. 선택적으로 RGB 값 또는 16진수 색상 코드를 입력할 수 있습니다.

   1. (선택 사항) **배경색**에서 버튼의 배경색을 설정합니다. 선택적으로 RGB 값 또는 16진수 색상 코드를 입력할 수 있습니다.

   1. (선택 사항) **테두리 반지름**에 반지름 값을 입력합니다. 값이 낮을수록 모서리가 더 선명하고 숫자가 높을수록 모서리가 더 둥글어집니다.

   1. **작업**에서 사용자가 버튼을 탭할 때 발생하는 이벤트를 선택합니다.
      + **닫기** - 메시지를 닫습니다.
      + **URL로 이동** — 웹 사이트를 엽니다.
      + **딥 링크로 이동** — 앱을 열거나 앱의 특정 위치를 엽니다.

      디바이스 유형별로 버튼 동작을 다르게 하려면 기본 작업을 재정의할 수 있습니다. **작업**에서 탭을 사용하여 버튼 동작을 수정하려는 디바이스 유형을 선택합니다. 예를 들어 iOS 디바이스의 버튼 동작을 수정하려면 **iOS**를 선택합니다. 그런 다음 **기본 작업 재정의**를 선택합니다. 마지막으로 작업을 지정합니다.

1. (선택 사항) 메시지에 보조 버튼을 추가합니다. **보조 버튼**에서 **보조 버튼 추가**를 선택합니다. 이전 단계의 절차에 따라 보조 버튼을 구성합니다.

1. (선택 사항) 메시지에 사용자 지정 데이터를 추가합니다. 사용자 지정 데이터는 메시지와 함께 전달되는 키-값 페어입니다. 예를 들어, 메시지와 함께 프로모션 코드를 전달할 수 있습니다. 캐러셀 메시지를 보내는 경우 각 캐러셀 메시지에 사용자 지정 데이터를 추가할 수 있습니다. 사용자 지정 데이터를 추가하려면 다음을 수행합니다.

   1. **사용자 지정 데이터**에서 **새 항목 추가**를 선택합니다.

   1. **키**를 입력합니다. 예를 들어, *PromoCode*일 수 있습니다.

   1. 키의 **값**을 입력합니다. *PromoCode*는 *12345*일 수 있습니다.

   1. 메시지를 보낼 때 코드 *12345*가 메시지에 포함됩니다.

   1. 키-값 페어를 더 추가하려면 **새 항목 추가**를 선택합니다. 메시지에 최대 10개의 키-값 페어를 추가할 수 있습니다. 사용자 지정 데이터 추가를 마치면 다음 단계를 진행합니다.

1. 메시지가 캐러셀인 경우 고유한 메시지를 최대 4개 더 추가할 수 있습니다. 캐러셀에 메시지를 추가하려면 **캐러셀 개요** 섹션을 확장합니다. 그런 다음 **새 메시지 추가**를 선택합니다. 메시지를 구성하려면 이전 단계를 반복합니다.

   캐러셀에 메시지를 추가하면 캐러셀에 포함된 메시지의 수를 보여주는 아이콘이 페이지 하단에 표시되며 **미리 보기** 페이지가 업데이트됩니다.

   다음 이미지는 두 개의 메시지가 포함된 Carousel을 보여줍니다.  
![\[\]](http://docs.aws.amazon.com/ko_kr/pinpoint/latest/userguide/images/channels-inapp-carousel.png)

1. 마쳤으면 [**생성**]을 선택합니다.

# 푸시 알림 템플릿 생성
<a name="message-templates-creating-push"></a>

*푸시 알림 템플릿*은 Amazon Pinpoint 프로젝트에서 사용할 수 있는 콘텐츠 및 설정이 포함된 메시지 템플릿입니다. 템플릿을 사용하여 푸시 알림을 보내면 Amazon Pinpoint는 템플릿에서 정의한 내용과 설정으로 알림을 채웁니다.

푸시 알림 템플릿을 만들 때 템플릿을 기반으로 하는 푸시 알림의 다양한 구성 요소에서 재사용할 콘텐츠와 설정을 지정합니다. *템플릿 부분*이라고 하는 이러한 구성 요소는 알림의 제목이나 본문과 같은 텍스트나 수신자가 알림을 받을 때 재생할 사용자 지정 사운드와 같은 설정을 포함할 수 있습니다.

특정 푸시 알림 채널에 대한 템플릿을 사용자 정의하려면 각 템플릿에 여러 세트의 템플릿 부분(기본 세트)와 하나 이상의 서비스별 세트를 작성할 수 있습니다. 기본 세트에는 푸시 알림 채널에 기본적으로 사용할 내용과 설정이 포함되어 있습니다. 서비스별 세트에는 Apple Push Notification service 또는 Firebase Cloud Messaging과 같은 특정 알림 서비스에 사용하려는 모든 콘텐츠 및 설정이 포함됩니다. 템플릿에 서비스별 설정을 추가하여 수신자 디바이스 유형에 고유한 콘텐츠를 표시하도록 알림을 조정할 수 있습니다.

[원시 메시지 데이터가 포함된 템플릿을 생성](#message-templates-creating-push-raw)할 수도 있습니다. 이 옵션은 고급 옵션이지만 표준 Amazon Pinpoint 푸시 알림 템플릿에 없는 특정 채널의 설정을 지정하려는 경우에 유용합니다.

## 표준 푸시 알림 템플릿 생성
<a name="message-templates-creating-push-standard"></a>

제목, 메시지 본문, 이미지, 작업 등의 기본 메시지 콘텐츠를 지정하려면 이 절차를 완료합니다. 원시 메시지 내용을 지정하려면 대신 [원시 메시지 데이터를 사용하여 푸시 알림 템플릿 생성](#message-templates-creating-push-raw)의 절차를 완료합니다.

**푸시 알림 템플릿을 만들려면 다음을 수행합니다.**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **템플릿 생성**을 선택합니다.

1. **채널**에서 **푸시 알림**을 선택합니다.

1. **템플릿 세부 정보**에서 **템플릿 이름**에 템플릿의 이름을 입력합니다. 이름은 문자 또는 숫자로 시작해야 합니다. 최대 128자까지 입력할 수 있습니다. 문자는 문자, 숫자, 밑줄(\$1) 또는 하이픈(-)일 수 있습니다.

1. (선택 사항) **버전 설명**에 템플릿에 대한 간단한 설명을 입력합니다. 설명은 최대 500자까지 입력할 수 있습니다.

1. **푸시 알림 세부 정보**에서 다음을 수행합니다.
   + **알림 유형**에서 **표준 메시지**를 선택합니다.
   + **제목**에 메시지 본문 위에 표시할 제목을 입력합니다.
   + **본문**에 알림 메시지 본문에 표시할 텍스트를 입력합니다.
**작은 정보**  
템플릿 제목과 본문에 맞춤형 콘텐츠를 포함할 수 있습니다. 이렇게 하려면 사용자의 이름을 저장하는 속성 등 특정 속성을 참조하는 메시지 변수를 추가하세요. 메시지 변수를 사용하면 템플릿을 사용하는 푸시 알림 수신자마다 다른 콘텐츠를 표시할 수 있습니다.  
메시지 변수를 사용하려면 **속성 파인더**에서 기존 속성의 이름을 선택합니다. Amazon Pinpoint는 속성에 대한 메시지 변수를 생성하여 클립보드에 복사합니다. 원하는 위치에 변수를 붙여넣습니다. 자세한 내용은 [메시지 템플릿에 맞춤형 콘텐츠 추가](message-templates-personalizing.md) 단원을 참조하십시오.
   + **사용자 지정 경고 사운드**의 경우 수신자가 푸시 알림을 받을 때 재생할 사용자 지정 사운드가 포함된 오디오 파일의 이름을 입력합니다. 이 이름은 받는 사람의 장치에 있는 오디오 파일의 이름과 일치해야 합니다.
   + **작업**에서 수신자가 푸시 알림을 탭할 경우 수신자의 장치에서 수행할 작업을 선택합니다.
     + **앱 열기** - 앱을 열거나 백그라운드로 전송된 경우 포그라운드로 가져옵니다.
     + **URL로 이동** - 수신자의 디바이스에서 기본 브라우저를 열고 특정 웹 페이지를 로드합니다. 이 옵션을 선택한 경우 **대상 URL** 상자에 웹 페이지의 URL을 입력합니다.
     + **딥 링크 열기** - 앱을 열고 앱에 특정 사용자 인터페이스를 표시합니다. 이 옵션을 선택한 경우 **대상 URL** 상자에 인터페이스의 URL을 입력합니다.

1. (선택 사항) 특정 푸시 알림 서비스에 맞게 템플릿을 사용자 지정하려면 **개별 푸시 서비스에 대한 콘텐츠 사용자 지정**에서 해당 서비스 탭을 선택합니다. 그런 다음 해당 서비스에 대해 원하는 옵션을 선택합니다.

   서비스 탭에서 **기본 푸시 콘텐츠 재정의** 확인란을 선택하면 Amazon Pinpoint는 이전 단계에서 선택한 기본 콘텐츠 및 설정을 탭에서 선택한 옵션으로 자동으로 바꿉니다. 기본 콘텐츠 및 설정을 유지하고 추가 채널별 설정을 사용하도록 템플릿을 사용자 지정하려면 이 확인란을 선택하지 마십시오.  
**Apple**  
이러한 옵션을 사용하여 iOS 디바이스에서 실행되는 앱에 Apple Push Notification service(APNs) 채널을 통해 전송하는 푸시 알림에 대한 사용자 지정 콘텐츠 및 설정을 지정할 수 있습니다.  
표준 콘텐츠 및 설정 외에도 템플릿을 사용하는 푸시 알림에 사용자 정의 이미지 또는 비디오를 포함할 수 있습니다. 이렇게 하려면 **iOS 미디어** 상자에 이미지 또는 비디오 파일의 URL을 입력합니다. URL은 공개적으로 액세스할 수 있어야 합니다. 그렇지 않으면 수신자의 장치에서 이미지 또는 비디오를 표시할 수 없습니다.  
**Google**  
이 옵션을 사용하여 Google Firebase Cloud Messaging(FCM) 채널을 통해 Android 디바이스에서 실행되는 앱으로 전송하는 푸시 알림에 대한 사용자 지정 콘텐츠 및 설정을 지정합니다.  
표준 콘텐츠 및 설정 외에도 다음 옵션을 선택하여 템플릿을 사용하는 푸시 알림에 사용자 정의 이미지를 표시할 수 있습니다.  
   + **Android 이미지** - 푸시 알림 본문에 표시할 이미지의 URL을 입력합니다.
   + **Android 아이콘** - 푸시 알림의 콘텐츠 보기에 표시할 큰 아이콘 이미지의 URL을 입력합니다.
   + **Android 작은 아이콘** - 상태 표시줄과 푸시 알림의 콘텐츠 보기에 표시할 작은 아이콘 이미지의 URL을 입력합니다.  
**Amazon**  
이러한 옵션을 사용하여 Amazon Device Messaging(ADM) 채널을 통해 Kindle Fire 태블릿 등 Amazon 장치에서 실행되는 앱으로 전송하는 푸시 알림에 대한 사용자 지정 콘텐츠 및 설정을 지정할 수 있습니다.  
표준 콘텐츠 및 설정 외에도 다음 옵션을 선택하여 템플릿을 사용하는 푸시 알림에 사용자 정의 이미지를 표시할 수 있습니다.  
   + **Android 이미지** - 푸시 알림 본문에 표시할 이미지의 URL을 입력합니다.
   + **Android 아이콘** - 푸시 알림의 콘텐츠 보기에 표시할 큰 아이콘 이미지의 URL을 입력합니다.
   + **Android 작은 아이콘** - 상태 표시줄과 푸시 알림의 콘텐츠 보기에 표시할 작은 아이콘 이미지의 URL을 입력합니다.  
**Baidu**  
이러한 옵션을 사용하여 Baidu 채널을 통해 Baidu Cloud 푸시 플랫폼을 사용하는 앱으로 전송하는 푸시 알림에 대한 사용자 지정 콘텐츠 및 설정을 지정할 수 있습니다.  
표준 콘텐츠 및 설정 외에도 다음 옵션을 선택하여 템플릿을 사용하는 푸시 알림에 사용자 정의 이미지를 표시할 수 있습니다.  
   + **Android 이미지** - 푸시 알림 본문에 표시할 이미지의 URL을 입력합니다.
   + **Android 아이콘** - 푸시 알림의 콘텐츠 보기에 표시할 큰 아이콘 이미지의 URL을 입력합니다.
   + **Android 작은 아이콘** - 상태 표시줄과 푸시 알림의 콘텐츠 보기에 표시할 작은 아이콘 이미지의 URL을 입력합니다.

1. 메시지 변수를 사용하여 개인화된 콘텐츠를 템플릿에 추가한 경우 각 변수의 기본값을 지정합니다. 이렇게 하면 수신자에 해당하는 값이 없는 경우 Amazon Pinpoint가 변수를 지정한 값으로 바꿉니다. 템플릿의 각 변수에 대해 이 작업을 수행하는 것이 좋습니다.

   변수의 기본값을 지정하려면 **기본 속성 값** 섹션을 확장합니다. 그런 다음 각 변수에 사용할 기본값을 입력합니다. 기본값을 지정하지 않고 수신자에 대한 값이 없는 경우 Amazon Pinpoint는 메시지를 보내지 않습니다.

1. 템플릿의 내용 및 설정 입력을 마치면 **만들기**를 선택합니다.

## 원시 메시지 데이터를 사용하여 푸시 알림 템플릿 생성
<a name="message-templates-creating-push-raw"></a>

원시 메시지 페이로드를 수동으로 지정하려면 이 절차를 완료하세요. Amazon Pinpoint에서 구성할 수 없는 특정 푸시 알림 서비스의 기능을 사용하려는 경우에만 원시 메시지 페이로드를 지정해야 합니다. 원시 메시지 콘텐츠를 지정해야 하는 경우 [표준 푸시 알림 템플릿 생성](#message-templates-creating-push-standard)의 절차를 대신 완료해야 합니다.

원시 메시지 템플릿을 사용해야 하는 사용 사례의 예로는 데스크톱 Safari 웹 브라우저 사용자에게 메시지를 보내려는 경우를 들 수 있습니다. 이 경우 원시 메시지 페이로드에 특정 속성을 포함해야 합니다. 자세한 내용은 *AWS End User Messaging Push 사용 설명서*의 [메시지 전송](https://docs.aws.amazon.com/push-notifications/latest/userguide/reference-send-message.html)을 참조하세요.

**푸시 알림 템플릿을 만들려면 다음을 수행합니다.**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **템플릿 생성**을 선택합니다.

1. **채널**에서 **푸시 알림**을 선택합니다.

1. **템플릿 세부 정보**에서 **템플릿 이름**에 템플릿의 이름을 입력합니다. 이름은 문자 또는 숫자로 시작해야 합니다. 최대 128자까지 입력할 수 있습니다. 문자는 문자, 숫자, 밑줄(\$1) 또는 하이픈(-)일 수 있습니다.

1. (선택 사항) **버전 설명**에 템플릿에 대한 간단한 설명을 입력합니다. 설명은 최대 500자까지 입력할 수 있습니다.

1. **푸시 알림 세부 정보**의 **알림 유형**에서 **원시 메시지**를 선택합니다. 메시지 편집기에 템플릿에 사용할 코드의 개요가 표시됩니다. 메시지 편집기에서 템플릿에 지정할 이미지, 사운드, 작업과 같은 선택적 설정을 비롯해 각 푸시 알림 서비스에 사용할 설정을 입력합니다. 자세한 내용은 사용 중인 푸시 알림 서비스의 설명서를 참조하세요.

1. 원시 메시지 콘텐츠 입력을 마치면 **생성**을 선택합니다.

사용자에게 보내는 푸시 알림에서 템플릿을 사용하기 전에, 템플릿을 테스트하려면 해당 템플릿을 사용하는 [테스트 알림을 전송](messages-mobile.md)하면 됩니다. 이렇게 하려면 먼저 10단계를 완료하여 템플릿의 모든 변수에 기본값을 지정해야 합니다. 그러지 않으면 푸시 알림이 전송되지 않거나 올바르게 렌더링되지 않을 수 있습니다.

# SMS 템플릿 만들기
<a name="message-templates-creating-sms"></a>

*SMS 템플릿*은 모든 Amazon Pinpoint 프로젝트를 위해 보내는 SMS 문자 메시지에서 생성, 저장 및 재사용할 콘텐츠와 설정이 포함된 메시지 템플릿 유형입니다. 캠페인에서 전송하거나 제한된 대상에게 직접 또는 테스트 메시지로 보내는 문자 메시지에서 SMS 템플릿을 사용할 수 있습니다.

SMS 템플릿을 만들 때 템플릿을 기반으로 하는 문자 메시지의 본문에서 다시 사용할 설정과 콘텐츠를 지정합니다. 템플릿을 기반으로 하는 메시지를 만들 때 Amazon Pinpoint는 템플릿에서 정의한 설정과 콘텐츠로 메시지를 채웁니다.

**SMS 템플릿을 만들려면**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **템플릿 생성**을 선택합니다.

1. **채널**에서 **SMS**를 선택합니다.

1. **템플릿 세부 정보**에서 **템플릿 이름**에 템플릿의 이름을 입력합니다. 이름은 문자 또는 숫자로 시작해야 합니다. 최대 128자까지 입력할 수 있습니다. 문자는 문자, 숫자, 밑줄(\$1) 또는 하이픈(-)일 수 있습니다.

1. (선택 사항) **버전 설명**에 템플릿에 대한 간단한 설명을 입력합니다. 설명은 최대 500자까지 입력할 수 있습니다.

1. **SMS 세부 정보**에서 **메시지**에 템플릿을 사용하는 메시지 본문에 표시할 콘텐츠를 입력합니다. 메시지 본문에는 최대 1,600자를 사용할 수 있습니다.
**작은 정보**  
템플릿 본문에 맞춤형 콘텐츠를 포함할 수 있습니다. 이렇게 하려면 사용자의 이름을 저장하는 속성 등 사용자 또는 Amazon Pinpoint가 생성한 특정 속성을 참조하는 메시지 변수를 추가하세요. 메시지 변수를 사용하면 템플릿을 사용하는 메시지 수신자마다 다른 콘텐츠를 표시할 수 있습니다.  
메시지 변수를 사용하려면 **속성 파인더**에서 기존 속성의 이름을 선택합니다. Amazon Pinpoint는 속성에 대한 메시지 변수를 생성하여 클립보드에 복사합니다. 원하는 위치에 변수를 붙여넣습니다. 자세한 내용은 [메시지 템플릿에 맞춤형 콘텐츠 추가](message-templates-personalizing.md) 섹션을 참조하세요.

1. 메시지 변수를 사용하여 개인화된 콘텐츠를 템플릿에 추가한 경우 각 변수의 기본값을 지정합니다. 이렇게 하면 수신자에 해당하는 값이 없는 경우 Amazon Pinpoint가 변수를 지정한 값으로 바꿉니다. 템플릿의 각 변수에 대해 이 작업을 수행하는 것이 좋습니다.

   변수의 기본값을 지정하려면 **기본 속성 값** 섹션을 확장합니다. 그런 다음 각 변수에 사용할 기본값을 입력합니다. 기본값을 지정하지 않고 수신자에 대한 값이 없는 경우 Amazon Pinpoint는 메시지를 보내지 않습니다.

1. 템플릿의 내용 및 설정 입력을 마치면 **만들기**를 선택합니다.

사용자에게 보내는 메시지에 템플릿을 사용하기 전에 템플릿을 테스트하려면 해당 템플릿을 사용하는 [테스트 메시지를 전송](messages-sms.md)하면 됩니다. 이렇게 하려면 먼저 8단계를 완료하여 템플릿의 모든 변수에 기본값을 지정해야 합니다. 그러지 않으면 메시지가 전송되지 않거나 올바르게 렌더링되지 않을 수 있습니다.

# 음성 템플릿 만들기
<a name="message-templates-creating-voice"></a>

*음성 템플릿*은 모든 Amazon Pinpoint 프로젝트를 위해 보내는 음성 메시지에서 생성, 저장 및 재사용할 콘텐츠와 설정이 포함된 메시지 템플릿 유형입니다. 직접 메시지나 테스트 메시지로 보내는 음성 메시지에 음성 템플릿을 사용할 수 있습니다.

음성 템플릿을 생성하는 경우 템플릿을 토대로 하는 음성 메시지의 다양한 구성 요소에서 다시 사용하려는 콘텐츠와 설정을 지정합니다. 이러한 구성 요소를 *템플릿 파트*라고 하며 메시지 스크립트의 텍스트나 메시지 전송 시 사용할 음성과 같은 설정을 포함할 수 있습니다. 메시지 스크립트에는 정적 텍스트, 사용자가 정의한 맞춤형 콘텐츠(선택 사항)가 포함될 수 있습니다.

템플릿을 기반으로 하는 음성 메시지를 만들 때 Amazon Pinpoint는 템플릿에서 정의한 콘텐츠와 설정으로 메시지를 채웁니다.

**음성 템플릿을 생성하려면**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **템플릿 생성**을 선택합니다.

1. **채널**에서 **음성**을 선택합니다.

1. **템플릿 세부 정보**에서 **템플릿 이름**에 템플릿의 이름을 입력합니다. 이름은 문자 또는 숫자로 시작해야 합니다. 최대 128자까지 입력할 수 있습니다. 문자는 문자, 숫자, 밑줄(\$1) 또는 하이픈(-)일 수 있습니다.

1. (선택 사항) **버전 설명**에 템플릿에 대한 간단한 설명을 입력합니다. 설명은 최대 500자까지 입력할 수 있습니다.

1. **음성 메시지 세부 정보**에서 **메시지**에 템플릿을 사용하는 메시지의 메시지 스크립트로 사용할 텍스트를 입력합니다. 스크립트는 최대 10,000자까지 입력할 수 있으며 일반 텍스트 형식이어야 합니다.
**작은 정보**  
메시지 스크립트에 맞춤형 콘텐츠를 포함할 수 있습니다. 이렇게 하려면 사용자의 이름을 저장하는 속성 등 사용자 또는 Amazon Pinpoint가 생성한 특정 속성을 참조하는 메시지 변수를 추가하세요. 메시지 변수를 사용하면 템플릿을 사용하는 메시지 수신자마다 다른 콘텐츠를 표시할 수 있습니다.  
메시지 변수를 사용하려면 **속성 파인더**에서 기존 속성의 이름을 선택합니다. Amazon Pinpoint는 속성에 대한 메시지 변수를 생성하여 클립보드에 복사합니다. 원하는 위치에 변수를 붙여넣습니다. 자세한 내용은 [메시지 템플릿에 맞춤형 콘텐츠 추가](message-templates-personalizing.md) 섹션을 참조하세요.

1. **언어 및 리전**에서 메시지 스크립트의 텍스트가 작성되는 언어를 선택합니다. Amazon Pinpoint는 이 설정을 사용하여 스크립트의 텍스트를 음성으로 변환할 때 사용할 음소 및 기타 언어별 설정을 결정합니다.

1. **음성**에서, 수신자에게 메시지를 말할 음성을 선택합니다. 각 음성은 모국어 사용자를 통해 만들어지므로, 동일한 언어 내에서도 음성마다 차이가 있습니다. 따라서 스크립트로 각 음성을 테스트하는 것이 좋습니다.

   음성 목록은 8단계에서 선택한 언어에 따라 변경됩니다. 대부분의 경우 이 목록에는 하나 이상의 남성과 여성 목소리가 포함됩니다. 경우에 따라 한 종류의 음성만 사용할 수 있습니다. 당사는 추가 언어에 대한 지원을 지속적으로 추가하고, 지원되는 언어의 음성을 생성합니다.

1. **메시지 재생**을 선택하여 메시지를 수신자에게 전송될 때 메시지가 어떻게 들리는지 테스트합니다. 템플릿이 원하는 디자인이 될 때까지 콘텐츠과 설정을 조정합니다.

1. 메시지 변수를 사용하여 개인화된 콘텐츠를 템플릿에 추가한 경우 각 변수의 기본값을 지정합니다. 이렇게 하면 수신자에 해당하는 값이 없는 경우 Amazon Pinpoint가 변수를 지정한 값으로 바꿉니다. 템플릿의 각 변수에 대해 이 작업을 수행하는 것이 좋습니다.

   변수의 기본값을 지정하려면 **기본 속성 값** 섹션을 확장합니다. 그런 다음 각 변수에 사용할 기본값을 입력합니다. 기본값을 지정하지 않고 수신자에 대한 값이 없는 경우 Amazon Pinpoint는 메시지를 보내지 않습니다.

1. 템플릿의 내용 및 설정 입력을 마치면 **만들기**를 선택합니다.

# 메시지 템플릿에 맞춤형 콘텐츠 추가
<a name="message-templates-personalizing"></a>

템플릿을 사용하는 메시지에 동적인 맞춤형 콘텐츠를 전달하려면 메시지 템플릿에 *메시지 변수*를 추가합니다. *메시지 변수*는 사용자에 대한 정보를 저장하기 위해 사용자 또는 Amazon Pinpoint가 생성한 특정 속성을 참조하는 자리 표시자입니다. 각 속성은 일반적으로 사용자의 이름이나 거주하는 도시 같은 사용자의 특성에 해당합니다. 템플릿에 메시지 변수를 추가하면 이러한 속성을 사용하여 템플릿을 사용하는 메시지의 각 수신자에게 사용자 지정 콘텐츠를 전달할 수 있습니다.

템플릿에 메시지 변수가 포함된 경우 Amazon Pinpoint가 각 변수를 각 수신자에 대한 현재 해당 속성 값으로 대체합니다. 템플릿을 사용하는 메시지를 보낼 때마다 이 작업을 수행합니다. 즉, 메시지나 메시지 템플릿의 사용자 지정 버전을 여러 개 만들지 않고도 각 수신자에게 맞춤형 콘텐츠를 보낼 수 있습니다. 또한 수신자에 대한 최신 정보가 메시지에 포함되어 있음을 확신할 수 있습니다.

예를 들어 프로젝트가 달리기 선수용 피트니스 애플리케이션이고 각 사용자의 이름, 선호 활동, 개인 기록에 대한 속성이 포함된 경우 템플릿에 다음 텍스트 및 메시지 변수를 사용할 수 있습니다.

`Hi {{User.UserAttributes.FirstName}}, congratulations on your new {{User.UserAttributes.Activity}} record of {{User.UserAttributes.PersonalRecord}}!`

템플릿을 사용하는 메시지를 보내면 Amazon Pinpoint가 변수를 각 수신자에 대한 각 속성의 현재 값으로 바꿉니다. 다음 예제에서 보여 주는 것은 다음과 같습니다.

**예제 1**.  
`Hi Sofia, congratulations on your new half marathon record of 1:42:17!`

**예제 2**.  
`Hi Alejandro, congratulations on your new 5K record of 20:52!`

수신자에 대한 속성 값이 없는 경우 Amazon Pinpoint는 변수에 지정한 기본값으로 변수를 바꿀 수 있습니다. 예를 들어 피트니스 애플리케이션의 사용자가 선호하는 활동을 선택하지 않은 경우 `running`을 `{{User.UserAttributes.Activity}}` 변수의 기본값으로 사용할 수 있습니다. 이 경우 다음 예와 같이 Amazon Pinpoint가 변수를 대체합니다.

**예제 1**.  
`Hi Jane, congratulations on your new running record of 1:42:17!`

**예제 2**.  
`Hi John, congratulations on your new running record of 20:52!`

기본값을 지정하지 않고 수신자에 대한 값이 존재하지 않으면 해당 수신자에게 메시지를 보낼 때 Amazon Pinpoint가 변수의 모든 텍스트를 생략합니다. 예제:

`Hi Mary, congratulations on your new record of 20:52!`

템플릿에 포함하는 각 변수에 대해 기본값을 지정하는 것이 좋습니다.

## 메시지 변수 추가
<a name="message-templates-add-variables"></a>

생성하는 새 템플릿이나 기존 템플릿에 메시지 속성을 추가할 수 있습니다. 기존 템플릿에 변수를 추가하는 경우 Amazon Pinpoint에서 템플릿을 사용하고 아직 전송되지 않은 메시지(예: 나중에 보내도록 예약된 캠페인 메시지)에 변경 사항을 반드시 적용하는 것은 아닙니다. 이는 변수를 추가하는 템플릿의 버전과 템플릿을 사용하는 메시지를 구성한 방법에 따라 달라집니다. 자세한 내용은 [메시지 템플릿 버전 관리](message-templates-versioning.md) 단원을 참조하십시오.

**참고**  
인앱 메시징 템플릿은 메시지 변수 사용을 지원하지 않습니다.

**메시지 템플릿에 메시지 변수를 추가하려면**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **메시지 템플릿** 페이지에서 다음 중 하나를 수행합니다.
   + 새 템플릿을 생성하고 이 템플릿에 메시지 변수를 추가하려면 **템플릿 생성**을 선택합니다. 그런 다음 템플릿 페이지에서 템플릿 이름을 입력하고 선택적으로 템플릿에 대한 설명을 입력합니다.
   + 기존 템플릿에 메시지 변수를 추가하려면 변수를 추가할 템플릿을 선택합니다. 그런 다음 템플릿 페이지에서 **편집**을 선택합니다. **템플릿 세부 정보**에서 버전 선택기를 사용하여 시작점으로 사용할 템플릿 버전을 선택합니다. 최신 버전을 선택하면 변경 사항을 해당 템플릿 버전에 직접 저장할 수 있습니다. 아니면 변경 사항을 새 템플릿 버전으로 저장할 수 있습니다.

1. 메시지 세부 정보 섹션에서 메시지 변수를 추가할 위치를 결정합니다. 모든 유형의 템플릿의 본문에 변수를 추가할 수 있습니다. 이메일 및 푸시 알림 템플릿의 경우 메시지 제목이나 제목에 변수를 추가할 수도 있습니다.

1. **속성 찾기**에서 메시지 변수를 추가할 속성 유형의 섹션을 확장합니다. 다음 속성 유형 중에서 선택할 수 있습니다.  
**표준 속성**  
이러한 속성은 Amazon Pinpoint가 모든 프로젝트에 대해 자동으로 만드는 속성입니다. 즉, 모든 프로젝트에 대해 보내는 메시지에서 사용할 수 있습니다. 이러한 각 속성에 대한 자세한 내용은 [지원되는 속성](#message-templates-variables) 단원을 참조하십시오.  
표준 속성에 대한 변수를 추가하려면 목록에서 해당 속성을 선택합니다.  
**사용자 지정 속성**  
이러한 속성은 개별 프로젝트에 대해 선택적으로 만드는 속성입니다. 일부 프로젝트에서 이러한 속성을 사용하지 못할 수 있으므로 Amazon Pinpoint는 해당 템플릿을 사용하는 메시지의 모든 수신자에 대한 값으로 변수를 바꾸지 못할 수 있습니다. Amazon Pinpoint는 이 문제를 방지할 수 있도록 특정 프로젝트 또는 모든 프로젝트에 있는 속성을 선택할 수 있는 옵션을 제공합니다.  
사용자 지정 속성을 추가하려면  

   1. **사용자 지정 속성**을 선택한 다음 **사용자 지정 속성 로드**를 선택합니다. 나타나는 창에서 Amazon Pinpoint는 사용자가 생성한 모든 프로젝트를 나열합니다. 각 프로젝트를 선택하면 선택한 프로젝트에 공통적인 속성이 오른쪽 탐색 창에 표시됩니다. 속성이 표시되지 않으면 해당 프로젝트 간에 공통된 속성이 없는 것입니다.

   1. 다음 중 하나를 수행하세요.
      + 선택한 프로젝트에 공통적인 속성을 모두 사용하려면 **사용자 지정 속성 로드**를 선택합니다.
      + 목록에 있는 특정 속성을 사용하려면 검색 필드에 속성 이름의 일부를 입력합니다. 입력한 텍스트와 일치하는 속성이 표시됩니다. 사용하려는 속성이 표시되면 **사용자 지정 속성 로드**를 선택합니다. **속성 파인더**는 새로 추가된 사용자 지정 속성을 표시합니다.
**참고**  
서로 다른 프로젝트 세트의 공통 속성을 추가할 수 없거나 **속성 파인더**의 **사용자 지정 속성** 섹션을 수정합니다. 사용자 지정 속성을 변경해야 하는 경우 **X**를 선택하여 **속성 파인더**를 지운 다음 다시 시작합니다.

   1. **속성 찾기**에서 변수를 추가할 속성을 선택합니다.  
**추천 속성**  
이러한 속성은 추천 모델에서 맞춤형 추천을 검색하도록 Amazon Pinpoint를 구성할 때 계정에 대해 선택적으로 만드는 속성입니다. 추천 모델 사용에 대한 자세한 내용은 [기계 학습 모델](ml-models.md) 단원을 참조하십시오. 이 속성 유형에 대한 변수를 이메일 템플릿, 푸시 알림 템플릿 및 SMS 템플릿에 추가할 수 있습니다. 음성 템플릿에는 추가할 수 없습니다.  
추천 속성에 대한 변수를 추가하려면 목록에서 해당 속성을 선택합니다. **속성 파인더**에 추천 속성이 나열되지 않으면 먼저 템플릿을 추천자 모델에 연결해야 합니다.  
추천 속성을 추가하려면  

   1. **모델 연결**을 선택합니다.

   1. 템플릿을 사용하는 메시지를 보낼 때 추천을 검색할 모델을 선택합니다.

   1. **모델 연결**을 선택합니다.


1. **속성 파인더**에서 속성을 선택하면 Amazon Pinpoint가 해당 속성에 대한 메시지 변수를 만들어 클립보드에 복사합니다. 원하는 위치에 변수를 붙여넣습니다. 속성 목록이 긴 경우 검색 텍스트를 입력하여 목록 범위를 좁힙니다. 검색 필드를 지우려면 **X**를 선택합니다.

   변수를 붙여넣으면 Amazon Pinpoint는 해당 변수를 두 개의 중괄호로 묶어 연결된 속성의 이름으로 표시합니다 (예: `{{User.UserAttributes.FirstName}}`).

1. 추가할 각 메시지 변수에 대해 4\$16단계를 반복합니다.

1. 메시지 변수의 기본값을 지정하려면 **기본 속성 값** 섹션을 확장합니다. 그런 다음 변수 목록에서 변수에 사용할 기본값을 입력합니다.
**참고**  
템플릿의 각 변수에 대해 이 작업을 수행하는 것이 좋습니다. 그렇지 않으면 Amazon Pinpoint에서 템플릿을 사용하는 메시지를 보내지 못하거나 예기치 않거나 원하지 않은 방식으로 메시지가 표시될 수 있습니다.

1. 완료한 후 다음 중 하나를 수행합니다.
   + 새 템플릿에 메시지 변수를 추가한 경우 **생성**을 선택합니다.
   + 기존 템플릿에 메시지 변수를 추가한 경우 변경 사항을 새 버전의 템플릿으로 저장하려면 **새 버전으로 저장**을 선택하십시오.
   + 기존 템플릿에 메시지 변수를 추가한 경우 변경 사항을 최신 버전 템플릿에 대한 업데이트로 저장하려면 **버전 업데이트**을 선택하십시오. 이 옵션은 3단계에서 최신 버전 템플릿을 연 경우에만 사용할 수 있습니다.

## 지원되는 속성
<a name="message-templates-variables"></a>

각 프로젝트에는 표준 속성과 사용자 지정 속성이 있을 수 있습니다. 표준 속성은 Amazon Pinpoint가 모든 프로젝트에 대해 자동으로 만드는 속성입니다. 사용자 지정 속성은 사용자가 프로젝트에 대해 선택적으로 만드는 속성입니다. 사용자 지정 속성에는 세 가지 유형이 있습니다.
+ **사용자 속성** - 이러한 속성은 사용자의 이름, 성, 생년월일 등으로 사용자를 설명합니다. *사용자*는 프로젝트에서 고유한 사용자 ID를 가진 개인입니다.
+ **엔드포인트 속성** - 이러한 속성은 사용자의 특정 엔드포인트를 설명합니다. *엔드포인트*는 메시지를 전송할 수 있는 대상입니다(예: 이메일 주소, 전화번호 또는 모바일 디바이스). 각 사용자는 하나 이상의 엔드포인트와 연결할 수 있습니다. 예를 들어 이메일, SMS 및 전화로 사용자와 소통하는 경우, 사용자는 사용자의 이메일 주소, 사용자의 휴대 전화번호, 사용자의 집(유선) 전화번호에 각각 하나씩, 총 세 개의 엔드포인트에 연결할 수 있습니다.
+ **지표 속성** - 이러한 속성은 모바일 앱의 세션 수 또는 장바구니에 남아 있는 항목 수처럼 애플리케이션이 개별 엔드포인트와 관련해 Amazon Pinpoint에 보고하는 숫자 지표입니다.
+ **Pinpoint 속성** - 이러한 속성은 애플리케이션, 캠페인 또는 여정의 고유한 식별자입니다.

사용자 또는 Amazon Pinpoint가 프로젝트를 위해 만드는 사용자 지정 속성과 표준 속성 외에도, Amazon Pinpoint는 *추천 속성*을 지원합니다. *추천 속성*은 사용자 또는 엔드포인트를 위한 맞춤화된 추천을 임시로 저장하는 속성입니다. Amazon Pinpoint는 사용하도록 구성한 추천 모델에서 이러한 추천을 검색합니다. 추천 속성은 특정 프로젝트와 연결되지 않습니다. 대신 Amazon Pinpoint 계정과 연결됩니다. 추천 모델 사용에 대한 자세한 내용은 [기계 학습 모델](ml-models.md) 단원을 참조하십시오.

메시지 변수에서 표준, 사용자 지정 또는 추천 속성을 사용할 수 있습니다. 다음 표는 지원되는 각 속성의 메시지 변수에 표시되는 텍스트를 나타내고, 각 속성에 대해 설명합니다. 표에서 *custom\$1attribute*는 사용자 지정 속성에 대한 변수에 표시되는 텍스트를 나타냅니다. 이 경우 *custom\$1attribute*를 사용자 지정 속성의 이름으로 바꿉니다. 예를 들어 프로젝트에서 `FirstName`이라는 사용자 지정 사용자 속성에 사용자의 이름을 저장하고 해당 속성에 대한 변수를 추가하는 경우, 변수의 텍스트는 `{{User.UserAttributes.FirstName}}`입니다.


| 속성 | 설명 | 
| --- | --- | 
| Address | 엔드포인트로 보내는 메시지 또는 푸시 알림의 대상 주소(예: 이메일 주소, 전화 번호 또는 디바이스 토큰)입니다. | 
| Pinpoint.ApplicationId | 애플리케이션의 고유 식별자입니다. | 
| Attributes.custom\$1attribute | 엔드포인트를 설명하는 사용자 지정 엔드포인트 속성입니다. | 
| Pinpoint.CampaignId | 캠페인의 고유 식별자입니다. | 
| ChannelType | 엔드포인트에 메시지 또는 푸시 알림을 보낼 때 사용할 채널입니다. 예제:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/pinpoint/latest/userguide/message-templates-personalizing.html) | 
| CreationDate | 프로젝트에 엔드포인트가 추가된 날짜와 시간입니다([ISO 8601 형식](https://en.wikipedia.org/wiki/ISO_8601)). 예를 들어 2019년 6월 30일 오전 11시 45분(UTC)인 경우 2019-06-30T11:45:25.220Z입니다. | 
| Demographic.AppVersion | 엔드포인트와 연결된 애플리케이션의 버전 번호입니다. | 
| Demographic.Locale | [ISO 639-1 alpha-2](https://en.wikipedia.org/wiki/ISO_639-1) 코드, 밑줄(\$1), [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) 값 순의 형식으로 표시되는 엔드포인트의 로캘입니다. 예를 들어, en\$1US는 미국의 영어 로캘입니다. | 
| Demographic.Make | 엔드포인트 디바이스 제조업체(예: apple 또는 samsung)입니다. | 
| Demographic.Model | 엔드포인트 디바이스의 모델 이름 또는 번호(예: iPhone 또는 SM-G900F)입니다. | 
| Demographic.ModelVersion | 엔드포인트 디바이스의 모델 버전입니다. | 
| Demographic.Platform | 엔드포인트 디바이스의 운영 체제(예: ios 또는 android)입니다. | 
| Demographic.PlatformVersion | 엔드포인트 디바이스의 운영 체제 버전입니다. | 
| Demographic.Timezone | 엔드포인트의 시간대([tz 데이터베이스](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) 값)입니다. 예: 태평양 표준시(북미)의 경우 America/Los\$1Angeles. | 
| EffectiveDate | 엔드포인트가 마지막으로 업데이트된 날짜와 시간입니다([ISO 8601 형식](https://en.wikipedia.org/wiki/ISO_8601)). 예를 들어 2019년 8월 23일 오전 10시 54분(UTC)인 경우 2019-08-23T10:54:35.220Z입니다. | 
| EndpointId | 엔드포인트의 고유 식별자입니다. | 
| EndpointStatus | 엔드포인트에 메시지 또는 푸시 알림을 보낼 것인지 여부: 엔드포인트로 메시지를 전송하는 경우 ACTIVE, 엔드포인트로 메시지를 전송하지 않는 경우 INACTIVE. | 
| Id | 엔드포인트의 고유 식별자입니다. | 
| Pinpoint.JourneyId | 여정의 고유 식별자입니다. | 
| Location.City | 엔드포인트가 위치한 도시입니다. | 
| Location.Country | 엔드포인트가 위치한 국가 또는 리전의 2자 코드입니다([ISO 3166-1 alpha-2 형식](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). 예를 들어, 미국의 경우 US입니다. | 
| Location.Latitude | 소수점 한 자리로 반올림된 엔드포인트 위치의 위도 좌표입니다. | 
| Location.Longitude | 소수점 한 자리로 반올림된 엔드포인트 위치의 경도 좌표입니다. | 
| Location.PostalCode | 엔드포인트가 위치한 지역의 우편 번호입니다. | 
| Location.Region | 엔드포인트가 있는 리전의 이름입니다(예: 시/도). | 
| Metrics.custom\$1attribute | 애플리케이션이 엔드포인트와 관련해 Amazon Pinpoint에 보고하는 사용자 지정 숫자 지표입니다. | 
| OptOut | 사용자가 메시지 및 푸시 알림 수신을 옵트아웃했는지 여부: 사용자가 옵트아웃했고 메시지 또는 푸시 알림 수신을 원하지 않는 경우 ALL. 사용자가 옵트아웃하지 않았고 모든 메시지와 푸시 알림을 받기를 원하는 경우 NONE. | 
| RecommendationItems | 엔드포인트 또는 사용자에 대한 추천 하나를 저장하는 표준 추천 속성입니다. 이 속성에는 추천 모델에서 직접 제공하는 텍스트가 포함됩니다. | 
| RecommendationItems.[\$1] |  엔드포인트 또는 사용자에 대해 2\$15개의 정렬된 추천 목록을 저장하는 표준 추천 속성입니다. 이 속성에는 추천 모델에서 직접 제공하는 텍스트가 포함됩니다. 숫자 자리 표시자(.[\$1])는 속성에 여러 값이 포함되어 있음을 나타냅니다. 이 속성에 대한 메시지 변수는 목록의 특정 값을 참조할 수 있습니다.  | 
| Recommendations.custom\$1attribute | 엔드포인트 또는 사용자에 대한 추천 하나를 저장하는 사용자 지정 추천 속성입니다. 이 속성에는 추천 모델에서 제공하고 AWS Lambda 함수로 향상된 콘텐츠가 포함되어 있습니다. | 
| Recommendations.custom\$1attribute.[\$1] |  엔드포인트 또는 사용자에 대한 여러 추천을 저장하는 사용자 지정 추천 속성입니다. 이 속성에는 추천 모델에서 제공하고 AWS Lambda 함수에 의해 개선된 콘텐츠가 포함됩니다. 숫자 자리 표시자(.[\$1])는 속성에 여러 값이 포함되어 있음을 나타냅니다. 이 속성에 대한 메시지 변수는 특히 이러한 값 중 하나를 참조할 수 있습니다.  | 
| RequestId | 최근 엔드포인트 업데이트 요청의 고유 식별자입니다. | 
| User.UserAttributes.custom\$1attribute | 사용자를 설명하는 사용자 지정 사용자 속성입니다. | 
| User.UserId | 사용자의 고유 식별자입니다. | 

# 메시지 템플릿 헬퍼 사용
<a name="message-template-helpers"></a>

고객은 Amazon Pinpoint 템플릿을 사용하여 Handlebars.js 언어를 기반으로 재사용 가능한 메시지 템플릿을 만들 수 있습니다. 헬퍼는 특정 리전의 통화로 가격 형식을 지정하거나 시간대 기반 위치를 추가하는 등 다양한 기능을 제공합니다. 헬퍼는 값에 특정 문자열 또는 정수를 사용하거나 특정 Amazon Pinpoint 메시지 변수를 사용할 수 있습니다.

헬퍼 범주는 다음과 같으며, 다음 섹션에서 설명합니다.

## 기본 헬퍼
<a name="defaulthelpers"></a>

이 섹션에서는 Handlebars가 제공하는 **내장** 헬퍼에 대해 설명합니다. 전체 목록은 [handlebarsjs.com](https://handlebarsjs.com)의 [Built-in Helpers](https://handlebarsjs.com/guide/builtin-helpers.html)를 참조하세요. 기본 제공 헬퍼는 다음과 같습니다.
+ `each` - 목록을 반복합니다.
**참고**  
최대 목록 크기는 15개 항목입니다.
+ `if` - 문을 평가합니다.

*each*  
목록을 반복합니다. 이 헬퍼는 블록 문만 사용합니다. 선택적으로 다음을 수행할 수 있습니다.  
+ 요청에서 `@index`를 전달하여 현재 루프 인덱스를 참조할 수 있습니다.
+ `this` 헬퍼를 사용하여 반복되는 현재 요소를 참조할 수 있습니다.
+ `<li>` 태그를 사용하여 헬퍼 응답을 목록으로 반환할 수 있습니다.
**사용량**  
`{{#each value}}`  
`{{@index}}` 위치의 값은 `{{this}}`입니다.  
`{{else}}`  
조건이 false입니다.  
`{{/each}}`  
블록 문에서 `each` 앞에 파운드 기호(`#`)를 붙이고 닫는 `{{/each}}`로 끝나야 합니다.  
**예제**  
이 예제에서 `each`는 사용자가 선호하는 색상 목록을 반환하는 데 사용됩니다. `false`의 경우 `else` 문이 반환됩니다. 요청이 다음과 같은 경우:  
`{{#each User.UserAttributes.FavoriteColors}}`  
`<li>{{this}}</li>`  
`{{else}}`  
*You have no favorite colors*인 경우  
`{{/each}}` 반환  
+ *r*ed
+ *blue*
+ *yellow*
를 반환합니다(true 문인 경우).

*다음과 같은 경우*  
어떤 것이 true인지 여부를 평가하고 평가에 따라 응답을 반환합니다.  
**사용량**  
`{{#if value}}`  
값이 정의되지 않음  
`{{else}}`  
값이 정의되지 않음  
`{{/if}}`  
블록 문에서 `if` 앞에 파운드 기호(`#`)를 붙이고 닫는 `{{/if}}`로 끝나야 합니다.  
**예제**  
이 예제에서 `if` 헬퍼는 사용자의 이름이 맞는지 여부를 평가하는 데 사용됩니다. 이름을 찾으면 응답에 사용자의 이름을 전달하는 인사말이 반환됩니다. 그렇지 않으면 `else` 문은 대체 인사말을 반환합니다.  
`{{#if User.UserAttributes.FirstName.[0]}}`  
`Hello {{User.UserAttributes.FirstName.[0]}},`  
`{{else}}`  
*Hello,*  
`{{/if}}`  
는 `if` 헬퍼가 true이면 *Hello, Jane*을 반환합니다.

## 조건부 헬퍼
<a name="conditionhelpers"></a>

이 섹션에서는 **조건부** 헬퍼를 설명합니다.

조건부 헬퍼는 한 줄 또는 블록 문에서 사용할 수 있습니다. 사용하는 헬퍼 메서드에 관계없이 응답을 사용자 지정할 수 있습니다. 한 줄 및 블록 문 안에서 추가 조건부 헬퍼를 전달할 수 있습니다. 다음 조건부 헬퍼는 먼저 한 줄의 사용법을 표시한 다음 선택적 `else` 절을 사용하여 블록 문을 표시합니다. 조건부 헬퍼는 다음과 같습니다.
+ `and` - 전달된 모든 요소가 같은지 비교합니다.
+ `eq` - 두 요소가 같은지 테스트합니다.
+ `gt` - 한 요소가 다른 요소보다 큰지 테스트합니다.
+ `gte` - 한 요소가 다른 요소보다 크거나 같은지 테스트합니다.
+ `if` - 어떤 것이 true인지 평가합니다.
+ `lt` - 한 요소가 다른 요소보다 작은지 테스트합니다.
+ `lte` - 한 요소가 다른 요소보다 작거나 같은지 테스트합니다.
+ `neq` - 두 요소가 같지 않은지 여부를 테스트합니다.
+ `not` - 부울 연산의 응답을 반전합니다.
+ `or` - 인수의 요소 중 같은 것이 있는지 비교합니다.

*및*  
인수에 전달된 *모든* 요소가 같은지 비교한 다음 결과에 따라 응답을 반환합니다. 이 헬퍼는 부울 값이 아닌 경우에도 사용할 수 있습니다. 조건에 최소 두 개의 요소를 전달해야 합니다.  
**사용량**  
+ `{{and valuea valueb valuec valued yes='y' no='n'}}`

  조건에 따라 *y* *n*을 *yes*, *no* 등의 다른 값이나 반환되기 바라는 다른 문자열로 바꿀 수 있습니다.
+ `{{#and valuea valueb}}`

  조건이 true입니다.

  `{{else}}`

  조건이 false입니다.

  `{{/and}}`

  블록 문에서 `and` 앞에 파운드 기호(`#`)를 붙이고 닫는 `{{/and}}`로 끝나야 합니다.
**예제**  
이 예제에서는 `Location.City ` 및 `Location.Country` 속성에 대해 전달된 두 문자열이 모두 true인지 여부를 확인하기 위해 `and` 블록 문 내에서 `eq`가 사용됩니다. 두 조건 모두 같으면 true 문이 반환됩니다. 두 속성 중 하나가 false인 경우 `else` 문이 반환됩니다.  
`{{#and (eq Location.City "Los Angeles") (eq Location.Country "US")}}`  
*You live in Los Angeles and the US.*  
`{{else}}`  
*You don’t live in Los Angeles and the US.*  
`{{/and}}`

*eq*  
두 요소가 같은지 또는 한 요소의 값이 전달된 문자열과 같은지 테스트합니다.  
**사용량**  
+ `{{eq valuea valueb yes='y' no='n'}}`

  조건에 따라 *y* *n*을 *yes*, *no* 등의 다른 값이나 반환되기 바라는 다른 문자열로 바꿀 수 있습니다.
+ `{{#eq valuea valueb}}`

  조건이 true입니다.

  `{{else}}`

  조건이 false입니다.

  `{{/eq}}`

  블록 문에서 `eq` 앞에 파운드 기호(`#`)를 붙이고 닫는 `{{/eq}}`로 끝나야 합니다.
**예제**  
이 예제에서는 `User.UserAttributes.FavoriteColors.[0]`의 값이 *Red*인지 평가하는 데 `eq`가 사용됩니다. 응답이 `true`이면 true 문이 반환됩니다. 응답이 `false`이면 `else` 문이 반환됩니다.  
`{{#eq User.UserAttributes.FavoriteColors.[0] "red"}}`  
*Your favorite color is red.*  
`{{else}}`  
*You don't like red.*  
`{{/eq}}`

*gt*  
한 요소의 값이 다른 요소보다 큰지 테스트합니다.  
**사용량**  
+ `{{gt valuea valueb yes='y' no='n'}}`

  조건에 따라 *y* *n*을 *yes*, *no* 등의 다른 값이나 반환되기 바라는 다른 문자열로 바꿀 수 있습니다.
+ `{{#gt valuea valueb}}`

  조건이 true입니다.

  `{{else}}`

  조건이 false입니다.

  `{{/gt}}`

  블록 문에서 `gt` 앞에 파운드 기호(`#`)를 붙이고 닫는 `{{/gt}}`로 끝나야 합니다.
**예제**  
이 예제에서 헬퍼는 `User.UserAttributes.UserAge.[0]` 속성의 값을 문자열 *17*과 비교하여 사용자의 나이가 17세 이상인지 확인합니다. 응답이 `true`이면 true 문이 반환됩니다. 응답이 `false`이면 `else` 문이 반환됩니다.  
`{{#gt User.UserAttributes.UserAge.[0] "17"}}`  
*You are old enough to rent a car.*  
`{{else}}`  
*You are not old enough to rent a car.*  
`{{/gt}}`

*gte*  
한 요소의 값이 다른 요소보다 크거나 같은지 테스트합니다.  
`Usage`  
+ `{{gte valuea valueb yes='y' no='n'}}`

  조건에 따라 *y* *n*을 *yes*, *no* 등의 다른 값이나 반환되기 바라는 다른 문자열로 바꿀 수 있습니다.
+ `{{#gte valuea valueb}}`

  조건이 true입니다.

  `{{else}}`

  조건이 false입니다.

  `{{/gte}}`

  블록 문에서 `get` 앞에 파운드 기호(`#`)를 붙이고 닫는 `{{/gte}}`로 끝나야 합니다.
**예제**  
이 예제에서 헬퍼는 `User.UserAttributes.UserAge.[0]` 속성을 문자열 *18*과 비교하여 사용자의 나이가 18세 이상인지 확인합니다. 응답이 `true`이면 true 문이 반환됩니다. 응답이 `false`이면 `else` 문이 반환됩니다.  
`{{#gte User.UserAttributes.UserAge.[0] "18"}}`  
*You are old enough to rent a car.*  
`{{else}}`  
*You are not old enough to rent a car.*  
`{{/gte}}`

*다음과 같은 경우*  
어떤 것이 true인지 여부를 평가하고 평가에 따라 응답을 반환합니다.  
**사용량**  
+ `{{#if value}}`

  조건에 따라 *y* *n*을 *yes*, *no* 등의 다른 값이나 반환되기 바라는 다른 문자열로 바꿀 수 있습니다.
+ `{{#if value}}`

  조건이 true입니다.

  `{{else}}`

  조건이 false입니다.

  `{{/if}}`

  블록 문에서 `if` 앞에 파운드 기호(`#`)를 붙이고 닫는 `{{/if}}`로 끝나야 합니다.
**예제**  
이 예제에서 헬퍼는 사용자의 이름이 맞는지 여부를 평가하는 데 사용됩니다. 이름을 찾으면 응답에 사용자의 이름을 전달하는 인사말이 반환됩니다. 그렇지 않으면 else 문은 대체 인사말을 반환합니다.  
`{{#if User.UserAttributes.FirstName.[0]}}`  
*Hello* `{{User.UserAttributes.FirstName.[0]}}`*,*  
`{{else}}`  
*Hello,*  
`{{/if}}`  
헬퍼가 true이면 *Hello Jane,*을 반환합니다.

*lt*  
한 요소의 값이 다른 요소보다 작은지 테스트합니다.  
**사용량**  
+ `{{lt valuea valueb yes='y' no='n'}}`

  조건에 따라 *y* *n*을 *yes*, *no* 등의 다른 값이나 반환되기 바라는 다른 문자열로 바꿀 수 있습니다.
+ `{{#lt valuea valueb}}`

  조건이 true입니다.

  `{{else}}`

  조건이 false입니다.

  `{{/lt}}`

  블록 문에서 `lt` 앞에 파운드 기호(`#`)를 붙이고 닫는 `{{/lt}}`로 끝나야 합니다.
**예제**  
이 예제에서 헬퍼는 `User.UserAttributes.UserAge.[0]` 속성을 문자열 *18*과 비교하여 사용자의 나이가 18세 미만인지 확인합니다. 응답이 `true`이면 true 문이 반환됩니다. 응답이 `false`이면 `else` 문이 반환됩니다.  
`{{#lt User.UserAttributes.UserAge.[0] "18"}}`  
*You are not old enough to rent a car.*  
`{{else}}`  
*You are old enough to rent a car.*  
`{{/lt}}`

*lte*  
한 요소의 값이 다른 요소보다 작거나 같은지 테스트합니다.  
**사용량**  
+ `{{lte valuea valueb yes='y' no='n'}}`

  조건에 따라 *y* *n*을 *yes*, *no* 등의 다른 값이나 반환되기 바라는 다른 문자열로 바꿀 수 있습니다.
+ `{{#lte valuea valueb}}`

  조건이 true입니다.

  `{{else}}`

  조건이 false입니다.

  `{{/lte}}`

  블록 문에서 `lte` 앞에 파운드 기호(`#`)를 붙이고 닫는 `{{/lte}}`로 끝나야 합니다.
**예제**  
이 블록 문에서 헬퍼는 `User.UserAttributes.UserAge.[0]` 속성을 문자열 *17*과 비교하여 사용자의 나이가 17세 이하인지 확인합니다. 응답이 `true`이면 true 문이 반환됩니다. 응답이 `false`이면 `else` 문이 반환됩니다.  
`{{#lte User.UserAttributes.Age.[0] "17"}}`  
*You are not old enough to rent a car.*  
`{{else}}`  
*You are old enough to rent a car.*  
`{{/lte}}`

*neq*  
두 요소가 같지 *않은지* 여부를 테스트합니다.  
**사용량**  
+ `{{neq valuea valueb yes='y' no='n'}}`

  조건에 따라 *y* *n*을 *yes*, *no* 등의 다른 값이나 반환되기 바라는 다른 문자열로 바꿀 수 있습니다.
+ `{{#neq valuea valueb}}`

  조건이 true입니다.

  `{{else}}`

  조건이 false입니다.

  `{{/neq}}`

  블록 문에서 `neq` 앞에 파운드 기호(`#`)를 붙이고 닫는 `{{/neq}}`로 끝나야 합니다.
**예제**  
이 블록 문에서는 `User.UserAttributes.FavoriteColors.[0]` 속성이 문자열 `Red`와 비교하여 됩니다. 응답이 `true`이면 true 문이 반환됩니다. 응답이 `false`이면 `else` 문이 반환됩니다.  
`{{#neq User.UserAttributes.Favorite.Colors.[0] "red"}}`  
*You do not like red.*  
`{{else}}`  
*You like red.*  
`{{/neq}}`

*not*  
부울 연산의 응답을 반전시켜 `not`이 긍정적 비교인 경우 `true` 문이 반환됩니다. 응답이 false이면 else 문이 반환됩니다.  
**사용량**  
+ `{{not value yes='y' no='n'}}`

  조건에 따라 *y* *n*을 *yes*, *no* 등의 다른 값이나 반환되기 바라는 다른 문자열로 바꿀 수 있습니다.
+ `{{#not value}}`

  조건이 true입니다.

  `{{else}}`

  조건이 false입니다.

  `{{/not}}`

  블록 문에서 `not` 앞에 파운드 기호(`#`)를 붙이고 닫는 `{{/not}}`로 끝나야 합니다.
**예제**  
이 블록 문에서는 `eq` 헬퍼를 사용하여 `User.UerAttributes.FavoriteColors.[0]` 속성을 *red* 문자열과 비교하여 확인합니다. 그러면 `not` 헬퍼는 `eq` 헬퍼의 정반대를 반환합니다. 응답이 *red*가 아닌 다른 색상을 반환하면 `true` 문이 반환됩니다. 응답이 *red*를 반환하면 `else` 문이 반환되어 false 문을 나타냅니다.  
`{{#not (eq User.UserAttributes.Favorite.Colors.[0] "red")}}`  
*You do not like red.*  
`{{else}}`  
*You like red.*  
`{{/not}}`  
**예제**  
이 예제에서   
`{{not (eq User.UserAttributes.FavoriteColors.[0] "red")}}`  
는 `User.UserAttributes.FavoriteColors.[0]`가 *red*인 경우 false를 반환합니다.

*또는*  
인수의 요소 중 *어느 것이든* 같은 것이 있는지 여부를 비교한 다음 결과에 따라 응답을 반환합니다. 이 헬퍼는 부울 값이 아닌 경우에도 사용할 수 있습니다.  
**사용량**  
+ `{{or valuea valueb valuec valued yes='y' no='n'}}`

  조건에 따라 *y* *n*을 *yes*, *no* 등의 다른 값이나 반환되기 바라는 다른 문자열로 바꿀 수 있습니다. 조건에 최소 두 개의 요소를 전달해야 합니다.
+ `{{#or valuea valueb}}`

  조건이 true입니다.

  `{{else}}`

  조건이 false입니다.

  `{{/or}}`

  블록 문에서 `or` 앞에 파운드 기호(`#`)를 붙이고 닫는 `{{/or}}`로 끝나야 합니다.
**예제**  
이 `or` 블록 문에서는 `eq` 헬퍼를 사용하여 `Location.City` 속성에 대한 두 문자열을 추가로 비교합니다. 두 속성 중 하나가 `true`인 경우 true 문이 반환됩니다. 응답 하나 이상이 `false`이면 `else` 문이 반환됩니다.  
`{{#or (eq Location.City "Los Angeles") (eq Location.City "Seattle")}}`  
*You live on the West Coast of the United States.*  
`{{else}}`  
*You do not live on the West Coast of the United States.*  
`{{/or}}`

## 문자열 헬퍼
<a name="stringhelpers"></a>

이 섹션에서는 다음과 같은 **문자열 **헬퍼를 설명합니다.
+ `abbreviate` - 값을 잘라냅니다.
+ `capitalize` - 공백 사이의 각 단어를 대문자로 표시합니다.
+ `capitalizeFirst` - 값의 첫 문자를 대문자로 표시합니다.
+ `center` - 값을 가운데에 맞춥니다.
+ `cut` - 값을 자릅니다.
+ `dateFormat` - 날짜 스타일을 설정합니다.
+ `inflect` - 개수를 기준으로 단수 또는 복수 문자열을 반환합니다.
+ `join` - 배열, 반복자 또는 반복 가능 객체를 조인합니다.
+ `ljust` - 값을 왼쪽 여백에 맞춥니다.
+ `lower` - 값을 소문자로 변환합니다.
+ `now` - 현재 날짜를 인쇄합니다.
+ `ordinalize` - 숫자 값을 서수화합니다.
+ `replace` - 한 문자열을 다른 문자열로 바꿉니다.
+ `rjust` - 값을 오른쪽 여백에 맞춥니다.
+ `slugify` - 값을 소문자로 변환하고 단어가 아닌 문자를 제거하고, 공백을 하이픈으로 변환하고, 후행 공백을 제거합니다.
+ `stripTags` - 값에서 [X]HTML 태그를 제거합니다.
+ `substring` - 새 문자열을 전달된 값의 하위 문자열로 반환합니다.
+ `upper` - 전달된 값을 대문자로 변환합니다.
+ `yesno` - true, false, no를 Yes, No, Maybe로 바꿉니다.

*abbreviate*  
값이 지정된 수를 초과하면 값을 잘라냅니다. 공백은 길이 수에 포함됩니다. 응답에 잘린 값을 나타내는 줄임표가 표시됩니다. 줄임표는 응답의 잘린 값에 포함됩니다. 이 유형의 헬퍼는 테이블이 크고 공간이 최소일 경우 유용합니다. 셀의 값을 잘라내면 테이블이 좀 더 균일하게 보입니다.  
**사용량**  
 `{{abbreviate value X}}`, *X*를 유지할 문자 수를 나타내는 숫자 값으로 바꿉니다. 음수는 지원되지 않습니다.  
**예제**  
이 예제에서 `abbreviate`는 `User.UserAttributes.LastName.[0]`을 6자로 자르는 데 사용됩니다. 응답에는 줄임표가 포함되며, 줄임표의 점은 총 6자에 포함됩니다.  
`{{abbreviate User.UserAttributes.LastName.[0] 6}}`는  
*Alejandro*가 `[0]`의 값인 경우 *Ale...*를 반환합니다.

*capitalize*  
공백 사이의 각 단어를 대문자로 표시합니다.  
**사용량**  
 `{{capitalize value}}`  
**예제**  
이 예제에서는 `Attributes.description.[0]` 항목의 각 단어에 첫 문자 대문자화가 적용됩니다.  
`{{capitalize Attributes.description.[0]}}`  
`Attributes.description.[0]`은   
 `Attributes.description.[0]`의 값이 *my first post*인 경우 *My First Post*를 반환합니다.

*capitalizeFirst*  
값의 첫 문자를 대문자로 표시합니다.  
**사용량**  
`{{capitalizeFirst value}}`  
**예제**  
이 예제에서는 `Attributes.description.[0]` 항목 첫 번째 단어의 첫 문자에 대문자화가 적용됩니다.  
`{{capitalizeFirst Attributes.description.[0]}}` 반환  
 `Attributes.description.[0]`의 값이 *my first post*인 경우 *My first post*를 반환합니다.  
**예제**

*center*  
지정된 너비의 필드에 있는 값을 지정된 숫자만큼 가운데에 맞춥니다. 선택적으로 패딩에 표시할 문자를 전달하거나 필드를 비워 둘 수 있습니다. 문자가 전달되지 않으면 공백이 사용됩니다.  
**사용량**  
 `{{center value size=X [pad=" "}}`, *X*를 숫자 값으로 바꿉니다.  
`pad`를 비워 두면 응답에서 공백이 패딩으로 사용됩니다. 문자를 전달하면 해당 문자가 패딩의 각 공백에 표시됩니다. 음수는 지원되지 않습니다.  
**예제**  
이 예제에서는 `Location.City `의 값이 크기 *19*로 가운데 맞춰집니다.  
`{{center Location.City size=19}}` 반환   
`Location.City`가 *Los Angeles*인 경우 *"    Los Angeles    "*를 반환합니다. 예제 출력에 표시된 따옴표는 강조를 위한 것입니다.

*cut*  
문자열에서 지정된 값을 제거합니다.  
**사용량**  
 `{{cut value [" "]}}`, 따옴표 파라미터 내의 공백을 잘라낼 값으로 바꿉니다. 파라미터 값이 전달되지 않으면 공백이 사용됩니다.  
**예제**  
이 예제는 `Location.City` 속성에서 문자 *e*를 제거합니다.  
`{{cut Location.City "e"}}` 반환  
`[Location.City`가 *Los Angeles*인 경우 *Los Angls*를 반환합니다.

*dateFormat*  
모든 응답에서 날짜의 기본 날짜 스타일을 설정합니다. 시간대 ID 목록은 [https://en.wikipedia.org/wiki/List_of_tz_database_time_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)를 참조하세요.  
**사용량**  
`{{dateFormat date [inputFormat="format1"] [outputFormat="format2"] [tz=timeZoneId] [locale=localeID]}}`  
`format` 파라미터는 다음 중 하나여야 합니다.  
+ "`full`": 전체 날짜 형식. 예: *Tuesday, September 19, 2020*
+ "`long`": 긴 날짜 형식. 예: *September 19, 2020*
+ "`medium`": 중간 날짜 형식. 예: *Sept 19, 2020*
+ "`short`": 짧은 날짜 형식. 예: *9/19/20*
+ "`pattern`": 사용자 지정 날짜 패턴 형식을 사용합니다. 날짜 패턴에 대한 자세한 내용은 [https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)을 참조하세요.
"`locale`": 지정된 로케일에 기반한 날짜 형식을 사용합니다. 로케일에 대한 자세한 내용은 [https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-)을 참조하세요.  
형식이 전달되지 않은 경우 기본적으로 `medium`이 사용됩니다.  
**예제**  
이 예제에서는 `User.UserAttributes.StartDate.[0]`의 `[0]` 항목이 **09/19/2020**이고 *America/Los\$1Angeles* 시간대를 기반으로 한 `full` 날짜 형식을 사용하여 사용자에게 메시지를 보냅니다.  
`We can meet with you any time on ``{{dateFormat User.UserAttributes.StartDate.[0] inputFormat="MM/dd/yyyy" outputFormat="full" tz=America/Los_Angeles}}.` 반환  
*We can meet with you any time on Tuesday, September 19, 2020.*

*inflect*  
개수 값을 기준으로 단수 또는 복수 문자열을 반환합니다.  
**사용량**  
 `{{inflect count singular plural [includeCount=false]}}`  
+ 인수에 전달하려는 문자열의 단수 및 복수 형식을 입력합니다.
+ `includeCount`를 `false`로 설정하면 응답에 개수가 반환되지 않습니다. `true`로 설정하면 응답에 `count`가 포함됩니다.
**예제**  
다음 예제는 `includeCount`가 있을 때와 없을 때의 사과 구매의 굴절을 보여 줍니다.  
`Thank you for your purchase of {{inflect 3 apple apples includeCount=false}}.`는 다음을 반환합니다.  
*Thank you for your purchase of apples.*  
`includeCount`가 `true`로 설정된 경우 응답은 다음과 같습니다.  
*Thank you for your purchase of 3 apples.*

*join*  
배열, 반복자 또는 반복 가능 객체를 조인합니다. 응답은 목록의 각 값이 `join`에서 전달한 문자로 연결된 목록을 반환합니다. 예를 들어 쉼표(`,`)를 사용하여 값을 구분할 수 있습니다. 이 헬퍼의 값은 속성 위치 인덱스가 없는 목록이어야 합니다. 예를 들어 `Attributes.custom_attribute`일 수 있습니다.  
**사용량**  
`{{join value " // " [prefix=""] [suffix=""]}}`  
**예제**  
이 예제에서는 쉼표와 공백(`", "`)으로 구분된 색상 목록이 반환됩니다.  
`{{join Attributes.favorite_colors ", "}}` 반환   
`Attributes.favorite_colors`가 *blue,red,green* 목록인 경우 *blue, red, green*을 반환합니다.

*ljust*  
값을 왼쪽 여백에 정렬하고 오른쪽에 공백을 추가하여 값의 길이가 숫자와 일치하도록 합니다. 음수는 지원되지 않습니다.  
선택적으로 `pad`를 표시할 문자를 전달하거나 필드를 비워 둘 수 있습니다. `pad` 값을 비워 두면 기본값은 공백입니다.  
**사용량**  
`{{ljust value size=X [pad=" "]}}`, 여기서 *X*는 공백을 포함한 값의 전체 길이입니다.  
**예제**  
이 예제에서는 왼쪽 자리 맞추기 값 *15*가 Location.City에 적용됩니다.  
`{{ljust Location.City size=15}}` 반환  
`Location.City`의 값이 *Los Angeles*인 경우 *"Los Angeles    "*를 반환합니다. 예제 출력에 표시된 따옴표는 강조를 위한 것입니다.

*lower*  
값을 모두 소문자로 변환합니다.  
**사용량**  
`{{lower value}}`  
**예제**  
이 예제에서는 `User.UserAttributes.LastName.[0]`의 `[0]` 항목이 소문자로 변경됩니다.  
`{{lower User.UserAttributes.LastName.[0]}}` 반환  
*Santos*가 `[0]`의 값인 경우 *santos*를 반환합니다.

*지금*  
전달된 시간대 ID를 기반으로 현재 날짜를 출력합니다. 시간대 ID 목록은 [https://en.wikipedia.org/wiki/List_of_tz_database_time_zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)를 참조하세요.  
**사용량**  
`{{now [format="format"] [tz=timeZoneId] [locale=localeID]}}`  
`format` 파라미터는 다음 중 하나여야 합니다.  
+ "`full`": 전체 날짜 형식. 예: *Tuesday, September 19, 2020*
+ "`long`": 긴 날짜 형식. 예: *September 19, 2020*
+ "`medium`": 중간 날짜 형식. 예: Sept 19, 2020
+ "`short`": 짧은 날짜 형식. 예: 9/19/20
+ "`pattern`": 날짜 패턴. 날짜 패턴에 대한 자세한 내용은 [https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html)을 참조하세요.
"`locale`": 지정된 로케일에 기반한 날짜 형식을 사용합니다. 로케일에 대한 자세한 내용은 [https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-](https://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/LocaleUtils.html#toLocale-java.lang.String-)을 참조하세요.  
형식이 전달되지 않은 경우 기본적으로 `medium`이 사용됩니다.  
**예제**  
이 예제에서는 로스앤젤레스의 현재 날짜가 `medium` 형식으로 반환됩니다.  
`{{now "medium" tz=America/Los_Angeles}}` 반환   
*Sept 19, 2020*을 반환합니다.

*ordinalize*  
인수에 전달된 숫자 값을 서수화합니다. 예를 들어 *1*은 *1st*로, *2*는 *2nd*로 서수화됩니다. 숫자 값만 지원됩니다.  
**사용량**  
`{{ordinalize [number]}} `  
**예제**  
이 예제에서는 `User.UserAttributes.UserAge`의 `[0]` 항목이 서수화되어 메시지와 함께 반환됩니다.  
`Congratulations on your {{ordinalize User.UserAttributes.UserAge.[0]}} birthday!`는 *22*를 *22nd*로 서수화하여 반환합니다.  
*Congratulations on your 22nd birthday\$1*

*대체*  
한 문자열을 다른 문자열로 바꿉니다. 문자열 또는 숫자 값은 리터럴이어야 합니다. 와일드카드 문자는 지원되지 않습니다.  
**사용량**  
`{{replace stringToReplace replacementValue}}`  
**예제**  
이 예제에서는 밑줄(\$1)이 공백을 대체합니다.  
`{{replace Location.City " " "_"}}` 반환  
`Location.City `가 *Los Angeles*인 경우 *Los\$1Angeles*를 반환합니다.

*rjust*  
값을 오른쪽 여백에 정렬하고 왼쪽에 공백을 추가하여 값의 길이가 숫자와 일치하도록 합니다. 음수는 지원되지 않습니다.  
선택적으로 `pad`를 표시할 문자를 전달하거나 필드를 비워 둘 수 있습니다. `pad` 값을 비워 두면 기본값은 공백입니다.  
**사용량**  
`{{rjust value size=X [pad=" "]}}`, 여기서 *X*는 공백을 포함한 값의 전체 길이입니다.  
**예제**  
이 예제에서는 오른쪽 자리 맞추기 값 *15*가 `Location.City` 속성에 적용됩니다.  
`{{rjust Location.City size=15}}` 반환  
`Location.City`가 *Los Angeles*인 경우 *"    Los Angeles"*를 반환합니다. 출력에 표시된 따옴표는 강조를 위한 것입니다.

*slugify*  
전달된 값을 소문자로 변환하고, 단어가 아닌 문자(영숫자 및 밑줄)를 제거하고, 공백을 하이픈으로 변환하고, 선행 또는 후행 공백을 제거합니다.  
**사용량**  
`{{slugify value}}`  
**예제**  
이 예제에서는 `Location.City` 속성에 대해 slugify가 수행됩니다.  
`{{slugify Location.City}}` 반환  
`Location.City`가 *Los Angeles*인 경우 *los-angeles*를 반환합니다.

*stripTags*  
값에서 [X]HTML 태그를 제거합니다.  
**사용량**  
 `{{stripTags value}}`  
**예제**  
이 예제에서는 User.UserAttributes.interest.[0]의 HTML 태그가 제거됩니다.  
`{{stripTags User.UserAttributes.interests.[0]}}` 반환  
`User.UserAttributes.interests.[0]`가 `<h1>Art</h1>`인 경우 *Art*를 반환합니다.

*substring*  
새 문자열을 전달된 값의 하위 문자열로 반환합니다. 길이와 위치는 `startOffset` 및 `endOffset` 파라미터에 의해 결정되며, 정수여야 합니다. 음수는 지원되지 않습니다. `endOffset`이 전달되지 않으면 하위 문자열은 문자열의 원래 끝 값을 사용합니다.  
**사용량**  
`{{substring value startOffset [endOffset]}}`  
**예제**  
이 예제에서는 offset 4와 endOffset 9가 Location.City 속성에 적용됩니다.  
`{{substring Location.City 4 9}} `는  
`Location.City`의 값이 *Los Angeles*인 경우 `Angel`을 반환합니다.

*upper*  
전달된 값을 대문자로 변환합니다.  
**사용량**  
`{{upper value}}`  
**예제**  
이 예제에서는 `User.UserAttributes.LastName` 속성의 `[0] ` 항목이 모두 대문자로 변환됩니다.  
`{{upper User.UserAttributes.LastName.[0]}}`는  
`User.UserAttributes.LastName.[0]` 값이 *Roe*인 경우 *ROE*를 반환합니다.

*yesno*  
`true`, `false`, `NULL`을 `Yes`, `No`, `Maybe`로 바꿉니다.  
**사용량**  
`{{yesno value [yes="yes"] [no="no"] maybe=["maybe"]}}`  
**예제**  
이 예제에서 `IsUserSubscribed` 속성은 사용자가 특정 목록을 구독하는지 여부를 반환합니다.  
`{{yesno Attributes.IsUserSubscribed}}` 반환   
`Attributes.IsUserSubscribed`가 *true*인 경우 *yes*를 반환합니다.

## 수학 및 인코딩 헬퍼
<a name="mathhelpers"></a>

이 섹션에서는 **수학 및 인코딩** 헬퍼를 설명합니다.
+ `add` - 두 숫자의 합을 반환합니다.
+ `ceiling` - 정수를 수학적 천장으로 올림합니다.
+ `decode64` - Base64로 인코딩된 값을 문자열로 디코딩합니다.
+ `divide` - 두 숫자의 몫을 반환합니다.
+ `encode64` - Base64를 사용하여 문자열을 인코딩합니다.
+ `floor` - 정수를 수학적 바닥으로 내림합니다.
+ `md5` - MD5 알고리즘을 사용하여 전달된 문자열을 해시합니다.
+ `modulo` – 부동 소수점을 사용하여 두 숫자의 나머지를 반환합니다.
+ `multiply` - 두 숫자의 곱을 반환합니다.
+ `round` - 십진수를 가장 가까운 정수로 올림(내림)합니다.
+ `sha256` - SHA-256을 사용하여 전달된 문자열을 해시합니다.
+ `sha512` - SHA-512를 사용하여 전달된 문자열을 해시합니다.
+ `subtract` - 두 숫자의 차를 반환합니다.
+ `uuid` - 128비트 형식의 UUID를 무작위로 생성합니다.

*추가*  
두 숫자의 합을 부동 소수점과 함께 반환합니다.  
**사용량**  
`{{add arg1 arg2}}`  
**예제**  
`{{add 5 2.3}} `는  
*7.3*

*ceiling*  
정수를 수학적 천장, 즉 전달된 값에 가장 가까운 가장 큰 정수로 올림합니다.  
**사용량**  
`{{ceiling value}}`  
**예제**  
`{{ceiling 5.23}}` 반환  
*6*

*decode64*  
Base64로 인코딩된 값을 문자열로 디코딩합니다.  
**사용량**  
`{{decode64 "string"}}`  
**예제**  
`{{decode64 "SGVsbG8gd29ybGQ="}}` 반환  
*Hello World*

*divide*  
부동 소수점을 포함한 두 숫자의 몫을 반환합니다.  
**사용량**  
 `{{divide arg1 arg2}}`  
**예제**  
`{{divide 5 2.3}}` 반환  
*2.17391304*

*encode64*  
Base64를 사용하여 인수에 전달된 문자열을 인코딩합니다.  
**사용량**  
`{{encode64 "string"}}`  
**예제**  
`{{encode64 "Hello World"}}`  
*SGVsbG8gd29ybGQ=*

*floor*  
정수를 수학적 바닥, 즉 전달된 값에 가장 가까운 가장 낮은 정수로 내림합니다.  
**사용량**  
`{{floor value}}`  
**예제**  
`{{floor 5.23}}` 반환  
*5*

*md5*  
MD5 알고리즘을 사용하여 전달된 문자열을 해시합니다.  
**사용량**  
`{{md5 "string"}}`  
**예제**  
`{{md5 "Hello World"}}`  
*3e25960a79dbc69b674cd4ec67a72c62*

*모듈로*  
부동 소수점을 사용하여 두 숫자의 나머지를 반환합니다.  
**사용량**  
`{{modulo arg1 arg2}}`  
**예제**  
`{{modulo 7 2}}` 반환  
*1*

*multiply*  
두 숫자의 곱을 부동 소수점과 함께 반환합니다.  
**사용량**  
`{{multiply arg1 arg2}}`  
**예제**  
`{{multiply 5 2.3}}` 반환  
*11.5*

*round*  
소수 자리를 가장 가까운 정수로 올림 또는 내림합니다.  
**사용량**  
`{{round value}}`  
**예제**  
`You spent an average of {{round 19.21}} minutes on our website each day.`는 다음을 반환합니다.  
*You spent an average of 19 minutes on our website each day.*

*sha256*  
SHA-256 암호화 보안을 사용하여 전달된 문자열을 해시합니다.  
**사용량**  
`{{sha256 "string"}}`  
**예제**  
`{{sha256 "Hello World"}}` 반환  
*a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e*를 반환합니다.

*sha512*  
SHA-512 암호화 보안을 사용하여 전달된 문자열을 해시합니다.  
**사용량**  
`{{sha512 "string"}}`  
**예제**  
`{{sha512 "Hello World"}}` 반환  
*2c74fd17edafd80e8447b0d46741ee243b7eb74dd2149a0ab1b9246fb30382f27e853d8585719e0e67cbda0daa8f51671064615d645ae27acb15bfb1447f459b*를 반환합니다.

*subtract*  
두 숫자의 차를 부동 소수점과 함께 반환합니다.  
**사용량**  
`{{subtract arg1 arg2}}`  
**예제**  
`{{subtract 5 2.3}} ` 반환  
*2.7*

*uuid*  
표준 128비트 형식의 UUID를 무작위로 생성합니다. 인수에 값을 전달할 필요는 없습니다.  
**사용량**  
`{{uuid}}`  
**예제**  
`{{uuid}} ` 반환  
**95f36680-152c-4052-99ec-cc3cdf7ca594**를 반환합니다.

## 인라인 부분
<a name="inlinepartials"></a>

인라인 부분은 엄밀히 말해 헬퍼는 아니지만 반복되는 문자열을 포함하는 템플릿을 단순화하여 더 쉽게 재사용할 수 있도록 하는 Handlbars 방식입니다. 자세한 내용은 [handlebarsjs.com](https://handlebarsjs.com)에서 [Inline partials](https://handlebarsjs.com/guide/partials.html#inline-partials)를 참조하세요.

**사용량**

`{{#* inline "inlineName"}}Content to reuse{{/inline}}`

인라인 부분의 내용을 다른 곳에서 참조하려면 다음을 사용하세요.

` {{> inlineName}}`

**예제**

다음 예제는 템플릿의 첫 부분에 다음 코드를 추가하여 수신자의 이름 및 사용 가능한 경우 성이 포함된 인라인 부분을 생성합니다.

`{{#* inline "fullName"}}`

`{{User.UserAttributes.FirstName.[0]}} {{#if User.UserAttributes.LastName.[0]}} {{User.UserAttributes.LastName.[0]}} {{/if}}`

`{{/inline}}`

`fullName` 부분을 생성한 후 예(`{{> fullName}}`)와 같이 부분의 이름 앞에 `>`(보다 큼) 기호와 공백을 넣어 템플릿의 어느 곳에나 포함할 수 있습니다.

*` Hello {{> fullName}}`*

true이면 사용자의 이름과 성을 반환합니다(예: *Hello Jane Doe*). 그렇지 않고 성을 찾을 수 없는 경우 *Hello Jane*이 반환됩니다.

Handlebars에는 여기 설명되어 있는 기능 외의 추가 기능이 포함되어 있습니다. 자세한 내용은 [handlebarsjs.com](https://handlebarsjs.com/)을 참조하세요.

## 메시지 템플릿 헬퍼와 함께 변수 사용
<a name="template-helpers-variables"></a>

Amazon Pinpoint 사용자 지정 속성(예: `User.UserAttributes.LastName`)은 단일 항목이든 여러 항목이든 상관없이 목록으로 저장됩니다. 문자열이 필요한 헬퍼에 목록을 전달할 때는 속성 이름과 함께 속성 인덱스 값을 지정해야 합니다. 이 속성 인덱스 값은 속성 목록에 있는 값의 위치를 나타냅니다. `.[0]`은 목록의 첫 번째 항목, `.[1]`은 두 번째 항목, `.[2]`는 세 번째 항목과 같은 식입니다. 예를 들어 `upper` 헬퍼를 사용하여 `User.UserAttributes.LastName`의 첫 번째(`[0]`)항목을 모두 대문자로 변환한다고 가정해 보겠습니다. 헬퍼 사용법은 `{{upper value}}`이고 속성 형식은 `User.UserAttributes.LastName`입니다. 다음과 같이 *value*를 속성 이름 및 속성 인덱스 값 `.[0]`으로 바꿉니다. `{{upper User.UserAttributes.LastName.[0]}}` 그러면 응답은 목록에서 모두 대문자로 형식 지정된 `[0]` 항목을 반환합니다. 예를 들어 `[0]`의 값이 *Santos*인 경우 응답은 *SANTOS*를 반환합니다.

Amazon Pinpoint 사용자 지정 속성 이름은 공백을 지원합니다. `"Last Name"`이라는 사용자 지정 속성을 사용하려면 속성 형식을 `User.UserAttributes.[Last Name]`으로 지정해야 합니다. 속성 인덱스 목록의 첫 번째 항목에 액세스하려면 형식이 `User.UserAttributes.[Last Name].[0]`이어야 합니다.

사용자 지정 속성 이름은 최대 50자를 포함할 수 있습니다. 속성 값은 최대 100자를 포함할 수 있습니다. 사용자 지정 속성의 이름을 정의할 때는 번호 기호(\$1), 콜론(:), 물음표(?), 백슬래시(\$1), 슬래시(/) 문자를 사용하지 마세요. Amazon Pinpoint 콘솔은 이러한 문자가 포함된 속성 이름을 표시할 수 없습니다. 이 제한은 속성 값에는 적용되지 않습니다.

## 중첩된 헬퍼 사용
<a name="template-helpers-nesting"></a>

 여러 메시지 템플릿 헬퍼를 서로 중첩할 수 있습니다. 다음 예제는 두 헬퍼의 형식을 지정하는 방법을 보여 줍니다. `{{ first helper (second helper)}}` 두 번째 헬퍼가 먼저 처리된 다음 첫 번째 헬퍼가 처리됩니다. 항상 첫 번째 헬퍼가 출력을 결정한다는 점을 기억하세요. 후속 헬퍼는 다음과 같이 이전 헬퍼 내에 중첩되어야 합니다. `{{ first helper (second helper (third helper) )}}` 

다음 예제는 두 개의 헬퍼를 중첩하여 **JANE**을 **Jane**로 변경하는 방법을 보여 줍니다. `{{capitalizeFirst (lower "JANE")}}`. `lower`가 먼저 **JANE**을 **jane**으로 변환합니다. 그런 다음 `capitalizeFirst`가 **jane**을 **Jane**으로 변환합니다.

# 메시지 템플릿 관리
<a name="message-templates-managing"></a>

Amazon Pinpoint 콘솔의 **메시지 템플릿** 페이지에서는 현재 AWS 리전의 Amazon Pinpoint 계정에 대한 모든 메시지 템플릿을 생성, 확인 및 관리할 수 있는 단일 위치를 제공합니다. 이 페이지를 사용하여 메시지 템플릿을 단일 컬렉션으로 관리할 수 있습니다. 이를 통해 일관된 메시지를 디자인하고 콘텐츠를 보다 쉽고 효과적으로 재사용할 수 있습니다. 이 페이지에서는 템플릿 보기 및 편집, 템플릿 복사, 삭제 및 생성과 같은 관리 작업을 수행할 수 있습니다.

**Topics**
+ [메시지 템플릿 컬렉션 조회](message-templates-managing-view-all.md)
+ [메시지 템플릿 열기](message-templates-managing-open.md)
+ [메시지 템플릿 편집](message-templates-managing-edit.md)
+ [메시지 템플릿 복사](message-templates-managing-copy.md)
+ [메시지 템플릿 삭제](message-templates-managing-delete.md)
+ [템플릿에 태그 추가](message-templates-managing-add-tag.md)
+ [템플릿에서 태그 제거](message-templates-managing-remove-tag.md)

메시지 템플릿 만들기에 대한 자세한 내용은 만들려는 템플릿 유형에 따라 [이메일 템플릿 만들기](message-templates-creating-email.md), [푸시 알림 템플릿 생성](message-templates-creating-push.md), [SMS 템플릿 만들기](message-templates-creating-sms.md) 또는 [음성 템플릿 만들기](message-templates-creating-voice.md) 단원을 참조하십시오.

템플릿 버전 보기 및 관리에 대한 자세한 내용은 [메시지 템플릿 버전 관리](message-templates-versioning.md) 단원을 참조하십시오.

# 메시지 템플릿 컬렉션 조회
<a name="message-templates-managing-view-all"></a>

**메시지 템플릿** 페이지에는 현재 AWS 리전에 있는 Amazon Pinpoint 계정의 모든 메시지 템플릿 목록이 표시됩니다. 목록을 찾아보거나 특정 템플릿을 빠르게 찾으려면 목록을 정렬 및 필터링하고, 표시할 열을 선택하고, 목록에 대한 다른 표시 설정을 변경할 수 있습니다.

**메시지 템플릿 컬렉션 조회**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다. **메시지 템플릿** 페이지가 열리고 컬렉션의 템플릿 수와 해당 템플릿 목록이 표시됩니다.

1. 목록을 사용자 정의하거나 특정 템플릿을 빠르게 찾으려면 다음 옵션 중 하나를 선택합니다.
   + 특정 값 유형별로 목록을 정렬하려면 해당 값의 열 머리글을 선택합니다. 정렬 순서를 오름차순에서 내림차순으로 또는 그 반대로 변경하려면 열 머리글을 다시 선택합니다.
   + 특정 유형의 템플릿만 표시하는 필터를 적용하려면 페이지 상단의 채널 선택기를 사용하여 채널을 선택합니다. 필터를 제거하려면 채널 선택기에서 **모든 메시지 채널**을 선택합니다.
   + 이름에 특정 텍스트가 포함된 템플릿만 표시하는 필터를 적용하려면 목록 위의 **검색** 상자에 텍스트를 입력합니다. 필터를 제거하려면 **검색** 상자에서 **X**를 선택합니다.
   + 목록에 표시되는 템플릿 수를 변경하려면 페이지 상단의 설정 아이콘을 선택합니다. 그런 다음 **페이지 크기**에서 표시할 템플릿 수를 선택한 다음 **변경 사항 저장**을 선택합니다.
   + 목록에서 열을 추가하거나 제거하려면 페이지 상단의 설정 아이콘을 선택합니다. 그런 다음 **표시되는 열 선택**에서 각 열을 표시하거나 숨긴 다음 **변경 내용 저장**을 선택합니다.

# 메시지 템플릿 열기
<a name="message-templates-managing-open"></a>

**메시지 템플릿** 페이지를 사용하면 특정 메시지 템플릿을 빠르게 찾아서 열고 템플릿의 내용과 템플릿에 대한 정보를 볼 수 있습니다. 예를 들어 템플릿의 현재 버전과 이전 버전을 보고 템플릿이 마지막으로 업데이트된 시기를 확인할 수 있습니다. 템플릿을 연 후 [템플릿을 편집](message-templates-managing-edit.md)할 수도 있습니다.

**메시지 템플릿을 열려면 다음과 같이 하십시오.**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **메시지 템플릿** 페이지에서 열려는 템플릿을 선택합니다. 템플릿 페이지가 열리고 템플릿에 대한 정보가 표시됩니다. 활성 버전 템플릿의 내용도 표시됩니다.

1. 다른 버전의 템플릿을 보려면 **템플릿 세부 정보**의 버전 선택기를 사용하여 보려는 버전을 선택하십시오.

# 메시지 템플릿 편집
<a name="message-templates-managing-edit"></a>

두 가지 방법으로 편집할 메시지 템플릿을 열 수 있습니다. 즉, 템플릿을 사용하는 메시지를 제작하는 동안 **메시지 템플릿** 페이지를 사용하는 것입니다. 이 항목에서는 **메시지** 템플릿 페이지를 사용하여 템플릿을 열고 편집하는 방법에 대해 설명합니다.

템플릿을 편집하는 경우 Amazon Pinpoint에서 템플릿을 사용하고 아직 전송되지 않은 기존 메시지(예: 나중에 보내도록 예약된 캠페인 메시지)에 변경 사항을 적용할 수 있습니다. 이는 템플릿의 활성 버전을 편집하는지 여부와 템플릿을 사용하는 메시지를 구성한 방법에 따라 달라집니다. 자세한 내용은 [메시지 템플릿 버전 관리](message-templates-versioning.md) 단원을 참조하십시오.

**메시지 템플릿을 편집하려면 다음과 같이 하십시오.**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **메시지 템플릿** 페이지에서 편집할 템플릿을 선택합니다. 템플릿 페이지가 열리고 템플릿에 대한 정보가 표시됩니다. 활성 버전 템플릿의 내용과 설정도 표시됩니다.

1. **편집**을 선택합니다.

1. **템플릿 세부 정보**에서 버전 선택기를 사용하여 변경 사항의 시작점으로 사용할 템플릿 버전을 선택합니다. 최신 버전 템플릿을 선택하면 변경 사항을 해당 템플릿 버전에 직접 저장할 수 있습니다. 아니면 변경 사항을 새 템플릿 버전으로 저장할 수 있습니다.

1. 원하는 설정을 변경합니다. 템플릿의 이름을 제외하고, 템플릿의 모든 콘텐츠나 설정을 변경할 수 있습니다. 템플릿 이름을 변경하려면 [템플릿의 복사본을 만들고](message-templates-managing-copy.md) 원하는 이름으로 복사본을 저장한 다음 원래 템플릿을 삭제(선택 사항)합니다.

1. 변경을 마쳤으면 다음 중 하나를 수행합니다.
   + 변경 사항을 새 템플릿 버전으로 저장하려면 **새 버전으로 저장**을 선택하십시오. 변경 사항이 기존 메시지에 영향을 주지 않게 하려면 이 옵션을 선택하는 것이 좋습니다.
   + 변경 사항을 최신 버전 템플릿에 대한 업데이트로 저장하려면 **버전 업데이트**을 선택하십시오. 이 옵션은 5단계에서 최신 버전 템플릿을 선택한 경우에만 사용할 수 있습니다. 이 옵션을 선택하면 변경 사항이 템플릿을 사용하는 기존 메시지에 영향을 줄 수 있습니다.

# 메시지 템플릿 복사
<a name="message-templates-managing-copy"></a>

기존 템플릿과 유사한 새 메시지 템플릿을 빠르게 만들려면 템플릿의 복사본을 만들 수 있습니다. 그런 다음 원본 템플릿을 변경하지 않고 템플릿 사본을 편집할 수 있습니다.

**메시지 템플릿을 복사하려면 다음과 같이 하십시오.**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **메시지 템플릿** 페이지에서 복사할 템플릿 옆의 확인란을 선택합니다.

1. **작업** 메뉴에서 **복제**를 선택합니다.

1. **템플릿 이름**에 템플릿 사본의 이름을 입력합니다. 이름은 문자 또는 숫자로 시작해야 합니다. 최대 128자까지 입력할 수 있습니다. 문자는 문자, 숫자, 밑줄(\$1) 또는 하이픈(-)일 수 있습니다.

1. 이름 입력을 마치면 **템플릿 복제**를 선택합니다. 템플릿 페이지가 열리고 복사한 활성 버전 템플릿의 모든 내용과 설정이 표시됩니다.

1. (선택 사항) 템플릿 복사본을 변경하려면 **편집**을 선택하고 원하는 대로 변경한 다음 **새 버전으로 저장**을 선택합니다.

# 메시지 템플릿 삭제
<a name="message-templates-managing-delete"></a>

Amazon Pinpoint에서 메시지 템플릿을 완전히 제거하려면 템플릿을 삭제하면 됩니다. 템플릿을 삭제해도 템플릿을 사용하는 기존 메시지(예: 나중에 보내도록 예약된 캠페인 메시지)에는 전혀 영향을 주지 않습니다.

**주의**  
템플릿을 삭제하면 Amazon Pinpoint는 해당 템플릿의 모든 버전, 내용, 설정을 삭제합니다. 또한 이후 모든 메시지에서 템플릿을 사용할 수 없게 됩니다. 템플릿을 삭제한 후에는 복구할 수 없습니다.

**메시지 템플릿을 삭제하려면 다음과 같이 하십시오.**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **메시지 템플릿** 페이지에서 삭제할 각 템플릿 옆에 있는 확인란을 선택합니다.

1.  [**Actions**] 메뉴에서 [**Delete**]를 선택합니다.

# 템플릿에 태그 추가
<a name="message-templates-managing-add-tag"></a>

태그는 특정 유형의 Amazon Pinpoint AWS 리소스를 포함하여 리소스를 정의하고 리소스와 연결할 수 있는 레이블입니다.

태그를 추가하면 용도, 소유자, 환경 또는 기타 기준과 같은 다양한 방법으로 템플릿을 분류하고 관리하는 데 도움이 됩니다. 태그를 사용하여 기존 템플릿을 빠르게 찾거나 특정 템플릿에 액세스할 수 있는 사용자를 제어할 수 있습니다. 각각 고유한 키로 키-값 페어를 최대 50개까지 추가할 수 있습니다.

**태그를 추가하려면**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **메시지 템플릿** 페이지에서 태그를 추가할 템플릿을 선택합니다.

1. **태그**에서 **태그 관리**를 선택합니다.

1. **새 태그 추가**를 선택합니다.

1. 추가할 태그 키-값 페어를 입력합니다.

1. (선택 사항) 태그를 추가하려면 **새 태그 추가**를 선택합니다.

1. 마쳤으면 **태그 저장**을 선택합니다.

# 템플릿에서 태그 제거
<a name="message-templates-managing-remove-tag"></a>

템플릿에 적용할 태그가 더 이상 필요하지 않은 경우 콘솔을 통해 태그를 제거할 수 있습니다.

**태그를 제거하려면**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **메시지 템플릿** 페이지에서 태그를 제거하려는 템플릿을 선택합니다.

1. **태그**에서 **태그 관리**를 선택합니다.

1. 제거할 태그 옆에 있는 **제거**를 선택합니다.

1. **태그 저장**을 선택합니다.

IAM 정책에서 태그를 사용하는 방법에 대한 자세한 내용은 [태그 관리](https://docs.aws.amazon.com/pinpoint/latest/developerguide/tagging-resources.html)를 참조하세요.

# 메시지 템플릿 버전 관리
<a name="message-templates-versioning"></a>

개별 메시지 템플릿의 개발 및 사용을 관리하는 데 도움이 되도록 Amazon Pinpoint는 모든 메시지 템플릿 유형의 버전 관리를 지원합니다. 버전 관리를 통해 템플릿의 변경 기록을 만들 수 있습니다. 각 버전은 특정 시점의 템플릿 스냅샷입니다. 또한 버전 관리를 통해 템플릿을 사용하는 메시지의 내용과 설정을 제어할 수 있습니다.

템플릿을 변경할 때마다 변경 사항을 템플릿의 새 버전으로 저장할지, 아니면 템플릿의 기존 최신 버전에 대한 업데이트로 저장할지 여부를 지정할 수 있습니다. 템플릿을 디자인, 개발 및 구체화할 때 이러한 각 버전은 템플릿의 진행 상황과 상태를 추적하는 데 도움이 되는 스냅샷 역할을 합니다. 즉 버전 관리를 사용하여 시간 경과에 따른 템플릿 변경 시 템플릿을 저장, 추적 및 관리할 수 있습니다. 다음을 수행할 수 있습니다.
+ **템플릿 기록 추적** - Amazon Pinpoint는 각 템플릿에 대해 템플릿의 버전 목록을 제공합니다. 이 목록에는 각 버전의 이름이 표시되며 이 이름은 각 버전이 마지막으로 변경된 시기를 나타냅니다. 목록은 내림차순으로 정렬되어 있으며 최신 버전이 먼저 나열됩니다.
+ **템플릿의 버전 보기 및 비교** - 버전 목록을 사용하여 템플릿의 이전 버전을 찾아볼 수 있습니다. 목록에서 버전을 선택하면 Amazon Pinpoint는 해당 버전에 저장된 콘텐츠와 설정을 표시합니다.
+ **템플릿의 이전 버전 복원** - 최신 버전 템플릿에서 문제가 발견되면 문제가 포함되지 않은 이전 버전을 열고 편집할 수 있습니다. 그런 다음 이전 버전을 템플릿의 새 버전으로 저장할 수 있습니다. 그러면 새 버전이 템플릿의 최신 버전이 됩니다.

버전 관리를 사용하여 메시지에 사용할 수 있는 템플릿 버전을 제어할 수도 있습니다. 이렇게 하려면 특정 버전을 템플릿의 *활성 버전*으로 지정합니다. *활성 버전*은 일반적으로 템플릿 개발 및 관리를 위한 조직의 워크플로우에 따라 최근에 검토를 거쳐 메시지에 사용하도록 승인된 버전입니다.

버전을 활성 버전으로 지정할 때 메시지에 사용할 수 있도록 해당 버전을 활성화합니다. 시간이 지남에 따라 템플릿이 변경되면 다른 버전을 활성 버전으로 지정할 수 있으며 해당 지정을 여러 번 변경할 수 있습니다.

**참고**  
현재 사용 중인 템플릿을 편집해야 하는 경우 템플릿의 새 버전을 생성하는 것이 좋습니다.

**Topics**
+ [버전 관리 작동 방식](#message-templates-versioning-overview)
+ [메시지 템플릿의 버전 보기](#message-templates-versioning-view-versions)
+ [메시지 템플릿의 활성 버전 보기](#message-templates-versioning-view-active)
+ [메시지 템플릿의 활성 버전 지정](#message-templates-versioning-set-active)
+ [메시지 템플릿의 활성 버전 편집](#message-templates-versioning-edit-active)

## 버전 관리 작동 방식
<a name="message-templates-versioning-overview"></a>

일반적인 개발 워크플로우에서 메시지 템플릿의 버전은 여러 개입니다. 이 버전들은 설계 및 개발 시작부터 테스트, 검토를 거쳐 최종적으로 메시지에 사용할 수 있다는 승인을 받기에 이르기까지 확장됩니다. 경우에 따라 템플릿을 구체화하고 업데이트할 때 초기 승인 후 추가 버전을 만들고 승인할 수 있습니다. 예를 들어 템플릿을 사용하는 캠페인의 분석 데이터에 대한 응답으로 링크를 추가하거나 템플릿의 레이아웃을 변경할 수 있습니다.

### 버전 번호 지정
<a name="message-templates-versioning-overview-numbering"></a>

템플릿을 생성할 때는 *버전 1*이라는 한 가지 템플릿 버전만 있습니다. 이후에 템플릿을 변경할 때마다 변경 사항을 템플릿의 새 버전으로 저장할지, 아니면 최신 버전 템플릿에 대한 업데이트로 저장할지 여부를 지정합니다.

변경 내용을 새 버전으로 저장하는 경우 Amazon Pinpoint는 자동으로 버전 번호를 1씩 증가시키고 해당 버전 번호를 버전에 할당합니다. 첫 번째 버전은 *버전 1*, 두 번째 버전은 *버전 2*, 세 번째 버전은 *버전 3*이 되는 식입니다. 버전 번호는 절대 재사용되지 않습니다. 템플릿 버전을 5,000개까지 저장할 수 있습니다.

변경 사항을 최신 버전에 대한 업데이트로 저장하면 Amazon Pinpoint는 최신 버전을 덮어써 변경 사항을 포함합니다. 템플릿 기록을 정확하게 보려면 Amazon Pinpoint 콘솔을 사용하여 템플릿의 최신 버전만 덮어쓰면 됩니다. 콘솔을 사용하여 템플릿의 이전 버전을 덮어쓸 수는 없습니다.

### 최신 및 활성 버전
<a name="message-templates-versioning-overview-version-types"></a>

장기적이고 지속적인 템플릿 개발을 지원하기 위해 두 가지 버전의 템플릿을 동시에 최신 버전으로 사용할 수 있습니다. 즉 가장 최근에 변경된 버전인 *최신* 버전과 메시지에 사용할 수 있는 버전인 *활성* 버전입니다.

조직의 워크플로우에 따라 다르지만 일반적으로 활성 버전은 최근에 검토를 거쳐 메시지에 사용하도록 승인된 버전입니다. 반드시 최신 버전 템플릿일 필요는 없습니다. 또한 활성 버전 이외의 모든 버전은 템플릿의 초안 또는 보관 버전으로 간주됩니다. 즉 Amazon Pinpoint 콘솔을 사용하여 작성하는 메시지에는 활성 버전 템플릿만 사용할 수 있습니다.

예를 들어 템플릿을 디자인하고 개발할 때 여러 버전의 템플릿을 만들 수 있습니다. 최신 버전 템플릿이 완료되고 메시지에 사용할 수 있도록 승인되면 해당 버전을 활성 버전 템플릿으로 지정할 수 있습니다. 그런 다음 메시지에서 해당 활성 버전 템플릿을 사용할 수 있습니다. 나중에 템플릿을 변경하기로 결정한 경우 활성 버전 템플릿이나 해당 템플릿을 사용하는 기존 메시지에 영향을 주지 않고 이러한 변경 사항에 대해 추가 버전을 만들 수 있습니다.

템플릿의 모든 버전 중에서 하나의 버전을 활성 버전 템플릿으로 지정해야 합니다. 시간이 지남에 따라 템플릿이 변경되면 다른 버전을 활성 버전으로 지정할 수 있으며 해당 지정을 여러 번 변경할 수 있습니다.

### 메시지의 버전 설정
<a name="message-templates-versioning-overview-versions-messages"></a>

메시지에 특정 버전의 템플릿을 사용하려면 메시지를 작성할 때 또는 Amazon Pinpoint가 메시지를 보낼 때 해당 버전이 활성 버전 템플릿이어야 합니다. 이는 템플릿을 사용하도록 메시지를 구성하는 방법에 따라 달라집니다. 메시지를 작성하고 해당 메시지를 위한 템플릿을 선택할 때는 다음 두 가지 옵션이 있습니다.
+ **현재 활성 상태인 버전 사용** - 이 옵션을 선택하면 Amazon Pinpoint는 항상 메시지를 만들 때 활성 상태인 템플릿 버전에 지정된 것과 동일한 메시지 콘텐츠 및 설정을 전송합니다. 즉 나중에 발생한 템플릿 변경 사항에 관계없이 메시지가 동일하게 유지됩니다.
+ **메시지를 전송할 때 활성 상태인 버전 사용** - 이 옵션을 선택하면 메시지를 보낼 때 활성 상태인 템플릿 버전과 일치하도록 Amazon Pinpoint가 메시지 콘텐츠 및 설정을 자동으로 업데이트합니다. 즉 메시지를 작성한 후 다른 버전을 활성 버전으로 지정하면 메시지가 변경됩니다.

예를 들어 다음을 수행하는 경우:

1. 템플릿의 *버전 1*을 작성합니다.

1. *버전 1*을 활성 버전 템플릿으로 지정합니다.

1. 템플릿을 사용하는 메시지를 만들고 나중에 보낼 메시지를 예약합니다.

1. 템플릿을 여러 번 변경합니다.

1. 새 버전(*버전 5*)을 활성 버전 템플릿으로 지정합니다.

Amazon Pinpoint는 메시지를 보낼 때 각 옵션에 대해 다음을 수행합니다.
+ **현재 활성 상태인 버전 사용** - 메시지에 대해 이 옵션을 선택한 경우 Amazon Pinpoint는 템플릿의 *버전 1*에서 지정한 콘텐츠와 설정을 사용합니다. 이렇게 하는 이유는 메시지가 작성되었을 때 *버전 1*이 활성 버전 템플릿이었기 때문입니다.
+ **메시지를 전송할 때 활성 상태인 버전 사용** - 메시지에 대해 이 옵션을 선택한 경우 Amazon Pinpoint는 템플릿의 *버전 5*에서 지정한 콘텐츠와 설정을 사용하도록 메시지를 자동으로 업데이트합니다. 이렇게 하는 이유는 메시지가 전송될 때 *버전 5*가 활성 버전 템플릿이기 때문입니다.

템플릿 변경 사항이 아직 보내지 않은 기존 메시지에 영향을 주지 않게 하려면 메시지를 전송될 때가 아닌 작성할 때 활성화되는 템플릿 버전을 사용하도록 메시지를 구성하는 것이 좋습니다. 또는 메시지에서 템플릿을 사용하기 시작한 후 템플릿을 계속 개발하려는 경우 [템플릿의 복사본을 생성](message-templates-managing-copy.md)한 다음 새 메시지에서 템플릿 복사본을 편집하고 사용할 수 있습니다.

## 메시지 템플릿의 버전 보기
<a name="message-templates-versioning-view-versions"></a>

**메시지 템플릿** 페이지를 사용하여 특정 메시지 템플릿을 빠르게 찾고 열 수 있습니다. 그런 다음 템플릿에 대해 존재하는 버전의 목록을 볼 수 있습니다. 이 목록에서 특정 버전을 선택하여 해당 템플릿 버전의 내용과 설정을 볼 수 있습니다.

**메시지 템플릿의 버전을 보려면**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **메시지 템플릿** 페이지에서 버전을 보려는 템플릿을 선택합니다. 템플릿 페이지가 열리고 템플릿에 대한 정보가 표시됩니다. 활성 버전 템플릿의 내용과 설정도 표시됩니다.

1. **템플릿 세부 정보**에서 버전 선택기를 열어 템플릿의 버전 목록을 표시합니다.

1. 특정 버전에 대한 내용과 설정을 보려면 버전 선택기를 사용하여 해당 버전을 선택합니다. 버전을 선택하면 Amazon Pinpoint는 해당 템플릿 버전의 콘텐츠와 설정을 표시합니다.

## 메시지 템플릿의 활성 버전 보기
<a name="message-templates-versioning-view-active"></a>

두 가지 방법으로 메시지 템플릿의 활성 버전을 볼 수 있습니다. 즉 템플릿을 사용하는 메시지를 작성하는 동안, 그리고 **메시지 템플릿** 페이지를 사용하여 볼 수 있습니다. 메시지를 작성하는 동안 템플릿의 활성 버전을 보려면 메시지의 템플릿을 선택합니다. Amazon Pinpoint는 템플릿의 활성 버전 미리 보기를 자동으로 표시합니다.

**메시지 템플릿** 페이지를 사용하여 템플릿의 활성 버전을 보려면 이 주제의 단계를 수행하십시오.

**메시지 템플릿의 활성 버전을 보려면**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **메시지 템플릿** 페이지에서 활성 버전을 보려는 템플릿을 선택합니다. 템플릿 페이지가 열리고 템플릿에 대한 정보가 표시됩니다. 활성 버전 템플릿의 내용과 설정도 표시됩니다. **템플릿 세부 정보**에서 버전 선택기의 버전 이름 옆에 **활성 버전**이 녹색으로 표시됩니다.

1. 다른 버전의 템플릿을 보려면 **템플릿 세부 정보**의 버전 선택기를 사용하여 보려는 버전을 선택하십시오. 활성 버전을 다시 보려면 버전 선택기를 사용하여 버전 이름 옆에 **활성 버전**(녹색)이 표시되는 버전을 선택합니다.

## 메시지 템플릿의 활성 버전 지정
<a name="message-templates-versioning-set-active"></a>

메시지 템플릿을 생성할 때 Amazon Pinpoint는 템플릿의 첫 번째 버전을 템플릿의 활성 버전으로 자동 지정합니다. 템플릿의 후속 버전을 작성하고 개발할 때 다른 버전을 템플릿의 활성 버전으로 지정하고 해당 지정을 여러 번 변경할 수 있습니다.

버전을 템플릿의 활성 버전으로 지정하기 전에 제안된 활성 버전의 모든 콘텐츠와 설정이 완전하고 사용할 준비가 되어 있는지 확인하는 것이 좋습니다.

또한 현재 버전과 제안된 활성 버전 간의 차이가 예기치 않거나 원치 않는 방식으로 기존 메시지에 영향을 미치지 않는지 확인하는 것이 좋습니다. 다른 버전을 활성 버전으로 지정하면 Amazon Pinpoint에서 템플릿을 사용하고 아직 전송되지 않은 기존 메시지에 변경 사항을 적용할 수 있습니다. 이는 템플릿을 사용하는 메시지를 구성한 방법에 따라 달라집니다. 자세한 내용은 [메시지의 버전 설정](#message-templates-versioning-overview-versions-messages) 단원을 참조하십시오.

템플릿이 아직 전송되지 않은 메시지에 사용 중인 경우 현재 활성 상태인 버전을 활성화하려는 버전과 비교합니다. 또한 템플릿을 사용하는 여정 활동 및 캠페인도 검토합니다. 그런 다음 다른 버전을 활성 버전으로 지정하기 전에 필요에 따라 템플릿을 편집하여 발견한 문제를 해결합니다.

다른 버전을 활성 버전으로 지정하는 데 따른 효과가 염려되는 경우 대신 [템플릿의 복사본을 생성](message-templates-managing-copy.md)하면 됩니다. 그러면 새 메시지에서 템플릿 복사본을 편집하고 사용할 수 있습니다.

**메시지 템플릿의 활성 버전을 지정하려면**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **메시지 템플릿** 페이지에서 활성 버전을 지정하려는 템플릿을 선택합니다. 템플릿 페이지가 열리고 템플릿에 대한 정보가 표시됩니다. 또한 현재 템플릿의 활성 버전인 버전의 내용과 설정도 표시됩니다.

1. **템플릿 세부 정보**에서 버전 선택기를 사용하여 활성 버전으로 지정할 버전을 선택합니다. 버전을 선택하면 Amazon Pinpoint는 해당 템플릿 버전의 콘텐츠와 설정을 표시합니다.

1. **활성 버전으로 설정**을 선택합니다.

이제 템플릿의 새 활성 버전을 새 메시지에 사용할 수 있습니다. 또한 아직 전송되지 않은 기존 메시지에서 사용되며 메시지를 보낼 때 활성 상태인 템플릿 버전을 사용하도록 구성되어 있습니다.

## 메시지 템플릿의 활성 버전 편집
<a name="message-templates-versioning-edit-active"></a>

템플릿의 활성 버전을 편집하기 전에 Amazon Pinpoint 콘솔을 사용해 작성하는 메시지에는 템플릿의 활성 버전만 사용할 수 있다는 점을 기억하는 것이 중요합니다. 따라서 변경 사항이 완전하고 사용할 준비가 되어 있는지 먼저 확인하는 것이 좋습니다.

또한 변경 사항이 예기치 않거나 원치 않는 방식으로 기존 메시지에 영향을 미치지 않는지 확인하는 것이 좋습니다. Amazon Pinpoint에서 템플릿을 사용하고 아직 전송되지 않은 기존 메시지에 변경 사항을 적용할 수 있습니다. 이는 템플릿을 사용하는 메시지를 구성한 방법에 따라 달라집니다. 자세한 내용은 [메시지의 버전 설정](#message-templates-versioning-overview-versions-messages) 단원을 참조하십시오.

변경 사항이 기존 메시지에 미칠 수 있는 영향을 확인하려면 현재 활성 상태인 템플릿 버전의 내용과 설정을 검토합니다. 또한 템플릿을 사용하는 여정 활동 및 캠페인도 검토합니다. 그런 다음 변경하려는 사항을 고려하고 변경 사항이 템플릿을 사용하는 기존 메시지의 목표에 부합하는지 확인합니다.

마지막으로 템플릿의 활성 버전을 편집하는 데 따른 효과가 염려되는 경우 대신 [템플릿의 복사본을 생성](message-templates-managing-copy.md)할 수 있습니다. 그런 다음 나중에 작성하는 메시지에서 템플릿 복사본을 편집하고 사용할 수 있습니다.

**메시지 템플릿의 활성 버전을 편집하려면**

1. [https://console.aws.amazon.com/pinpoint/](https://console.aws.amazon.com/pinpoint/)에서 Amazon Pinpoint 콘솔을 엽니다.

1. 탐색 창에서 **메시지 템플릿**을 선택합니다.

1. **메시지 템플릿** 페이지에서 활성 버전을 편집하려는 템플릿을 선택합니다. 템플릿 페이지가 열리고 템플릿에 대한 정보가 표시됩니다. 또한 템플릿의 활성 버전으로 현재 지정된 버전의 내용과 설정도 표시됩니다.

1. **편집**을 선택합니다.

1. **템플릿 세부 정보**에서 버전 선택기를 사용하여 템플릿의 활성 버전을 편집하도록 합니다. 활성 버전의 이름 옆에 **활성 버전**이 녹색으로 표시됩니다.

1. 필요한 사항을 변경하고 **새 버전으로 저장**을 선택합니다.

1. **템플릿 세부 정보**에서 버전 선택기를 사용하여 이전 단계에서 만든 템플릿의 버전을 선택합니다.

1. **활성 버전으로 설정**을 선택합니다.

이제 템플릿의 새 활성 버전을 새 메시지에 사용할 수 있습니다. 또한 아직 전송되지 않은 기존 메시지에서 사용되며 메시지를 보낼 때 활성 상태인 템플릿 버전을 사용하도록 구성되어 있습니다.