> For the complete documentation index, see [llms.txt](https://developers.fingerpush.com/app-push/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.fingerpush.com/app-push/agent/test.md).

# 푸시 발송 테스트

## 푸시 발송 테스트

{% hint style="info" %}
에이전트 제공 시 핑거푸시 사용자 계정과 테스트용 앱(iOS, Android)이 기본 제공됩니다. \
해당하는 정보가 없을 경우에는 반드시 문의 바랍니다.
{% endhint %}

#### **1단계. 준비 사항 확인**

1\) 사용자 계정: 이메일 형식&#x20;

2\) 사용자 CustomerKey: 난수 형식&#x20;

3\) 테스트용 앱키: 난수 형식&#x20;

4\) 테스트용 앱시크릿: 난수 형식&#x20;

5\) 테스트 앱: 안드로이드만 제공(APK 형태의 첨부파일로 제공됩니다.)

※ 위 5가지의 항목을 모두 확인하신 후 테스트가 가능합니다.

#### **2단계. 에이전트 환경 확인**

1\) 설치경로/bin/agentDistServerConfig.xml 파일을 편집기로 오픈한 후, 태그 내용중 member의 id 및 customer\_key가 제공된 것과 동일한지 확인합니다. 부분은 제공된 정보 그대로 둡니다.

![](/files/06YyaRklbxe7TU1o1MLA)

#### **3단계. 앱 설치 및 식별자 셋팅**

1\) 테스트 앱을 사용자 단말기에 설치합니다.(안드로이드만 제공됨)

2\) 앱을 실행한 후 식별자를 셋팅합니다.

* 식별자는 회원 아이디 역할을 합니다. 개별 사용자 앱으로 푸시를 발송하기 위한 필수 항목입니다.
* 앱 실행 후, 좌측 상단 메뉴 > 설정 > 일반 선택
* 붉은 박스의 식별자 항목 터치 후 ‘사용자 아이디’ 입력 후 저장합니다.

![](/files/VMtqt4Qaiqh5WMsrUyNc)

#### **4단계.** 푸시 메시지 발송 방법

1\) 푸시 메시지 발송 방식(mode)

| 발송 방식                      | DB 테이블                                                                                 | Console 화면                                             |
| -------------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| <p>대량 발송</p><p>(DEFT)</p>  | master,queue,result 각각 하나의 row로 저장                                                     | 하나의 결과로 저장(통계 제공)                                      |
| <p>타겟 발송</p><p>(STOS)</p>  | queue, result 푸시 대상수의 row만큼 저장, 푸시 전송 시점에 queue에 대상자 10개가 있으면 하나의 묶음으로 발송(1개\~최대 500개) | 1개\~최대 500개의 대상자가 하나의 메시지로 발송되기 때문에 여러 건의 메시지 결과로 저장됨. |
| <p>우선타겟발송</p><p>(STOE)</p> | STOS와 동일                                                                               | STOS와 동일                                               |
| <p>켐페인발송</p><p>(CAMP)</p>  | 하나의 캠페인(메시지)에 다량의 대상자를 묶어서 보내는 방식                                                      | 결과를 한 화면으로 제공, 통계 산출에 용이한 방식                           |

