# 시간 지연

**시간 지연(Time Delay)** 요소는 사용자를 지정된 시간 동안 대기하게 만듭니다. 지연 후 다음 단계로 이동합니다. 지연은 고정된 기간, 특정 시간 또는 날짜가 될 수 있습니다. 또한 태그 값이나 이벤트 속성을 기반으로 할 수도 있습니다.

## 지연 옵션

### 고정 기간

고정된 기간으로 설정하면, 시간 지연 요소는 지정된 시간이 경과했을 때만 사용자가 Journey를 계속할 수 있도록 합니다.

예를 들어, 지연이 8시간으로 설정된 경우 이 Journey 요소에 도달한 사용자는 다음 단계로 이동하기 전에 8시간을 기다립니다.

<Aside type="note">
지연 기간은 **30일을 초과할 수 없음**을 고려해 주십시오.
</Aside>

<img src="/journey-elements-README-32.webp" alt="고정 기간으로 구성된 시간 지연 요소로, 사용자가 진행하기 전에 지정된 기간 동안 대기하는 것을 보여줍니다."/>

### 특정 시간

사용자가 앞으로 이동할 정확한 시간을 설정할 수 있습니다. 지연 요소에 도달한 사용자는 지정된 시간에 진행합니다.

<Aside type="caution">
특정 시간 옵션은 사용자의 시간대에 맞춰 설정됩니다.
</Aside>

예를 들어, 사용자가 이른 아침에 지연 요소에 도달하고 지연을 오후 5시 30분까지 기다리도록 설정한 경우, 해당 사용자는 자신의 기기 시간대에 따라 오후 5시 30분에 다음 Journey 지점으로 진행합니다.

<Aside type="note">
지정한 시간이 일부 사용자의 시간대에서 이미 지난 경우, 해당 사용자는 다음 날 같은 시간까지 기다립니다.
</Aside>

<img src="/journey-elements-README-33.webp" alt="사용자의 Journey가 현지 시간대의 특정 시간에 도달할 때까지 시간 지연 요소에 의해 일시 중지됩니다."/>

### 날짜

특정 날짜에 일회성 캠페인을 설정하려는 경우(예: 블랙 프라이데이 알림 보내기), Journey를 계속할 특정 날짜와 시간을 선택하십시오.

<Aside type="caution">
날짜와 시간은 사용자의 시간대에 따라 설정된다는 점을 기억하십시오. 지정한 날짜와 시간이 일부 사용자의 시간대에서 이미 지난 경우, 해당 사용자는 즉시 다음 Journey 요소로 진행합니다.
</Aside>

<img src="/journey-elements-README-34.webp" alt="특정 날짜로 설정된 시간 지연 요소로, 휴일 프로모션과 같은 일회성 캠페인을 예약하는 데 이상적입니다."/>

### 요일

사용자가 특정 요일에만 다음 Journey 지점으로 이동하도록 하려면 **요일(Day of week)** 옵션을 선택하고 원하는 요일과 시간을 설정하십시오.

<Aside type="caution">
요일과 시간은 사용자의 시간대에 따라 설정된다는 점을 기억하십시오. 지정한 요일과 시간이 일부 사용자의 시간대에서 이미 지난 경우, 다음 주 같은 요일과 시간까지 기다립니다.
</Aside>

<img src="/journey-elements-README-35.webp" alt="특정 요일로 구성된 시간 지연 요소로, 주간 반복 일정을 허용합니다."/>

<span id="delay-based-on-user-or-event-data" />

### 사용자 또는 이벤트 데이터 기반 지연

