Kakao i Connect Message::BizMessage(KOR)::Agent 설치 방식

페이지 이동경로

BizMessage Agent

디케이테크인의 Kakao i BizMessage 서비스는 최종 사용자에게 알림톡, 친구톡, SMS, LMS, MMS, RCS, 네이버톡톡 등을 전송할 수 있는 시스템입니다. Kakao i BizMessage 서비스는 BizMessage Agent 설치 방식 혹은 BizMessage API 호출 방식으로 구현할 수 있습니다. 이 문서에서는 BizMessage Agent 설치를 통한 시스템 설치 및 설정 사항을 설명합니다.

안내
BizMessage 서비스를 사용하기 위해서는 별도의 서비스 계약이 필요합니다. 계약 방법 및 서비스 이용 절차에 대한 자세한 설명은 BizMessage(KOR) 문서를 참고하시기 바랍니다.

시스템 권장 사양

BizMsgAgent 설치 및 서버 운영을 위해서는 다음의 시스템 사양이 필요합니다.

구분 사양
서버 운영체제 Windows, Linux, AIX, Solaris 지원
- Java 1.8 이상이 설치될 수 있는 운영체제
서버 운영 환경 Java 1.8 이상
서버 최소 스펙 하루 100만건 발송량 기준 최소 스펙
- CPU 2Core
- RAM 2GB
- HDD 20GB
지원 가능 DBMS - ORACLE: 10g 이상
- MSSQL: Microsoft SQL Server 2012 이상
- MySQL: 5 이상
- DB2: ver 9.7 이상, pagesize 32 k 이상
- PostgreSQL: 9.X 이상
- TIBERO: 5 이상
- Sybase: ASE 12.5 이상

BizMessage Agent 설치

BizMessage Agent의 설치 순서는 다음과 같습니다.

Step 1. 방화벽 오픈하기

BizMsgAgent는 TCP/IP 소켓 통신을 통해 안정적인 발송 요청과 결과 데이터를 수신합니다. 통신 시 보안은 RSA 및 AES128 암호화를 준수하며, dk techin 메시지 중계 서버와의 통신을 위해 Agent 설치 전 영업 담당자에게 TCP/IP 방화벽 오픈을 요청해야 합니다. 이때 서비스 종류와 보안 등급에 따라 전용선 혹은 인터넷망을 사용할 수 있습니다. 다음 정보를 참고하여, 방화벽에서 포트번호와 IP 주소를 오픈하시기 바랍니다.

BizMessage 서버 정보

BizMessage 서버는 운영스테이징으로 구분됩니다.

  • 운영 서버는 실제 고객에게 메시지를 발송하는 목적으로 적합하며, 발송 메시지 건수에 제한이 없고, 과금이 됩니다.
  • 스테이징 서버는 소량의 메시지를 테스트하는 목적으로 적합하며, 발송 메시지 건수에 제한이 있고, 과금이 되지 않습니다. 하지만 스테이징 서버에서 메시지를 발송하더라도 실제 메시지가 발송되므로, 메시지 오발송에 주의가 필요합니다. 스테이징 서버에서 전송할 수 있는 메시지 제한 개수는 계약 조건에 따라 다를 수 있습니다.
BizMessage 서버 정보
구분 VIP(Virtual IP) 망 유형 PORT/역할
운영 일반
210.109.141.240
일반 7000
메시지 전송 포트
7001
결과 수신 포트
금융권
210.109.10.120
전용 회선 7000
메시지 전송 포트
7001
결과 수신 포트
증권
210.109.10.119
전용 회선 7000
메시지 전송 포트
7001
결과 수신 포트
공공 기관
- 작업 진행 중
전용 회선 7000
메시지 전송 포트
7001
결과 수신 포트
스테이징 일반
210.109.141.242
일반 7000
메시지 전송 포트
7001
결과 수신 포트
금융권
210.109.10.100
전용 회선 7000
메시지 전송 포트
7001
결과 수신 포트
증권
210.109.10.101
전용 회선 7000
메시지 전송 포트
7001
결과 수신 포트
공공기관
- 작업 진행 중
전용 회선 7000
메시지 전송 포트
7001
결과 수신 포트
주의
스테이징 서버는 카카오 운영 서버와 연동되어 있어 실제 메시지가 발송되므로, 메시지 오발송에 주의하시기 바랍니다.