2\) 대량 발송 샘플(DEFT)

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">Mysql, Mariadb</mark></td><td></td></tr><tr><td>Master Insert</td><td><p>INSERT INTO AGPUSH_MASTER(camptitle,pmode,step,rstart_date,wdate,isios,isandroid,</p><p>serialnum) values ('캠페인','DEFT','R',now(),now(),'Y','Y',’캠페인코드’)</p></td></tr><tr><td><p>Queue Insert</p><p>(수신동의)</p></td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret,</p><p>msgtitle,msgcontents,pmode,senddate,wdate,udate, serialnum) values('appkey','appsecret',</p><p>'푸시제목','푸시내용','DEFT',now(),now(),now(),‘캠페인코드’)</p></td></tr><tr><td><p>Queue Insert</p><p>(수신동의, 광고동의)</p></td><td><p>INSERT INTO AGPUSH_QUEUE(serialnum, appkey,appsecret,</p><p>msgtitle,msgcontents,pmode,senddate,wdate,udate,optagree) values(‘캠페인코드’,'appkey','appsecret','푸시제목','푸시내용','DEFT',now(),now(),now(),’1000’)</p></td></tr><tr><td><p>Queue Insert</p><p>(라벨/배경/폰트색)</p></td><td><p>INSERT INTO AGPUSH_QUEUE(serialnum appkey,appsecret,</p><p>msgtitle,msgcontents,pmode,label_code,bgcolor,fontcolor,senddate,wdate,udate) values(‘캠페인코드’,'appkey','appsecret',</p><p>'푸시제목','푸시내용','DEFT', '라벨코드’,'#080000’,'#FBF3F3’,now(),now(),now())</p></td></tr><tr><td>Master Update</td><td><p>UPDATE AGPUSH_MASTER set step='T',rend_date=now() WHERE serialnum=’캠페인코드’</p><p>발송 준비 완료</p><p> </p><p>QUEUE의 senddate 시간이 되면 데이터를 핑거푸시 서비스로 전송하고 step=’C’로 변경</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">Mssql</mark></td><td></td></tr><tr><td>Master Insert</td><td><p>INSERT INTO AGPUSH_MASTER(camptitle,pmode,step,rstart_date,wdate,isios,isandroid,</p><p>serialnum) values('캠페인','DEFT','R',getdate(),getdate (),'Y','Y',’캠페인코드’)</p></td></tr><tr><td><p>Queue Insert</p><p>(수신동의)</p></td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret,</p><p>msgtitle,msgcontents,pmode,senddate,wdate,udate, serialnum) values('appkey','appsecret',</p><p>'푸시제목','푸시내용','DEFT', getdate (),getdate (),getdate (),‘캠페인코드’)</p></td></tr><tr><td><p>Queue Insert</p><p>(수신동의, 광고동의)</p></td><td><p>INSERT INTO AGPUSH_QUEUE(serialnum, appkey,appsecret,msgtitle,msgcontents,pmode,</p><p>senddate,wdate,udate,optagree) values(‘캠페인코드’,'appkey','appsecret','푸시제목','푸시내용',</p><p>'DEFT',getdate(),getdate(),getdate(),’1000’)</p></td></tr><tr><td><p>Queue Insert</p><p>(라벨/배경/폰트색)</p></td><td><p>INSERT INTO AGPUSH_QUEUE(serialnum,appkey,appsecret,msgtitle,msgcontents,pmode,</p><p>label_code,bgcolor,fontcolor,senddate,wdate,udate) values(‘캠페인코드’,'appkey','appsecret',</p><p>'푸시제목','푸시내용','DEFT', '라벨코드’,'#080000’,'#FBF3F3’, getdate(),getdate(),getdate())</p></td></tr><tr><td>Master Update</td><td><p>UPDATE AGPUSH_MASTER set step='T',rend_date=getdate() WHERE serialnum=’캠페인코드’</p><p>발송 준비 완료</p><p> </p><p>QUEUE의 senddate 시간이 되면 데이터를 핑거푸시 서비스로 전송하고 step=’C’로 변경</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">Oracle, Tibero</mark></td><td></td></tr><tr><td>Master Insert</td><td><p>INSERT INTO AGPUSH_MASTER(camptitle,pmode,step,rstart_date,wdate,isios,isandroid,</p><p>serialnum) values('캠페인','DEFT','R',SYSDATE,SYSDATE,'Y','Y',’캠페인코드’)</p></td></tr><tr><td><p>Queue Insert</p><p>(수신동의)</p></td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx,appkey,appsecret,msgtitle,msgcontents,pmode,</p><p>senddate,wdate,udate,serialnum) values(AGPUSH_QUEUE_SEQ.nextval,'appkey','appsecret',</p><p>'푸시제목','푸시내용','DEFT', SYSDATE , SYSDATE, SYSDATE,‘캠페인코드’)</p></td></tr><tr><td><p>Queue Insert</p><p>(수신동의, 광고동의)</p></td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx, serialnum, appkey,appsecret,</p><p>msgtitle,msgcontents,pmode,senddate,wdate,udate,optagree)</p><p>values(AGPUSH_QUEUE_SEQ.nextval,'appkey', ‘캠페인코드’,'appkey','appsecret',</p><p>'푸시제목','푸시내용','DEFT', SYSDATE, SYSDATE, SYSDATE,’1000’)</p></td></tr><tr><td><p>Queue Insert</p><p>(라벨/배경/폰트색)</p></td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx, serialnum appkey,appsecret,</p><p>msgtitle,msgcontents,pmode,label_code,bgcolor,fontcolor,senddate,wdate,udate) values(AGPUSH_QUEUE _SEQ.nextva,l'appkey', ‘캠페인코드’,'appkey','appsecret',</p><p>'푸시제목','푸시내용','DEFT', '라벨코드’,'#080000’,'#FBF3F3’, SYSDATE , SYSDATE, SYSDATE)</p></td></tr><tr><td>Master Update</td><td><p>UPDATE AGPUSH_MASTER set step='T',rend_date= SYSDATE WHERE serialnum=’캠페인코드’</p><p>발송 준비 완료</p><p> </p><p>QUEUE의 senddate 시간이 되면 데이터를 핑거푸시 서비스로 전송하고 step=’C’로 변경</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">PostgreSQL, EDB</mark></td><td></td></tr><tr><td>Master Insert</td><td><p>INSERT INTO AGPUSH_MASTER(camptitle,pmode,step,rstart_date,wdate,isios,isandroid,</p><p>serialnum) values('캠페인','DEFT','R', current_timestamp, current_timestamp,'Y','Y',캠페인코드)</p></td></tr><tr><td><p>Queue Insert</p><p>(수신동의)</p></td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx,appkey,appsecret,msgtitle,msgcontents,pmode,</p><p>senddate,wdate,udate, serialnum) values(nextval('AGPUSH_QUEUE_SEQ'),'appkey','appsecret',</p><p>'푸시제목','푸시내용','DEFT', current_timestamp, current_timestamp, current_timestamp,</p><p>‘캠페인코드’)</p></td></tr><tr><td><p>Queue Insert</p><p>(수신동의, 광고동의)</p></td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx,serialnum,appkey,appsecret,msgtitle,msgcontents,</p><p>pmode,senddate,wdate,udate,optagree) values(nextval('AGPUSH_QUEUE_SEQ'), ‘캠페인코드’,'appkey','appsecret','푸시제목','푸시내용','DEFT', current_timestamp, current_timestamp, current_timestamp,’1000’)</p></td></tr><tr><td><p>Queue Insert</p><p>(라벨/배경/폰트색)</p></td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx,serialnum,appkey,appsecret,msgtitle,msgcontents,</p><p>pmode,label_code,bgcolor,fontcolor,senddate,wdate,udate) values(nextval('AGPUSH_QUEUE_SEQ'), ‘캠페인코드’,'appkey','appsecret','푸시제목','푸시내용',</p><p>'DEFT','라벨코드’,'#080000’,'#FBF3F3’, current_timestamp, current_timestamp, current_timestamp)</p></td></tr><tr><td>Master Update</td><td><p>UPDATE AGPUSH_MASTER set step='T',rend_date= current_timestamp WHERE serialnum=‘캠페인코드’</p><p>발송 준비 완료</p><p> </p><p>QUEUE의 senddate 시간이 되면 데이터를 핑거푸시 서비스로 전송하고 step=’C’로 변경</p></td></tr></tbody></table>

3\) 타겟 발송 샘플(STOS, STOE)

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">Mysql, Mariadb</mark></td><td></td></tr><tr><td>수신동의</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret,msgtitle,msgcontents,identify,pmode,</p><p>senddate,wdate,udate) values('appkey','appsecret','푸시제목','푸시내용','fingerpush','STOS/STOE',now(),now(),now())</p></td></tr><tr><td>수신동의/광고동의</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret,msgtitle,msgcontents,identify,pmode,</p><p>senddate,wdate,udate,optagree) values('appkey','appsecret','푸시제목','푸시내용',</p><p>'fingerpush','STOS/STOE’,now(),now(),now(),’1000’)</p></td></tr><tr><td>라벨/배경/폰트색</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret,msgtitle,msgcontents,identify,pmode,</p><p>label_code,bgcolor,fontcolor,senddate,wdate,udate) values('appkey','appsecret', '푸시제목','푸시내용','fingerpush',’STOS/STOE’, ’라벨코드’, ’#080000’, ’#FBF3F3’, now(), now(), now())</p></td></tr></tbody></table>

