PubNub 및 IFTTT를 사용한 SMS 알림 시스템
Published: 2024-03-14 16:55:37

개발자라면 IaaS(서비스형 인프라), PaaS(서비스형 플랫폼), 서비스형 소프트웨어와 같은 개념에 대해 들어보셨을 겁니다. [SaaS(서비스형 소프트웨어)](https://www.pubnub.com/solutions/enterprise-software/). 이러한 개념은 애플리케이션과 서비스를 구축, 관리 및 배포하는 데 매우 중요합니다. IaaS는 인터넷을 통해 확장 가능한 컴퓨팅 리소스를 제공합니다. PaaS는 개발자가 기본 인프라를 구축하고 유지 관리하는 복잡한 작업 없이 애플리케이션을 개발, 실행 및 관리할 수 있는 플랫폼을 제공합니다. SaaS는 또한 인터넷을 통해 소프트웨어 애플리케이션을 제공합니다. SaaS 플랫폼인 IFTTT(If This Then That)와 IaaS 플랫폼인 PubNub와 같은 서비스는 자동화 및 실시간 커뮤니케이션을 위한 유용한 도구를 제공하여 애플리케이션을 그 어느 때보다 빠르게 프로덕션에 출시할 수 있도록 해줍니다.

기술 개요
-----

### PubNub 이벤트 및 액션(E&A)

[PubNub 이벤트 및 액션](https://www.pubnub.com/docs/serverless/events-and-actions/overview) (E&A)는 PubNub 플랫폼의 확장 기능입니다. PubNub 이벤트 및 액션을 사용하면 자체 PubNub 이벤트를 필터링/처리하고 이러한 이벤트를 다양한 방식으로 설정한 타사 서비스로 보낼 수 있습니다.

사용자가 메시지를 게시하거나 사용자의 프레즌스 상태가 변경되거나 기타 여러 이벤트가 발생할 때 PubNub 이벤트가 생성될 수 있습니다( [이벤트 문서](https://www.pubnub.com/docs/serverless/events-and-actions/events) 를 참조하세요.) 그런 다음 PubNub 이벤트는 PubNub 이벤트 리스너에 의해 수신됩니다. PubNub 리스너는 특정 이벤트를 수신하고 그에 해당하는 작업을 실행합니다. 이 프로세스는 코딩 없이 PubNub 포털에서 직접 수행됩니다.

### IFTTT 및 SMS 알림

[IFTTT](https://ifttt.com/) 는 사용자가 다양한 웹 애플리케이션과 서비스를 연결하여 작업을 자동화하고 새로운 기능을 발견할 수 있는 웹 기반 자동화 플랫폼입니다. 애플릿이라고 하는 간단한 조건부 문을 만들어 애플리케이션이나 서비스의 변경 사항이 트리거될 수 있도록 도와줍니다.

IFTTT를 통해 설정할 수 있는 100개 이상의 연동 기능 중 두 가지가 웹훅과 SMS 알림입니다. 이러한 통합은 PubNub 이벤트 및 작업(E&A)에 연결됩니다. 아래 다이어그램은 우리가 만들 시스템을 시각화하는 데 도움이 될 것입니다.

![](https://www.pubnub.com/cdn/3prze68gbwl1/1IXhfT1ibiNjXbPOhJAAyn/57dc31be82227fe229993d7bdd1afd4f/Frame_1.png)

전제 조건
-----

PubNub 계정에 가입했는지 확인하고 다음을 확인하세요. [이벤트 및 액션 가격](https://www.pubnub.com/docs/general/resources/events-and-actions-pricing) 페이지에서 비용 세부 정보를 확인하세요. 또한 Pubnub 관리자 포털에서 이벤트 및 활동으로 이동하여 "업그레이드"를 선택하면 이벤트 및 활동의 요금제를 확인할 수 있습니다. 이 블로그에서는 PubNub 디버그 콘솔을 사용하여 메시지를 게시하고 IFTTT를 사용하여 처리할 것입니다.

위의 다이어그램에서 볼 수 있듯이 SMS 연동을 설정하고 웹훅을 통해 연결하기 위해 IFTTT 계정을 사용하므로 반드시 가입해야 합니다.

E&A 시작하기 및 고급 세부 정보에 대한 자세한 내용은 PubNub 이벤트 및 작업에 관한 다른 콘텐츠를 참조하세요:

-   [이벤트 및 액션 설정하기](https://www.pubnub.com/how-to/set-up-events-and-actions/)
    
-   [E&A와 함수의 차이점](http://pubnub.com/blog/events-and-actions-or-pubnub-functions-picking-the-right-tool/)
    
-   [고급 JSONPath를 사용하여 메시지를 필터링하는 방법](https://www.pubnub.com/how-to/eanda-advanced-jsonpath-filter/)
    

PubNub와 IFTTT 연결하기
------------------

우리의 [docs](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-ifttt-action) 를 참조하세요.

이 안내에서는 PubNub 이벤트 및 작업 IFTTT 통합을 사용하여 PubNub 인스턴스를 IFTTT에 직접 연결하겠습니다. 특정 채널을 통해 메시지가 전송될 때 휴대폰으로 SMS 알림을 자동으로 보내도록 하겠습니다.

먼저 PubNub 포털 내에서 이벤트 리스너를 만들어 보겠습니다. 이 이벤트 리스너는 "Send\_SMS" 채널을 통해 전송되는 메시지를 수신하는 역할을 담당합니다.

![](https://www.pubnub.com/cdn/3prze68gbwl1/cqscJ3G6ji9oVY84zLmfC/a4874dcaa52203e484cde8370ee66006/Screenshot_2024-03-11_at_12.51.17_AM.png)

아래 구성은 "Send\_SMS" 채널을 통해 전송되는 메시지를 수신하도록 기본 필터를 설정하는 방법을 보여줍니다. 그러나 고급 JSON 경로 기능을 사용할 때 PubNub 이벤트 필터로 훨씬 더 많은 작업을 할 수 있습니다.

![](https://www.pubnub.com/cdn/3prze68gbwl1/6rQ3JLm967DVo6FcLkyfgN/f9db88a18de625133c2e8d16f36e0a88/Screenshot_2024-03-11_at_12.50.55_AM.png)

이제 이벤트 필터를 구성했으니 PubNub 액션을 첨부할 수 있습니다. 이벤트 이름은 나중에 IFTTT 환경을 설정할 때 사용됩니다. 또한 IFTTT 웹훅 키를 가져와 IFTTT 워크플로우를 설정합니다. 또한 웹훅 요청에 헤더를 추가할 수 있으며, 이는 PubNub를 IFTTT에 연결하는 데 필요하지 않습니다.

![](https://www.pubnub.com/cdn/3prze68gbwl1/707m0doUUFo4vXgIPGrq1s/254983405bb2d2cf73e8285d2ff12869/Screenshot_2024-03-13_at_9.42.27_PM.png)

PubNub 액션을 추가한 후 IFTTT로 이동하여 만들기를 클릭하고 "이 경우"를 선택합니다. 검색창에서 "웹훅"을 검색합니다. 아래 이미지와 같이 "JSON 페이로드가 포함된 웹 요청 수신" 옵션을 사용합니다.

![](https://www.pubnub.com/cdn/3prze68gbwl1/3zSQLTPtmqAnirqNxo2Omn/eae7a7d6a85f48a7e08e75e3deb82407/Screenshot_2024-03-13_at_10.32.44_PM.png)

설정한 PubNub 액션의 "이벤트 이름"(이 경우 "publish\_message")을 입력합니다. 이벤트 이름은 PubNub와 IFTTT 간에 동일해야 합니다. "If This" 트리거를 만든 후 웹훅 키를 가져와서 [웹훅 서비스 페이지](https://ifttt.com/maker_webhooks)로 이동하여 문서를 클릭하고 거기에서 웹훅 키를 복사합니다.

"Then That" 트리거의 경우 "SMS"를 검색하여 해당 액션을 만듭니다. 이제 워크플로우에 "필터 코드"를 추가하여 PubNub 이벤트를 파싱하고 메시지 부분만 전송합니다.

![](https://www.pubnub.com/cdn/3prze68gbwl1/6LQGoclDVwVXGyeJiSylmD/998ed40b1fa206d40d73cf6f5a233516/Screenshot_2024-03-13_at_10.46.47_PM.png)

게시된 이벤트에 포함된 모든 내용을 이해하려면 아래의 PubNub 이벤트를 참조하세요. 이 이벤트에서 메시지를 파싱하는 데 사용하겠습니다.

```js
{
  "event": {
    "channel": "Channel-Barcelona",
    "eventCategory": "message",
    "eventType": "message.publish",
    "eventId": "8997eeb6-2a94-455b-ad6f-57296b785273",
    "eventPayload": {
      "message": "Enter message here",
      "meta": null
    },
    "iso8601timestamp": "2024-03-14T01:24:38Z",
    "subscribeKey": "...",
    "timetoken": "17103794788490465",
    "senderId": "Jack-device"
  },
  "eventsAndActionsMetadata": {
    "eventListenerMetadata": {
      "eventListenerId": "d69b8f9c-5d24-47f0-81d0-98accd38fdba"
    },
    "actionMetadata": {
      "actionId": "96cb5d6c-c121-4a0d-a703-cd78be1099d0",
      "actionInstanceId": "f395ae94-0aaf-4ed7-9add-57ee9db30272",
      "actionInvocationId": "81f7ea47-dace-4812-b546-a26057c127ce",
      "webhookMetadata": {
        "retryMetadata": {
          "retryIntervalSeconds": 450,
          "attemptNum": 0,
          "maxNumRetries": 2
        }
      }
    }
  }
}
```

아래 필터 코드는 PubNub 이벤트를 파싱하여 "메시지" 부분을 문자 메시지로 전송합니다.

```js
// Add your code here. All actions will run unless you explicitly skip them.
// Quick tips!
// Auto-complete is on. Start typing to see ingredient options.
// Hover over any ingredient to see the variable type and an example.
// TypeScript v2.92
var json = JSON.parse(MakerWebhooks.jsonEvent.JsonPayload);

var message = json.event.eventPayload.message;

Sms.sendMeText.setMessage(message);
```

이제 완성된 Applet과 PubNub 통합은 "Send\_SMS" 채널을 통해 PubNub에서 게시된 이벤트를 수신하고, IFTTT 측에서 PubNub 이벤트를 파싱하여 휴대폰 번호로 SMS 메시지를 전송합니다.

![](https://www.pubnub.com/cdn/3prze68gbwl1/32wxNb95y5H4Pc7I3OJuQp/57b25e2194e989536a5bac8df90c58f4/Screenshot_2024-03-13_at_11.00.19_PM.png)

개발자 사용 사례
---------

몇 가지 사용 사례를 통해 실제 시나리오에서 IFTTT가 통합된 PubNub를 살펴 보겠습니다.

### 채팅 애플리케이션

한 회사에서 직원들 간의 내부 커뮤니케이션을 위해 채팅 애플리케이션을 사용합니다. 이 회사는 IT 문제에 대한 내부 지원 시스템을 개선하고자 합니다. 채팅 메시지에서 지원 티켓을 자동으로 생성하여 관련 IT 지원 담당자에게 실시간으로 알리는 것이 목표입니다.

**PubNub을 사용한 채팅 애플리케이션**: 내부 [채팅 애플리케이션](https://www.pubnub.com/solutions/chat/) 은 실시간 메시징에 PubNub을 사용합니다. 각 부서에는 IT 지원 채널을 포함한 채팅 채널이 있습니다.

**IFTTT 통합**: 채팅 애플리케이션은 PubNub 이벤트 및 작업을 사용하여 IFTTT와 통합됩니다. 부서별 채팅 채널에 입력된 특정 키워드나 문구가 채팅 앱 외부에서 작업을 트리거할 수 있도록 통합이 설정되어 있습니다.

**트리거 설정**: 채팅 애플리케이션에서 직원이 'IT 문제'와 같은 특정 키워드와 함께 문제에 대한 간단한 설명이 포함된 메시지를 전송하여 IT 문제를 보고할 수 있습니다. PubNub은 이 메시지를 실시간으로 감지하여 미리 정의된 IFTTT 애플릿을 트리거합니다.

**티켓 생성을 위한 IFTTT 애플릿**: 트리거된 IFTTT 애플릿은 회사의 티켓팅 시스템(예: Jira, Zendesk)에서 새 지원 티켓을 만들도록 구성됩니다. 애플릿은 메시지 콘텐츠를 추출하여 이를 사용하여 새 지원 티켓의 세부 정보를 입력합니다.

**IT 지원 스태프에게 알림**: 지원 티켓이 만들어지면 또 다른 IFTTT 애플릿이 트리거되어 IT 지원 담당자에게 알립니다. 이 작업은 SMS나 이메일을 보내거나 채팅 앱의 IT 지원 채팅 채널에 직접 메시지를 게시하는 등 IFTTT에서 지원하는 다양한 채널을 통해 수행할 수 있습니다.

**확인 메시지**: 문제가 보고된 원래의 채팅 채널로 티켓이 만들어졌고 IT 지원팀에 통보되었음을 알리는 확인 메시지가 다시 전송됩니다. 이 메시지에는 참조를 위해 티켓 ID가 포함될 수 있습니다.

### IoT 디바이스 모니터링

회사에는 다양한 [IoT](https://www.pubnub.com/solutions/iot-device-control/) 장치(예: 환경 센서, 스마트 계량기, 보안 카메라)를 다양한 운영 목적으로 배포하고 있습니다. 이러한 장치들은 PubNub을 통해 연결되고 통신하여 실시간 데이터 전송 및 모니터링이 가능합니다. 이 회사는 내부 커뮤니케이션을 위해 PubNub에서 제공하는 채팅 애플리케이션을 활용하고 있습니다. IFTTT와의 통합을 통해 IoT 장치에서 수신한 데이터를 기반으로 응답 또는 알림을 자동화할 수 있습니다.

**실시간 데이터 전송**: 각 IoT 장치는 상태 업데이트 및 알림을 전용 PubNub 채널에 직접 게시하도록 구성됩니다. 이러한 메시지에는 온도 이상, 배터리 잔량 또는 무단 액세스 알림과 같은 다양한 데이터 유형이 포함될 수 있습니다.

**데이터 처리를 위한 PubNub 함수**: IoT 디바이스의 데이터를 실시간으로 필터링하고 처리하기 위해 PubNub 함수가 배포됩니다. 이 기능은 수신 메시지를 평가하여 긴급한 주의가 필요한 특정 조건이나 임계값(예: 센서가 미리 정의된 범위를 벗어난 온도를 감지하는 경우)을 나타낼 수 있습니다.

**자동화된 작업을 위한 IFTTT 통합**: PubNub 이벤트 리스너가 알림 조건을 감지하면 IFTTT 웹훅을 통해 IFTTT 이벤트를 트리거합니다. 이 이벤트는 다음과 같은 자동화된 작업을 수행하도록 구성됩니다:

-   이메일 보내기 [이메일](https://ifttt.com/email) 또는 [SMS](https://ifttt.com/sms) 해당 IoT 장치를 관리하는 특정 담당자나 외부 협력업체에 이메일 또는 SMS 보내기.
    
-   회사의 티켓 시스템에서 새 지원 티켓 만들기(예, [Jira](https://ifttt.com/jira)). 애플릿은 메시지 알림을 통해 IT 기기의 문제점을 파악하고 티켓 내에서 바로 IOT에 대한 로그 파일을 보고할 수 있습니다.
    
-   향후 분석 및 조치를 위해 유지 관리 로그에 이벤트를 기록합니다.
    

**장치 제어 명령용 IFTTT 애플릿**: 채팅 애플리케이션을 사용하면 팀원들이 PubNub을 통해 IoT 장치에 명령을 다시 전송하여 채팅에 게시된 특정 키워드나 명령에 응답하는 IFTTT의 사전 정의된 애플릿을 기반으로 즉각적인 작업(예: 장치 재설정, 설정 조정)을 수행할 수 있습니다.

PubNub 시작하기
-----------

지금까지 IFTTT 액션을 사용하고 간단한 PubNub 이벤트 리스너를 설정하는 방법에 대해 설명했습니다. PubNub 이벤트 및 액션 사용을 확장하려면 PubNub에서 제공하는 몇 가지 다른 액션을 확인하세요.

-   [웹훅 호출하기](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-webhook-action) (즉, 필터링된 각 이벤트에 대해 서버 호출)
    
-   [SQS에 저장](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-sqs-action) (즉, 각 이벤트를 [아마존의 SQS 대기열 서비스](https://aws.amazon.com/sqs/))
    
-   [키네시스로 보내기](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kinesis-action) (즉, 다음 주소로 보내기 [아마존의 이벤트 수집 서비스](https://aws.amazon.com/kinesis/))
    
-   [S3로 보내기](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-s3-action) (즉, 데이터를 아마존의 [Amazon S3 버킷](https://aws.amazon.com/s3/))
    
-   [카프카로 보내기](https://www.pubnub.com/docs/serverless/events-and-actions/actions/create-kafka-action) (즉, 데이터를 [아파치 카프카](https://kafka.apache.org/))
    

PubNub는 다양한 [SDK](https://www.pubnub.com/docs/sdks) 를 제공하여 이러한 작업을 애플리케이션에 통합할 수 있습니다. 이러한 SDK는 PubNub의 기능을 현재 애플리케이션에 쉽게 구현하여 실시간 데이터 스트리밍, 처리 및 통신 기능을 간편하게 추가할 수 있도록 해줍니다. 웹, 모바일, 서버 측 애플리케이션 등 어떤 애플리케이션으로 작업하든 PubNub의 SDK는 고도로 상호작용하고 반응성이 뛰어난 애플리케이션을 구축하는 데 필요한 도구를 제공합니다.

궁금한 점이 있으면 언제든지 개발자 지원팀(devrel@pubnub.com)으로 문의하세요.

#### 내용

[기술 개요펍넙](#h-0)[이벤트 및 작업(E&A)](#h-1)[IFTTT 및 SMS](#h-2)[알림전제](#h-3)[조건펍넙과 IFTTT 연결하기개발자](#h-4)[사용 사례챗](#h-5)[애플리케이션IoT](#h-6)[디바이스](#h-7)[모니터링펍넙으로 시작하기](#h-8)

PubNub이 어떤 도움을 줄 수 있나요?
=======================

이 문서는 원래 [PubNub.com에](https://www.pubnub.com/blog/sms-notification-system-with-ifttt/) 게시되었습니다.

저희 플랫폼은 개발자가 웹 앱, 모바일 앱 및 IoT 디바이스를 위한 실시간 인터랙티브를 구축, 제공 및 관리할 수 있도록 지원합니다.

저희 플랫폼의 기반은 업계에서 가장 크고 확장성이 뛰어난 실시간 에지 메시징 네트워크입니다. 전 세계 15개 이상의 PoP가 월간 8억 명의 활성 사용자를 지원하고 99.999%의 안정성을 제공하므로 중단, 동시 접속자 수 제한 또는 트래픽 폭증으로 인한 지연 문제를 걱정할 필요가 없습니다.

PubNub 체험하기
-----------

[라이브 투어를](https://www.pubnub.com/tour/introduction/) 통해 5분 이내에 모든 PubNub 기반 앱의 필수 개념을 이해하세요.

설정하기
----

PubNub [계정에](https://admin.pubnub.com/signup/) 가입하여 PubNub 키에 무료로 즉시 액세스하세요.

시작하기
----

사용 사례나 [SDK에](https://www.pubnub.com/docs) 관계없이 [PubNub 문서를](https://www.pubnub.com/docs) 통해 바로 시작하고 실행할 수 있습니다.