Step 2. 모듈 압축 해제하기

BizMsgAgent는 Java 애플리케이션으로, 설치 파일 형태로 제공됩니다. 설치 파일을 원하는 경로에 복사 후 압축을 해제하면 설치가 완료됩니다. 설치 후에는 다음의 디렉터리가 생성됩니다.

디렉터리 역할
디렉터리 하위 디렉터리 설명
KepAgent bin 시작/종료 스크립트 관련 디렉터리
conf 환경 설정 관련 디렉터리
logs 로그 디렉터리(실행 시 생성)
libs 라이브러리 디렉터리

Step 3. 환경 설정하기(agent.ini)

${app_home}/conf/agent.ini 경로로 이동 후, 다음을 참고하여 agent.ini 파일의 섹션별 환경 설정을 수행합니다.

공통 설정 섹션

계정 설정을 아래와 같이 설정합니다.

코드예제agent.ini

[AGENT]
client_id=TEST0001
agent_id=TEST0001001
agent_type=AT         # (AT: 알림톡, FT: 친구톡 , RCS: RCS, XMS: SMS/LMS/MMS 발송 전용, NAVER: 네이버톡톡)
at_type=PUSH            # 알림톡 결과 수신 방식(PUSH, POLLING)

[GW_INFO]
rx_ip= {발송 서버 IP}
rx_port=7001
tx_ip= {수신 서버 IP}
tx_port=7000

agent.ini
파라미터 필수 여부 설명
client_id 필수 계약 시 발급받은 클라이언트 ID
agent_id 필수 계약 시 발급받은 에이전트 ID
agent_type 필수 발송할 메시지 유형
AT: 알림톡
FT: 친구톡
RCS: RCS
XMS: SMS/LMS/MMS
NAVER: 네이버톡톡
at_type 선택 알림톡 사용 시 사용할 결과 수신 방식
PUSH: 푸시 방식
POLLING: 폴링 방식
rx_ip 필수 발송 서버 IP
rx_port 필수 발송 포트
- 기본값: 7001
tx_ip 필수 수신 서버 IP
tx_port 필수 수신 포트
- 기본값: 7000

DBMS 섹션

데이터베이스 종류에 따라 agent.ini 파일의 DBMS 섹션을 다음과 같이 설정합니다.

Oracle

코드예제Oracle

[DBMS]
type=oracle
user={agent_username}
password={agent_password}
schema={AGENT_SCHEMA}     # 스키마명 (오라클에서는 schema명을 대문자로 기입)
minimumIdle=10                    # DB 연결 최소 개수
maximumPoolSize=20          # DB 연결 최대 개수
url=jdbc:oracle:thin:@127.0.0.1:1521/ORCL

#failover 연결
#url=jdbc:oracle:thin:@(DESCRIPTION=(FAIL_OVER=ON)(LOAD_BALANCE=off)(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.1) (PORT=3000))(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.2) (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)))

Oracle
파라미터 필수여부 설명
type 필수 DBMS 유형
- oracle로 고정
user 필수 고객사 데이터베이스의 계정
password 필수 고객사 데이터베이스 계정의 비밀번호
schema 필수 스키마명
- 영문 대문자로 기입
minimumIdle 필수 DB 연결 최소 개수
- 기본값: 10
maximumPoolSize 필수 DB 연결 최대 개수
- 기본값: 20
url 필수 오라클의 DB 접속 정보
- 기본값: jdbc:oracle:thin:@127.0.0.1:1521/ORCL

MSSQL

코드예제MSSQL