{% hint style="info" %}
STOS, STOE로 설정 가능, 서로 다른 메시지 큐로 동작합니다.
{% endhint %}

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">Mssql</mark></td><td></td></tr><tr><td>수신동의</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret,msgtitle,msgcontents,identify,pmode,</p><p>senddate,wdate,udate) values('appkey','appsecret','푸시제목','푸시내용',</p><p>'fingerpush','STOS/STOE',getdate(),getdate(),getdate())</p></td></tr><tr><td>수신동의/광고동의</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret,msgtitle,msgcontents,identify,pmode,</p><p>senddate,wdate,udate,optagree) values('appkey','appsecret','푸시제목','푸시내용',</p><p>'fingerpush', 'STOS/STOE’, getdate(),getdate(),getdate(),’1000’)</p></td></tr><tr><td>라벨/배경/폰트색</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret,msgtitle,msgcontents,identify,pmode,</p><p>label_code,bgcolor,fontcolor,senddate,wdate,udate) values('appkey','appsecret','푸시제목', '푸시내용', 'fingerpush', ’STOS/STOE’, ’라벨코드’, ‘#080000’, ‘#FBF3F3’, getdate(), getdate(), getdate())</p></td></tr></tbody></table>

{% hint style="info" %}
STOS, STOE로 설정 가능, 서로 다른 메시지 큐로 동작합니다.
{% endhint %}

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">Oracle, Tibero</mark></td><td></td></tr><tr><td>수신동의</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret,msgtitle,msgcontents,identify,pmode,</p><p>senddate,wdate,udate) values('appkey','appsecret','푸시제목','푸시내용','fingerpush',</p><p>'STOS/STOE',SYSDATE,SYSDATE,SYSDATE)</p></td></tr><tr><td>수신동의/광고동의</td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx, appkey,appsecret,</p><p>msgtitle,msgcontents,identify,pmode,senddate,wdate,udate,optagree) values(AGPUSH_QUEUE_SEQ.nextval,'appkey','appsecret',</p><p>'푸시제목','푸시내용','fingerpush', 'STOS/STOE’, SYSDATE , SYSDATE, SYSDATE,’1000’)</p></td></tr><tr><td>라벨/배경/폰트색</td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx,appkey,appsecret,msgtitle,msgcontents,identify,</p><p>pmode,label_code,bgcolor,fontcolor,senddate,wdate,udate) values(AGPUSH_QUEUE_SEQ.nextval,'appkey','appsecret','푸시제목','푸시내용','fingerpush',</p><p>’STOS/STOE’,’라벨코드’,’#080000’,’#FBF3F3’, SYSDATE , SYSDATE, SYSDATE)</p></td></tr></tbody></table>