대기 시간이 태그, 이벤트 속성 또는 [**웹훅**](#use-a-date-from-a-webhook-response) 응답에서 매핑된 값에서 와야 할 때 이 옵션을 사용하십시오.

1. **시간 지연 옵션(Time delay option)**에서 **사용자/이벤트 데이터 기반(Based on user/event data)**을 선택합니다.
2. **날짜 가져오기(Get date from)** 아래에서 태그를 사용하려면 **사용자 프로필(User profile)**을, 이벤트 속성이나 웹훅 응답의 값을 사용하려면 **이벤트(Event)**를 선택합니다.
3. **사용자 프로필(User profile)**을 선택한 경우, 날짜가 포함된 태그를 선택합니다.
4. **이벤트(Event)**를 선택한 경우, 날짜가 포함된 이벤트와 속성을 선택합니다. 웹훅으로 매핑된 값의 경우, 아래의 [웹훅 응답의 날짜 사용](#use-a-date-from-a-webhook-response)을 참조하십시오.
5. 오프셋을 설정합니다: 날짜 **전(Before)**, **후(After)** 또는 **당일(On)**을 선택한 다음 일 수를 입력합니다.

<img src="/journey-elements-README-36.webp" alt="사용자 또는 이벤트 데이터를 기반으로 한 시간 지연으로, Customer Journey 내에서 동적이고 개인화된 스케줄링을 가능하게 합니다."/>

<Aside type="note" title="날짜 형식 요구 사항">

*   **태그:** [날짜 유형](/ko/product/audience-data-and-segmentation/user-data-tags/tags#types-of-tags)의 태그를 사용하고 `2006-01-02T15:04:05` 형식(**UTC**)으로 [값을 설정](/ko/developer/api-reference/device-api#settags)하십시오.
*   **이벤트:** [이벤트를 생성](/ko/product/audience-data-and-segmentation/events#1-create-events-in-pushwoosh-control-panel)하고, [날짜 속성을 추가](/ko/product/audience-data-and-segmentation/events#2-set-attributes)한 후, `2006-01-02 15:04:05` 형식의 날짜로 [/postEvent](/ko/developer/api-reference/user-centric-api#postevent) 요청을 보내십시오.

</Aside>

<Aside type="caution">
사용자가 이 요소에 도달했을 때 **날짜나 시간이 이미 지난 경우**, 해당 사용자는 Journey를 종료합니다.
</Aside>

<span id="use-a-date-from-a-webhook-response" />

#### 웹훅 응답의 날짜 사용

Journey 초반의 [**웹훅**](/ko/product/customer-journey/journey-elements/channels/webhook/#map-webhook-response-data-to-variables) 요소에 **응답 매핑(Response mapping)**이 구성되어 있는 경우, 매핑된 속성은 **이벤트(Event)** 아래에서 사용할 수 있습니다.

1. **시간 지연 옵션(Time delay option)**에서 **사용자/이벤트 데이터 기반(Based on user/event data)**을 선택합니다.
2. **날짜 가져오기(Get date from)** 아래에서 **이벤트(Event)**를 선택합니다.
3. **이벤트(Event)**에서 지정한 이름으로 웹훅 단계를 선택합니다 (예: `Get appointment details`).
4. **이벤트 값(Event value)**에서 날짜를 포함하는 매핑된 속성을 선택합니다 (예: `visit_date`).
5. 오프셋을 설정합니다 (예: **2** **일** **전(Before)**).

<img src="/journey-elements-time-delay-1.webp" alt="visit_date 및 2일 전 오프셋으로 이벤트 웹훅으로 설정된 시간 지연" />

값은 태그 및 이벤트와 동일한 날짜 형식 규칙을 따라야 합니다 (위의 **날짜 형식 요구 사항** 참조).

<Aside type="caution">
매핑된 값이 없거나 유효한 날짜가 아닌 경우, 사용자는 이 단계에서 오류와 함께 Journey를 종료합니다. 시작하기 전에 [**웹훅 테스트**](/ko/product/customer-journey/journey-elements/channels/webhook/#test-the-webhook)를 실행하여 매핑을 확인하십시오.
</Aside>

<span id="split-branches-when-the-date-is-in-the-past-or-empty" />

### 날짜가 과거이거나 비어 있을 때 브랜치 분할

사용자가 지연 조건을 충족하지 못할 때 계속 진행하도록 하려면 **날짜가 과거이거나 비어 있을 경우 브랜치로 분할(Split to branches if the date's in the past or date is empty)**을 활성화하십시오. 흐름은 **미래(In the future)**와 **과거(In the past)**로 분할됩니다. 태그 값, 이벤트 속성 또는 웹훅으로 매핑된 날짜가 지연과 일치하지 않는 사용자를 위해 **과거(In the past)** 브랜치를 사용하십시오. 해당 브랜치에 다른 요소(예: 다른 **시간 지연(Time Delay)**, **조건 분할(Condition split)**, **트리거 대기(Wait for Trigger)** 또는 메시지)를 추가할 수 있습니다.

예를 들어, 약속 이벤트의 날짜 속성을 사용하여 약속 2일 전에 알림을 설정합니다. 약속이 내일인 경우, 사용자는 2일 전 조건을 충족하지 못하므로 브랜치 분할을 활성화하지 않으면 종료됩니다.

### Journey 중간에 약속 날짜가 변경될 때

사용자가 이미 Journey에 있는 동안 태그나 이벤트 속성의 날짜가 변경되면, **시간 지연(Time Delay)** 설정은 사용자가 요소에 도달했을 때와 동일하게 유지됩니다.

사용자가 약속, 배송 또는 유사한 이벤트를 자주 재조정하는 경우 여러 Journey를 생성하는 것을 고려하십시오.

예를 들어, DateTime 속성이 있는 `AppointmentCreated` 이벤트에서 Journey(알림 Journey)를 시작합니다. **사용자/이벤트 데이터 기반(Based on user/event data)**을 사용하여 방문 2일 전에 푸시 알림을 설정합니다. 재조정을 처리하려면:

1. `AppointmentChanged` 이벤트를 생성합니다.
2. 알림 Journey에서 `AppointmentChanged`를 전환 목표로 설정하여 재조정하는 사용자가 Journey를 종료하도록 합니다.
3. `AppointmentChanged`에서 시작하는 새로운 Journey를 생성하여 방문 날짜와 시간을 업데이트한 사용자에게 알림을 보냅니다.

<span id="pausing-a-journey-while-a-user-is-waiting" />

## 사용자가 대기하는 동안 Journey 일시 중지

Journey를 일시 중지해도 시간 지연 타이머는 일시 중지되지 않습니다. 전송 시간은 사용자가 지연 지점에 들어갈 때 고정되며, Journey의 일시 중지 상태와는 무관합니다.

*   해당 시간이 일시 중지 기간 내에 속하면 사용자는 이 단계에서 대기하며 Journey를 재개하는 즉시 메시지가 발송됩니다.
*   재개 이후에 시간이 속하면 메시지는 일시 중지가 없었던 것처럼 원래 예약된 시간에 발송됩니다.

이 지점에서 대기 중인 사용자는 Journey를 7일 이상 일시 중지하면(로그 항목이나 메트릭 없이 조용히 발생함), Journey가 일시 중지된 동안 **캠페인 중지(Stop campaign)**를 선택하면, 또는 편집 중에 이 요소를 삭제하면 손실됩니다. Journey를 일시 중지할 때 사용자에게 발생할 수 있는 다른 상황에 대해서는 [활성 Journey 편집](/ko/product/customer-journey/journey-editing/#editing-an-active-journey)을 참조하십시오.