[DBMS]
type=mssql
user={sa}
password={sapassword}
schema={dbo}                         # 스키마명 ( DB 기본 권한 dbo )
minimumIdle=10                  # DB 연결 최소 개수
maximumPoolSize=20        # DB 연결 최대 개수
url=jdbc:sqlserver://127.0.0.1:1433;databaseName=AGENT

MSSQL
파라미터 필수여부 설명
type 필수 DBMS 유형
- mssql로 고정
user 필수 고객사 데이터베이스의 계정
password 필수 고객사 데이터베이스 계정의 비밀번호
schema 필수 스키마명(DB 기본 권한 DBO)
minimumIdle 필수 DB 연결 최소 개수
- 기본값: 10
maximumPoolSize 필수 DB 연결 최대 개수
- 기본값: 20
url 필수 MSSQL URL
- 기본값: jdbc:sqlserver://127.0.0.1:1433;databaseName=AGENT

MySQL

코드예제MySQL

[DBMS]
type=mysql
user={testuser}
password={testpassword}
schema={agent}                    # 스키마명 ( 데이터베이스명 )
minimumIdle=10                  # DB 연결 최소 개수
maximumPoolSize=20        # DB 연결 최대 개수
url=jdbc:mysql://localhost:3306/agent?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true

MySQL
파라미터 필수여부 설명
type 필수 DBMS 유형
- mysql로 고정
user 필수 고객사 데이터베이스의 계정
password 필수 고객사 데이터베이스 계정의 비밀번호
schema 필수 스키마명(데이터베이스명)
minimumIdle 필수 DB 연결 최소 개수
- 기본값: 10
maximumPoolSize 필수 DB 연결 최대 개수
- 기본값: 20
url 필수 MySQL URL
- 기본값: jdbc:mysql://localhost:3306/agent?useSSL=false&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true

DB2

코드예제DB2

[DBMS]
type=db2
user=db2inst
password=db2instpass
schema=AGENT                          # 스키마명 ( 데이터베이스 명 )
minimumIdle=10                     # DB 연결 최소 개수
maximumPoolSize=20           # DB 연결 최대 개수
url=jdbc:db2://localhost:50000/AGENT

DB2
파라미터 필수여부 설명
type 필수 DBMS 유형
- db2로 고정
user 필수 고객사 데이터베이스의 계정
password 필수 고객사 데이터베이스 계정의 비밀번호
schema 필수 스키마명(데이터베이스 명)
minimumIdle 필수 DB 연결 최소 개수
- 기본값: 10
maximumPoolSize 필수 DB 연결 최대 개수
- 기본값: 20
url 필수 DM2 URL
- 기본값: jdbc:db2://localhost:50000/AGENT

TIBERO

코드예제TIBERO

[DBMS]
type=tibero
user=tuser
password=tpassword
schema=AGENT                          # 스키마명
minimumIdle=10                     # DB 연결 최소 개수
maximumPoolSize=20           # DB 연결 최대 개수
url=jdbc:tibero:thin:@127.0.0.1:8629:tibero

TIBERO
파라미터 필수여부 설명
type 필수 DBMS 유형
- tibero로 고정
user 필수 고객사 데이터베이스의 계정
password 필수 고객사 데이터베이스 계정의 비밀번호
schema 필수 스키마명
minimumIdle 필수 DB 연결 최소 개수
- 기본값: 10
maximumPoolSize 필수 DB 연결 최대 개수
- 기본값: 20
url 필수 TIBERO URL
- 기본값: jdbc:tibero:thin:@127.0.0.1:8629:tibero

PostgreSQL

코드예제PostgreSQL

[DBMS]
type=postgresql
user=postgres
password=ppassword
schema=public                           # 스키마명
minimumIdle=10                        # DB 연결 최소 개수
maximumPoolSize=20               # DB 연결 최대 개수
url=jdbc:postgresql://127.0.0.1:5432/postgres