{% hint style="info" %}
STOS, STOE로 설정 가능, 서로 다른 메시지 큐로 동작합니다.
{% endhint %}

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">PostgreSQL, EDB</mark></td><td></td></tr><tr><td>수신동의</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret,msgtitle,msgcontents,identify,pmode,</p><p>senddate,wdate,udate) values('appkey','appsecret','푸시제목','푸시내용','fingerpush',</p><p>'STOS/STOE', current_timestamp, current_timestamp, current_timestamp)</p></td></tr><tr><td>수신동의/광고동의</td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx,appkey,appsecret,msgtitle,msgcontents,identify,</p><p>pmode,senddate,wdate,udate,optagree) values(nextval('AGPUSH_QUEUE_SEQ'),'appkey',</p><p>'appsecret','푸시제목','푸시내용','fingerpush','STOS/STOE’, current_timestamp,</p><p>current_timestamp, current_timestamp,’1000’)</p></td></tr><tr><td>라벨/배경/폰트색</td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx,appkey,appsecret,msgtitle,msgcontents,identify,</p><p>pmode,label_code,bgcolor,fontcolor,senddate,wdate,udate) values(nextval('AGPUSH_QUEUE_SEQ'),'appkey','appsecret','푸시제목','푸시내용','fingerpush',</p><p>’STOS/STOE’,’라벨코드’,‘#080000’,‘#FBF3F3’, current_timestamp, current_timestamp, current_timestamp)</p></td></tr></tbody></table>

{% hint style="info" %}
STOS, STOE로 설정 가능, 서로 다른 메시지 큐로 동작합니다.
{% endhint %}

4\) 캠페인 발송 샘플(CAMP)

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">Mysql, Mariadb</mark></td><td></td></tr><tr><td>Master Insert</td><td><p>INSERT INTO AGPUSH_MASTER(serialnum,camptitle,pmode,step,rstart_date,wdate,isios,</p><p>isandroid) values(‘캠페인코드’,'캠페인','CAMP','R',now(),now(),'Y','Y')</p></td></tr><tr><td>Queue Insert</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret,msgtitle,msgcontents,identify,pmode,</p><p>senddate,wdate,udate,serialnum) values('appkey','appsecret','푸시제목','푸시내용','fingerpush',</p><p>'CAMP',now(),now(),now(),’캠페인코드’)</p><p>발송 대상자 수만큼 Insert. senddate는 모두 동일하게 입력</p></td></tr><tr><td>Master Update</td><td><p>UPDATE AGPUSH_MASTER set step='T',rend_date=now() WHERE serialnum=‘캠페인코드’</p><p>발송 준비 완료</p><p>STEP=T로 변경되면 에이전트가 QUEUE의 데이터를 핑거푸시 서비스로 전송</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="151.8571428571429"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">Mssql</mark></td><td></td></tr><tr><td>Master Insert</td><td><p>INSERT INTO AGPUSH_MASTER(serialnum,camptitle,pmode,step,rstart_date,wdate,isios,</p><p>isandroid) values(‘캠페인코드’,'캠페인','CAMP','R',getdate(),getdate(),'Y','Y')</p></td></tr><tr><td>Queue Insert</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret,msgtitle,msgcontents,identify,pmode,</p><p>senddate,wdate,udate,serialnum) values('appkey','appsecret','푸시제목','푸시내용','fingerpush',</p><p>'CAMP',getdate(),getdate(),getdate(),’캠페인코드’)</p><p>발송 대상자 수만큼 Insert. senddate는 모두 동일하게 입력</p></td></tr><tr><td>Master Update</td><td><p>UPDATE AGPUSH_MASTER set step='T',rend_date=getdate() WHERE serialnum=‘캠페인코드’</p><p>발송 준비 완료</p><p>STEP=T로 변경되면 에이전트가 QUEUE의 데이터를 핑거푸시 서비스로 전송</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">Oracle, Tibero</mark></td><td></td></tr><tr><td>Master Insert</td><td><p>INSERT INTO AGPUSH_MASTER(serialnum,camptitle,pmode,step,rstart_date,wdate,isios,</p><p>isandroid) values(‘캠페인코드’,'캠페인','CAMP','R',SYSDATE,SYSDATE,'Y','Y')</p></td></tr><tr><td>Queue Insert</td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx,appkey,appsecret,msgtitle,msgcontents,identify,</p><p>pmode,senddate,wdate,udate,serialnum) values(AGPUSH_QUEUE_SEQ.nextval,'appkey',</p><p>'appsecret','푸시제목','푸시내용','fingerpush','CAMP',SYSDATE,SYSDATE,SYSDATE,’캠페인코드’)</p><p>발송 대상자 수만큼 Insert. senddate는 모두 동일하게 입력</p></td></tr><tr><td>Master Update</td><td><p>UPDATE AGPUSH_MASTER set step='T',rend_date=getdate() WHERE serialnum=‘캠페인코드’</p><p>발송 준비 완료</p><p>STEP=T로 변경되면 에이전트가 QUEUE의 데이터를 핑거푸시 서비스로 전송</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">PostgreSQL, EDB</mark></td><td></td></tr><tr><td>Master Insert</td><td><p>INSERT INTO AGPUSH_MASTER(serialnum,camptitle,pmode,step,rstart_date,wdate,isios,</p><p>isandroid) values(‘캠페인코드’,'캠페인','CAMP','R', current_timestamp, current_timestamp,'Y','Y')</p></td></tr><tr><td>Queue Insert</td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx,appkey,appsecret,msgtitle,msgcontents,identify,</p><p>pmode,senddate,wdate,udate,serialnum) values(nextval(‘AGPUSH_QUEUE_SEQ’),'appkey',</p><p>'appsecret','푸시제목','푸시내용','fingerpush','CAMP', current_timestamp, current_timestamp, current_timestamp,’캠페인코드’)</p><p>발송 대상자 수만큼 Insert. senddate는 모두 동일하게 입력</p></td></tr><tr><td>Master Update</td><td><p>UPDATE AGPUSH_MASTER set step='T',rend_date=current_timestamp</p><p>WHERE serialnum=‘캠페인코드’</p><p>발송 준비 완료</p><p>STEP=T로 변경되면 에이전트가 QUEUE의 데이터를 핑거푸시 서비스로 전송</p></td></tr></tbody></table>