PostgreSQL
파라미터 필수여부 설명
type 필수 DBMS 유형
- postgresql로 고정
user 필수 고객사 데이터베이스의 계정
password 필수 고객사 데이터베이스 계정의 비밀번호
schema 필수 스키마명
minimumIdle 필수 DB 연결 최소 개수
- 기본값: 10
maximumPoolSize 필수 DB 연결 최대 개수
- 기본값: 20
url 필수 PostgreSQL URL
- 기본값: jdbc:postgresql://127.0.0.1:5432/postgres

Sybase

코드예제Sybase

[DBMS]
type=sybase
user=agent
password=agentpassword
schema=dbo                                     # 스키마명
minimumIdle=10                           # DB 연결 최소 개수
maximumPoolSize=20                 # DB 연결 최대 개수
url=jdbc:postgresql://127.0.0.1:5432/postgres

Sybase
파라미터 필수여부 설명
type 필수 DBMS 유형
- sybase로 고정
user 필수 고객사 데이터베이스의 계정
password 필수 고객사 데이터베이스 계정의 비밀번호
schema 필수 스키마명
minimumIdle 필수 DB 연결 최소 개수
- 기본값: 10
maximumPoolSize 필수 DB 연결 최대 개수
- 기본값: 20
url 필수 Sybase URL
- 기본값: jdbc:postgresql://127.0.0.1:5432/postgres

TABLE 섹션

메시지 발송을 위한 테이블의 기본 환경 설정 변경 시 다음의 형식을 참고하여 agent.ini 파일을 수정합니다. TABLE 섹션에서 =의 우측 값은 기본값이며, 수정할 수 있습니다.

코드예제TABEL 섹션

[TABLE]
# Sybase, PostgreSQL은 테이블명을 모두 소문자로 지정해야 하며, 그 외 DBMS는 대문자로 작성합니다.
# 발송 요청과 결과 테이블을 하나로 사용할 경우, 요청 테이블명과 결과 테이블명을 동일하게 입력합니다.

# 시퀀스명(MySQL은 auto_increment, Sybase와 MSSQL은 identity를 사용하기 위해 이름 입력 필요)
alimtalk_sequence=seq_k

# 알림톡 발송 요청 테이블
alimtalk_message=k_message

# 알림톡 발송 결과 테이블
alimtalk_messagelog=k_message_log

# 위 시퀀스와 동일
ftalk_sequence=seq_f

# 친구톡 발송 요청 테이블
ftalk_message=k_f_message

# 친구톡 발송 결과 테이블
ftalk_message_log=k_f_message_log

# RCS 발송 요청 테이블
rcs_message=k_rcs_message

# RCS 발송 결과 테이블
rcs_message_log=k_rcs_message_log

# XMS 테이블의 PK 시퀀스
xms_sequence=SEQ_XMS_MESSAGE

# XMS 발송 테이블
xms_message=XMS_MESSAGE

# XMS 로그 테이블
xms_message_log=XMS_MESSAGE_LOG

# XMS 이미지 테이블
xms_contents=XMS_MESSAGE_CONTENTS

# 네이버 테이블의 PK 시퀀스
naver_sequence=SEQ_NAVER_MESSAGE

# 네이버 발송 테이블
naver_message=NAVER_MESSAGE8

# 네이버 로그 테이블
naver_message_log=NAVER_MESSAGE_LOG8

# DB별로 테이블 생성을 위한 별도 스크립트가 필요함
createTable=true

# 로그 테이블을 월별로 생성할지 여부
logDivision=true

# 발송 요청과 결과 테이블이 동일할 때, 로그 테이블을 하나로 사용할 경우 해당 일수만큼 지난 데이터는 삭제 처리, 일단위
logDataDelete=10

# 발송 서비스에서 1회 조회 시 조회 건수 설정(defaut : 1000건)
at_fetch_count=1000
at_img_fetch_count=100
ft_fetch_count=1000
ft_img_fetch_count=100
rcs_fetch_count=1000
rcs_img_fetch_count=100
xms_fetch_count=1000
xms_img_fetch_count=100
naver_fetch_count=1000