5\) 실시간 현황 푸시 샘플(STOS/STOE)

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">Mysql, Mariadb, Cubrid</mark></td><td></td></tr><tr><td>START</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret, msgtitle,msgcontents,identify,lngt_message,pmode,</p><p><mark style="color:$danger;">send_stat</mark>,senddate)</p><p>values('appkey','appsecret',</p><p>'푸시제목','푸시내용','식별자(주문번호)',</p><p>'{           "<mark style="color:$danger;">event</mark>":"<mark style="color:$danger;">start</mark>",</p><p>             "attributes":{</p><p>                           "<mark style="color:$danger;">orderId</mark>":"<mark style="color:$danger;">주문번호</mark>"},</p><p>             "content-state":{</p><p>                           "shortText":"주문확인",</p><p>                           "liveNotiTitle":"preparing",</p><p>                           "liveNotiMessage":"아메리카노 외 2건 주문이 확인되었습니다!"},</p><p>             "staleTime":"2",</p><p>             "totalSegment":"3",</p><p>             "currentSegment":"1"}',</p><p>'<mark style="color:$danger;">STOS</mark>','<mark style="color:$danger;">2001</mark>',now());</p></td></tr><tr><td>UPDATE</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret, msgtitle,msgcontents,identify,lngt_message,pmode,</p><p><mark style="color:$danger;">send_stat</mark>,senddate)</p><p>values('appkey','appsecret',</p><p>'푸시제목','푸시내용','식별자(주문번호)',</p><p>'{           "<mark style="color:$danger;">event</mark>":"<mark style="color:$danger;">update</mark>",</p><p>             "content-state":{</p><p>                           "shortText":"배달중",</p><p>                           "liveNotiTitle":"onTheWay",</p><p>                           "liveNotiMessage":"배달 중입니다. 잠시만 기다려주세요!"},</p><p>             "staleTime":"3",</p><p>             "totalSegment":"3",</p><p>             "currentSegment":"2"}',</p><p>'<mark style="color:$danger;">STOS</mark>','<mark style="color:$danger;">2001</mark>',now());</p></td></tr><tr><td>END</td><td><p>INSERT INTO AGPUSH_QUEUE(appkey,appsecret, msgtitle,msgcontents,identify,lngt_message,pmode,</p><p><mark style="color:$danger;">send_stat</mark>,senddate)</p><p>values('appkey','appsecret',</p><p>'푸시제목','푸시내용','식별자(주문번호)',</p><p>'{           "<mark style="color:$danger;">event</mark>":"<mark style="color:$danger;">end</mark>",</p><p>             "content-state":{</p><p>                           "shortText":"배달완료",</p><p>                           "liveNotiTitle":"delivered",</p><p>                           "liveNotiMessage":"배달이 완료되었습니다!"},</p><p>             "dismissTime":"3",</p><p>             "totalSegment":"3",</p><p>             "currentSegment":"3"}',</p><p>'<mark style="color:$danger;">STOS</mark>','<mark style="color:$danger;">2001</mark>',now());</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">Oracle, Tibero</mark></td><td></td></tr><tr><td>START</td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx, appkey,appsecret,msgtitle,msgcontents,identify,</p><p>lngt_message,pmode,<mark style="color:$danger;">send_stat</mark>,senddate)</p><p>values(AGPUSH_QUEUE_SEQ.NEXTVAL,'appkey',</p><p>'appsecret','푸시제목','푸시내용','식별자(주문번호)',</p><p>'{           "<mark style="color:$danger;">event</mark>":"<mark style="color:$danger;">start</mark>",</p><p>             "attributes":{</p><p>                           "<mark style="color:$danger;">orderId</mark>":"<mark style="color:$danger;">주문번호</mark>"},</p><p>             "content-state":{</p><p>                           "shortText":"주문확인",</p><p>                           "liveNotiTitle":"preparing",</p><p>                           "liveNotiMessage":"아메리카노 외 2건 주문이 확인되었습니다!"},</p><p>             "staleTime":"2",</p><p>             "totalSegment":"3",</p><p>             "currentSegment":"1"}',</p><p>'<mark style="color:$danger;">STOS</mark>','<mark style="color:$danger;">2001</mark>',now());</p></td></tr><tr><td>UPDATE</td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx, appkey,appsecret,msgtitle,msgcontents,identify,</p><p>lngt_message,pmode,<mark style="color:$danger;">send_stat</mark>,senddate)</p><p>values(AGPUSH_QUEUE_SEQ.NEXTVAL,'appkey',</p><p>'appsecret','푸시제목','푸시내용','식별자(주문번호)',</p><p>'{           "<mark style="color:$danger;">event</mark>":"<mark style="color:$danger;">update</mark>",</p><p>             "content-state":{</p><p>                           "shortText":"배달중",</p><p>                           "liveNotiTitle":"onTheWay",</p><p>                           "liveNotiMessage":"배달 중입니다. 잠시만 기다려주세요!"},</p><p>             "staleTime":"3",</p><p>             "totalSegment":"3",</p><p>             "currentSegment":"2"}',</p><p>'<mark style="color:$danger;">STOS</mark>','<mark style="color:$danger;">2001</mark>',now());</p></td></tr><tr><td>END</td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx, appkey,appsecret,msgtitle,msgcontents,identify,</p><p>lngt_message,pmode,<mark style="color:$danger;">send_stat</mark>,senddate)</p><p>values(AGPUSH_QUEUE_SEQ.NEXTVAL,'appkey',</p><p>'appsecret','푸시제목','푸시내용','식별자(주문번호)',</p><p>'{           "<mark style="color:$danger;">event</mark>":"<mark style="color:$danger;">end</mark>",</p><p>             "content-state":{</p><p>                           "shortText":"배달완료",</p><p>                           "liveNotiTitle":"delivered",</p><p>                           "liveNotiMessage":"배달이 완료되었습니다!"},</p><p>             "dismissTime":"3",</p><p>             "totalSegment":"3",</p><p>             "currentSegment":"3"}',</p><p>'<mark style="color:$danger;">STOS</mark>','<mark style="color:$danger;">2001</mark>',now());</p></td></tr></tbody></table>

<table data-header-hidden><thead><tr><th width="150"></th><th></th></tr></thead><tbody><tr><td><mark style="background-color:blue;">PostgreSQL, EDB</mark></td><td></td></tr><tr><td>START</td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx, appkey,appsecret,msgtitle,msgcontents,identify,</p><p>lngt_message,pmode,<mark style="color:$danger;">send_stat</mark>,senddate)</p><p>values(nextval('AGPUSH_QUEUE_SEQ'),'appkey',</p><p>'appsecret','푸시제목','푸시내용','식별자(주문번호)',</p><p>'{           "<mark style="color:$danger;">event</mark>":"<mark style="color:$danger;">start</mark>",</p><p>             "attributes":{</p><p>                           "<mark style="color:$danger;">orderId</mark>":"<mark style="color:$danger;">주문번호</mark>"},</p><p>             "content-state":{</p><p>                           "shortText":"주문확인",</p><p>                           "liveNotiTitle":"preparing",</p><p>                           "liveNotiMessage":"아메리카노 외 2건 주문이 확인되었습니다!"},</p><p>             "staleTime":"2",</p><p>             "totalSegment":"3",</p><p>             "currentSegment":"1"}',</p><p>'<mark style="color:$danger;">STOS</mark>','<mark style="color:$danger;">2001</mark>',now());</p></td></tr><tr><td>UPDATE</td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx, appkey,appsecret,msgtitle,msgcontents,identify,</p><p>lngt_message,pmode,<mark style="color:$danger;">send_stat</mark>,senddate)</p><p>values(nextval('AGPUSH_QUEUE_SEQ'),'appkey',</p><p>'appsecret','푸시제목','푸시내용','식별자(주문번호)',</p><p>'{           "<mark style="color:$danger;">event</mark>":"<mark style="color:$danger;">update</mark>",</p><p>             "content-state":{</p><p>                           "shortText":"배달중",</p><p>                           "liveNotiTitle":"onTheWay",</p><p>                           "liveNotiMessage":"배달 중입니다. 잠시만 기다려주세요!"},</p><p>             "staleTime":"3",</p><p>             "totalSegment":"3",</p><p>             "currentSegment":"2"}',</p><p>'<mark style="color:$danger;">STOS</mark>','<mark style="color:$danger;">2001</mark>',now());</p></td></tr><tr><td>END</td><td><p>INSERT INTO AGPUSH_QUEUE(queueidx, appkey,appsecret,msgtitle,msgcontents,identify,</p><p>lngt_message,pmode,<mark style="color:$danger;">send_stat</mark>,senddate)</p><p>values(nextval('AGPUSH_QUEUE_SEQ'),'appkey',</p><p>'appsecret','푸시제목','푸시내용','식별자(주문번호)',</p><p>'{           "<mark style="color:$danger;">event</mark>":"<mark style="color:$danger;">end</mark>",</p><p>             "content-state":{</p><p>                           "shortText":"배달완료",</p><p>                           "liveNotiTitle":"delivered",</p><p>                           "liveNotiMessage":"배달이 완료되었습니다!"},</p><p>             "dismissTime":"3",</p><p>             "totalSegment":"3",</p><p>             "currentSegment":"3"}',</p><p>'<mark style="color:$danger;">STOS</mark>','<mark style="color:$danger;">2001</mark>',now());</p></td></tr></tbody></table>