테이블 설명

에이전트는 데이터베이스를 바탕으로 동작하는 프로그램이므로 테이블 및 데이터 관리가 중요합니다. 에이전트에서 사용하는 테이블에 대한 설명은 다음과 같습니다.

테이블 설명
테이블명 필수 여부 설명
K_MESSAGE 필수 알림톡, SMS/LMS/MMS 전송 요청 테이블
K_MESSAGE_LOG 선택 알림톡, SMS/LMS/MMS 로그 테이블
- 알림톡 발송 후 처리가 완료된 데이터가 저장되는 테이블
- 설정에 따라 월, 년, 단일 테이블로 구성
SEQ_K_MESSAGE 선택 테이블 시퀀스
F_MESSAGE 필수 친구톡 전송 요청 테이블
F_MESSAGE_LOG 선택 친구톡 로그 테이블
- 친구톡 발송 후 처리가 완료된 데이터가 저장되는 테이블
- 설정에 따라 월, 년, 단일 테이블로 구성
SEQ_F_MESSAGE 필수 테이블 시퀀스
RCS_MESSAGE 필수 RCS 전송 요청 테이블
RCS_CONTENTS 필수 RCSMMS 콘텐츠 관리 테이블
- RCSMMS를 발송하기 위해서는 이미지를 미리 업로드하여 승인을 받은 후 발송 가능
RCS_MESSAGE_LOG 선택 RCS 로그 테이블
- RCS 발송 후 처리가 완료된 데이터가 저장되는 테이블
- 설정에 따라 월, 년, 단일 테이블로 구성
SEQ_RCS_MESSAGE 선택 테이블 시퀀스
K_BLACK_LIST 선택 메시지 발송 수신 거부 테이블
- 수신 거부로 등록된 고객의 수신 번호를 입력하면 해당 번호 데이터는 발송하지 않음
K_AGENT 선택 에이전트 HA 구성 테이블
- 에이전트를 HA 구성시 상태를 관리하는 테이블
XMS_MESSAGE 필수 SMS/LMS/MMS 발송 전용 테이블
XMS_MESSAGE_LOG 선택 SMS/LMS/MMS 발송 로그 테이블
NAVER_MESSAGE 필수 네이버톡톡 전송 요청 테이블
NAVER_MESSAGE_LOG 선택 네이버톡톡 로그 테이블
- 네이버톡톡 발송 후 처리 완료된 데이터가 저장되는 테이블
- 설정에 따라 월, 년, 단일 테이블로 구성
SEQ_NAVER_MESSAGE 선택 테이블 시퀀스

HA 섹션(선택)

[HA] 섹션은 Agent의 서버 이중화 구성을 위한 Active – Standby 설정 시 사용합니다.

코드예제HA 섹션

[HA]
#HA 사용 여부 (default=false)
ha_use=false

# sybase, postgresql은 테이블명을 모두 소문자로 지정하며, 그 외 DBMS는 대문자로 작성
ha_table_name=k_agent

# M : master, S : slave
ha_agent_type=M

# Active – Stanby
에이전트 이중화 체크 시간(초)
ha_timeout_sec=60

HA 섹션
파라미터 필수여부 설명
ha_use 필수 HA(High Availability) 사용 여부
true: HA 사용
false: HA를 사용하지 않음
ha_table_name 필수 테이블명
- Sybase, Postgresql은 영문 소문자로 작성
- 그 외 DBMS는 영문 대문자로 작성
ha_agent_type 필수 HA 에이전트 타입
M(기본값): 마스터
S: 슬래이브
ha_timeout_sec 필수 에이전트 이중화 체크 시간(단위: 초)
- 기본값: 60

FILE_DEL 섹션

[File_DEL] 섹션은 데이터 전송을 위한 임시 파일 삭제 시 사용합니다.

코드예제FILE_DEL 섹션

[FILE_DEL]
#에이전트에서 생성되는 파일에 대해서 기준일 이후는 삭제처리, 일 기준
log=4