※ event : start(실시간 현황 알림 시작), update(알림 갱신), end(알림 완료).\
완료된 실시간 현황 알림은 더 이상 갱신할 수 없습니다.\
※ attributes : iOS용 옵션. 사전에 정의된 앱 내 위젯 attributes와 동일한 key를 사용해야 합니다.\
※ content-state : 공용 옵션.\
IOS는 사전에 정의된 앱 내 위젯 attributes의 content-state 영역과 동일한 key를 사용해야 합니다.\
AOS는 예시에서 보여준 세 가지 key(shortText,liveNotiTitle,liveNotiMessage)만 사용이  가능합니다.\
※ staleTime : iOS용 옵션. event:start, event:update에서만 사용. 분(minutes)단위 시간값을 입력합니다.\
수신 이후 해당 시간이 지나면 액티비티의 상태(ActivityState)가 (active)에서 (stale)로 변경됩니다.\
※ dismissTime : 공용 옵션. event:end 에서만 사용. 분(minutes)단위 값을 입력하면 수신받은 디바이스에서는\
입력한 시간이 지난 뒤 자동으로 위젯이 종료됩니다.\
※ totalSegment,currentSegment : AOS용 옵션. 실시간 현황 알림창에 직선형 진행도(1\~10)가 함께 표시됩니다.\
totalSegment는 전체 진행도, currentSegment는 전체 진행도 중 현재 단계

6\) 테이블 컬럼, 푸시 PayLoad 데이터 비교

<table><thead><tr><th width="215.33333333333331">PayLoad</th><th>테이블 컬럼</th><th>설명</th></tr></thead><tbody><tr><td><p>AOS – data.title</p><p>iOS – alert.title</p></td><td>Queue.msgtitle</td><td>메시지 제목</td></tr><tr><td><p>AOS – data.message</p><p>iOS – alert.body</p></td><td>Queue.msgcontents</td><td>발송 메시지 내용</td></tr><tr><td><p>AOS – data.badge</p><p>iOS – bodge</p></td><td><p>Queue.android_badge</p><p>Queue.ios_badge</p></td><td>배지 숫자</td></tr><tr><td><p>AOS – data.sound</p><p>iOS – sound</p></td><td><p>Queue.android_sound</p><p>Queue.ios_seound</p></td><td>사운드 이름</td></tr><tr><td><p>AOS – data.weblink</p><p>iOS – weblink</p></td><td>Queue.plink</td><td>웹링크 경로</td></tr><tr><td><p>AOS – data.key1</p><p>iOS – key1</p></td><td><p>Queue.custom_key_1</p><p>Queue.custom_value_1</p></td><td>추가적인 변수키1</td></tr><tr><td><p>AOS – data.key2</p><p>iOS – key2</p></td><td><p>Queue.custom_key_2</p><p>Queue.custom_value_2</p></td><td>추가적인 변수키2</td></tr><tr><td><p>AOS – data.key3</p><p>iOS – key3</p></td><td><p>Queue.custom_key_3</p><p>Queue.custom_value_3</p></td><td>추가적인 변수키3</td></tr><tr><td><p>AOS – data.label_code</p><p>iOS – label_code</p></td><td>Queue.label_code</td><td><p>라벨코드(콘솔)>앱관리>메시지라벨</p><p>에 설정된 값</p></td></tr><tr><td><p>AOS – data.bgcolor</p><p>iOS – bgcolor</p></td><td>Queue.bgcolor</td><td>알림 영역 배경색(#080000)</td></tr><tr><td><p>AOS – data.fontcolor</p><p>iOS – fontcolor</p></td><td>Queue.fontcolor</td><td>알림 영역 폰트색(#FBF3F3)</td></tr><tr><td><p>AOS – data.msgTag</p><p>iOS – msgTag</p></td><td>Result.msgidx</td><td>핑거푸시 메시지 번호(고유값)</td></tr><tr><td><p>AOS – data.code</p><p>iOS – code</p></td><td><p>CD:0;IM:1;WL:1;PT:(DEFT,LNGT,STOS)</p><p>CD custom_key 포함 여부 1이면 포함, IM fname 포함 여부 1이면 포함</p><p>WL link 포함 여부 1이면 포함, PT푸시 형태 DEFT(전체), LNGT(롱 텍스트, DEFT형태), STOS(개별푸시, 식별자 기반)</p></td><td></td></tr></tbody></table>

7\) 실시간 현황 알림 테이블 컬럼, 푸시 PayLoad 데이터 비교

<table><thead><tr><th width="199.33333333333331">PayLoad</th><th width="184">테이블 컬럼</th><th width="163">lngt_message 
내부 경로</th><th>설명</th></tr></thead><tbody><tr><td><p>AOS – event</p><p>iOS - event</p></td><td>Queue.lngt_message</td><td>$.event</td><td><p>실시간 현황 푸시 유형</p><p>(start, update, end)</p></td></tr><tr><td>iOS - attributes</td><td>Queue.lngt_message</td><td>$.attributes</td><td>앱의 attributes 영역값(JSON)</td></tr><tr><td>iOS - content-state</td><td>Queue.lngt_message</td><td>$.content-state</td><td>앱의 attributes.content-state 영역값(JSON)</td></tr><tr><td>AOS – shortText</td><td>Queue.lngt_message</td><td><p>$.content-state</p><p>.shortText</p></td><td><p>상단 알림바에 출력되는 </p><p>문구</p></td></tr><tr><td>AOS – liveNotiTitle</td><td>Queue.lngt_message</td><td><p>$.content-state</p><p>.liveNotiTitle</p></td><td>실시간 현황 알림 제목</td></tr><tr><td>AOS – liveNotiMessage</td><td>Queue.lngt_message</td><td><p>$.content-state</p><p>.liveNotiMessage</p></td><td>실시간 현황 알림 내용</td></tr><tr><td>iOS – stale-date</td><td>Queue.lngt_message</td><td>$.staleTime</td><td><p>iOS 액티비티 최신여부 </p><p>판단기준<br>(발송시간 n분 이후)</p></td></tr><tr><td><p>AOS – dismissTime</p><p>iOS – dismissal-date</p></td><td>Queue.lngt_message</td><td>$.dismissTime</td><td>iOS 액티비티 종료시간<br>(발송시간 n분 이후)</td></tr><tr><td>AOS - totalSegment</td><td>Queue.lngt_message</td><td>$.totalSegment</td><td><p>AOS 현황 알림 </p><p>전체 진행도(1~10)</p></td></tr><tr><td>AOS - currentSegment</td><td>Queue.lngt_message</td><td>$.currentSegment</td><td><p>AOS 현황 알림 </p><p>현재 진행도(1~10)</p></td></tr></tbody></table>

## 푸시 발송 통계 조회

발송 결과는 핑거푸시 사용자 콘솔에서 확인이 가능합니다.

#### 사용자 콘솔 로그인&#x20;

![](/files/CLMqWcaH32yQpABNQbVC)

#### **앱 선택**

현재 테스트 중인 혹은 개발 중인 앱의 발송이력을 선택합니다.

<figure><img src="/files/erOfMET1xyqtEFtJZdDv" alt=""><figcaption></figcaption></figure>

**발송이력 > 타겟 푸시 선택**&#x20;

식별자를 이용한 메시지는 '타겟 푸시' 목록에 저장됩니다.

<figure><img src="/files/6uCfcg1GLL3qHC1w5Njd" alt=""><figcaption></figcaption></figure>

#### **푸시 발송 리포트 화면**

<figure><img src="/files/Zy1uOAMLGJU5hb5U1xAW" alt=""><figcaption></figcaption></figure>

#### 실시간 현황 발송 리포트 화면

<figure><img src="/files/iHmjE7wLUrsCw8nhVtzr" alt=""><figcaption></figcaption></figure>