FILE_DEL 섹션
파라미터 필수여부 설명
log 필수 에이전트에서 생성되는 파일에 대해서 기준일 이후 삭제 처리(단위: 일)
- 기본값: 4

JOB_EXPIRED 섹션

[JOB_EXPIRED] 섹션은 메시지 발송 시 유효 시간을 설정할 때 사용합니다.

코드예제JOB_EXPIRED 섹션

[JOB_EXPIRED]
#1440 : 1day

#단건 발송 유효시간, 분 기준 (예약시간 기준으로 해당 시간 이내 건만 발송)
small_fetch_expired_min=1440

#대량 발송 유효시간, 분 기준 (예약시간 기준으로 해당 시간 이내 건만 발송)
large_fetch_expired_min=1440

JOB_EXPIRED 섹션
파라미터 필수여부 설명
small_fetch_expired_min 필수 단건 발송 유효시간으로 예약 시간 기준 해당 시간 이내 건만 발송(단위: 분)
- 기본값: 1440
large_fetch_expired_min 필수 대량 발송 유효시간으로 예약 시간 기준 해당 시간 이내 건만 발송(단위: 분)
- 기본값: 1440

White List 섹션(선택)

[WHITE_LIST] 섹션은 mobile_no에 입력된 전화번호에 한해 데이터를 발송 시 사용합니다.

코드예제White List 섹션

[WHITE_LIST]
#사용 유무
use=false
# 등록된 번호에 한해 메시지를 전송
mobile_no=01999999999,09999999999

White List 섹션
파라미터 필수여부 설명
use 필수 화이트 리스트 기능 사용 유무
true: 화이트 리스트 기능을 사용
false(기본값): 화이트 리스트 기능을 사용 안 함
mobile_no 필수 등록된 번호에 한해 메시지를 전송
- 기본값: 01999999999,09999999999

Black List 섹션(선택)

[BLACK_LIST] 섹션은 블랙리스트를 DB 테이블로 관리하기 위한 기능으로 DB 테이블에 등록된 전화번호를 발송하지 않을때 사용합니다.

코드예제Black List 섹션

[BLACK_LIST]
#사용 유무
use=false
#블랙리스트 DB테이블명
blacklist_table=K_BLACKLIST

Black List 섹션
파라미터 필수여부 설명
use 필수 블랙리스트 기능 사용 유무
true: 블랙리스트를 사용
false(기본값): 블랙리스트를 사용 안 함
blacklist_table 필수 블랙리스트 DB 테이블명
- 기본값: K_BLACKLIST

Server IP 섹션

[SERVER_IP] 섹션은 에이전트가 설치된 서버 장비의 IP 확인을 위해 사용합니다. 계약 시 설정한 IP를 기입해야 합니다.

코드예제Server IP 섹션

[SERVER_IP]
#에이전트가 설치된 서버의 IP
ip=127.0.0.1

Server IP 섹션
파라미터 필수여부 설명
ip 필수 에이전트가 설치된 서버의 IP
- 기본값: 127.0.0.1

Custom Column 섹션(선택)

Custom Column 섹션은 고객이 테이블에 칼럼을 추가하여 사용하는데 필요한 섹션으로, 다음의 파라미터로 구성됩니다.

코드예제Custom Column 섹션

[CUSTOM_CULOMN]
#고객사에서 임의로 추가가 필요한 칼럼이 있을 때 추가하여 사용

#테이블 생성시 칼럼 추가
#create=CUST_1 TYPE VARCHAR(1) DEFAULT 'X' NOT NULL , CUST_2 VARCHAR(1) DEFAULT 'N' NOT NULL

#발송 요청 테이블에서 결과 테이블로 이관 시 select 칼럼 추가
#select=CUST_1, CUST_2

Custom Column 섹션
파라미터 필수여부 설명
create 필수 기본 테이블에 추가 칼럼이 필요한 경우 사용
- 여러 개 입력 시 콤마(,)로 구분
- EX_COL VARCHAR(1000) 등으로 입력
- 기존 테이블이 존재(발송 요청 테이블, 발송 결과 테이블)할 경우, 수동으로 두 개의 테이블을 모두 DROP 하고 에이전트를 재실행하거나, 수동으로 두 개의 테이블에 추가 칼럼을 ALTER로 생성 필요
select 필수 커스텀 칼럼이 추가 되었을 경우 추가된 칼럼을 메시지 결과 수신 시 인지하기 위하여 사용
- EX_COL1, EX_COL2와 같이 칼럼 명만 지정

Code Mapping 섹션(선택)

결과코드를 고객사의 코드로 매핑하기 위한 기능을 제공합니다. 매핑하려는 각각의 코드를 |로 구분하여 #{결과코드}|#{매핑하려는 고객사 결과코드} 형식으로 작성합니다.

코드예제Code Mapping 섹션

# 결과 코드 매핑 기능 설정 (사용: true, 미사용: false)
[CODE_MAPPING]
# 메시지 타입별 커스텀 결과 코드 사용 여부
alimtalk_code_mapping_use=false
sms_code_mapping_use=false
rcs_code_mapping_use=false
naver_code_mapping_use=false

Code Mapping 섹션
파라미터 설명
alimtalk_code_mapping_use 알림톡 커스텀 결과 코드 사용 여부
false(기본값): 사용하지 않음
true: 사용함
true로 설정 시, 입력 예시
${AGENT_HOME}/conf/mapping/alimtalk_code_mapper.txt
[ALIMTALK_CODE_MAPPING]
#{결과코드}|#{고객사 결과코드}
API_200|SUCC
API_201|FAIL
API_999|999
sms_code_mapping_use SMS 커스텀 결과 코드 사용 여부
false(기본값): 사용하지 않음
true: 사용함
true로 설정 시, 입력 예시
${AGENT_HOME}/conf/mapping/sms_code_mapper.txt
[SMS_CODE_MAPPING]
#{결과코드}|#{고객사 결과코드}
API_200|SUCC
API_201|FAIL
API_999|999
rcs_code_mapping_use RCS 커스텀 결과 코드 사용 여부
false(기본값): 사용하지 않음
true: 사용함
true로 설정 시, 입력 예시
${AGENT_HOME}/conf/mapping/rcs_code_mapper.txt
[SMS_CODE_MAPPING]
#{결과코드}|#{고객사 결과코드}
API_200|SUCC
API_201|FAIL
API_999|999
naver_code_mapping_use 네이버톡톡 커스텀 결과 코드 사용 여부
false(기본값): 사용하지 않음
true: 사용함
true로 설정 시, 입력 예시
${AGENT_HOME}/conf/mapping/naver_code_mapper.txt 
[NAVER_CODE_MAPPING]
#{결과코드}|#{고객사결과코드}
API_200|SUCC
API_201|FAIL
API_999|999

Step 4. 서버 OS 설정하기

서버 OS별 설정 방법은 다음과 같습니다.

Windows 계열

Windows 계열의 서버 환경 설정을 위해서 다음의 경로로 이동하여 환경 설정 작업을 수행합니다.

  1. ${app_home}/bin 경로로 이동한 후, kakaoAgent.xml 파일에서 환경 설정을 수행합니다. * {app_home}에는 에이전트가 설치된 경로를 입력합니다.

    코드예제kakaoAgent.xml 구성

    <?xml version="1.0" encoding="UTF-8"?>
    <service>
      <!-- 에이전트가 설치된 절대경로 -->
      <env name="AGENT_HOME" value="C:\PushAgent\C1A1-at"/>
    
      <!-- jdk 설치 절대 경로 -->
      <env name="JAVA_HOME" value="C:\java\jdk1.8.0_45"/>
    
      <env name="ENCODING" value="UTF-8"/>
      <env name="OS_NAME" value="WINDOW"/>
      <env name="XMS" value="-Xms256m"/>
      <env name="XMX" value="-Xmx256m"/>
    
      <env name="GC_CONF1" value=""-XX:+UseParallelGC -XX:PermSize=128M -XX:MaxPermSize=128M -XX:NewSize=256M    -XX:MaxNewSize=256M "/>
      <env name="GC_CONF2" value="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath"/>
    
      <!-- 에이전트명 고객사 맞게 변경 가능 -->
      <id>KakaoPush</id>
    
      <!-- 윈도우 서비스에 등록할 이름 고객사 맞게 변경 가능 -->
      <name>KakaoPush</name>
      <description>Kakao Alimtalk/Friendtalk Push Windows Service</description>
    <executable>%JAVA_HOME%\bin\java</executable>
    <arguments> -server %XMS% %XMX% -Dfile.encoding=%ENCODING% -Dos.name=%OS_NAME% -DAGENT_HOME=%AGENT_HOME% %GC_CONF1% %GC_CONF2%=%AGENT_HOME% -jar %AGENT_HOME%\kakaoAgent.jar start</arguments>
    <logmode>none</logmode>
    <startmode>Automatic</startmode>
    </service>
    

  2. ${app_home}/bin/kakaoAgent.exe를 실행합니다.

  3. 서비스 등록을 위해 관리자 권한으로 ${app_home}/bin/service.bat을 실행합니다.

    안내
    만약 kakaoAgent.xml이 수정된 경우 등록된 서비스를 삭제한 후 재등록하시기 바랍니다.

    관리자 권한으로 실행 그림관리자 권한으로 실행

    서비스 등록
    구분 설명
    0 종료
    1 윈도우 서비스 등록
    2 윈도우 서비스 제거
  4. Windows의 Services로 이동하여 KakaoPush가 등록되었는지 확인합니다.

KakaoPush 등록 확인 그림KakaoPush 등록 확인

Unix 계열

Unix 계열의 환경 설정을 위해서는 다음의 경로로 이동하여 환경 설정 작업을 수행합니다.

  1. ${app_home}/bin/env.sh로 이동하여 다음과 같이 환경 설정을 수행합니다.

    코드예제env.sh 구성

    #!/bin/sh
    
    #실행 시 프로세스 명
    SERVER_NAME="KAKAO_AGENT"
    
    #에이전트 설치 절대 경로
    AGENT_HOME="/Users/agent_at"
    
    #jdk 설치 절대 경로
    JAVA_HOME="/Usr/bin/"
    
    ENCODING="UTF-8"
    XMS="-Xms256m"
    XMX="-Xmx256m"
    GC_CONF1=""-XX:+UseParallelGC -XX:PermSize=128M -XX:MaxPermSize=128M -XX:NewSize=256M -XX:MaxNewSize=256M"
    GC_CONF2="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath"
    
    #에이전트를 실행할 시스템 사용자 명
    SETUSER="root"
    
    RUNNER=`whoami`
    ….
    

  2. 서비스의 실행이나 종료 시 다음의 명령어를 실행합니다.

    • Agent 실행 및 종료를 위해서는 chmod 755 권한이 필요합니다.

    Agent 실행 및 종료 그림Agent 실행 및 종료

    서비스 등록
    구분 설명
    start.sh 프로세스 실행
    stop.sh 프로세스 종료
  3. app_home 디렉터리에서 서비스 로그를 확인합니다.

    서비스 로그 확인 그림서비스 로그 확인

    서비스 로그
    로그명 설명
    logs/${yyyy} yyyy/mm 폴더에 각 날짜별로 log 파일 이관
    logs/start.log 실행 로그
    logs/err.log 에러 로그
    logs/job.log Job 동작 로그
이 문서가 만족스러운 이유를 알려주세요.
이 문서에 아쉬운 점을 알려주세요.
평가해주셔서 감사합니다.

더 자세한 의견은 contact.dkt@kakaocorp.com 으로 제보해주세요.