46
3. xit mms 사용 전 사전작업
gitea-관리자 edited this page 3 months ago
1. 업무 프로젝트에 라이브러리 추가
업무 프로젝트의 pom.xml 파일에 xit-mms라이브러리 의존성을 추가합니다.
<dependency>
<groupId>cokr.xit.interfaces</groupId>
<artifactId>xit-mms</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
2. nuri2설정을 xit-mms라이브러리에서 사용하는 설정에 맞추어 수정
nuri2.conf 파일을 텍스트편집기로 열어서 다음과 같이 수정합니다.
수정 후 nuri2모듈(nuri2.jar)을 실행하면 수정한 대로 테이블을 생성하고 사용자정의 컬럼이 생성됩니다.
2-1. nuri2에서 생성하는 테이블의 이름을 xit-mms에서 사용하는 테이블명으로 수정
db_table_name.NRMSG_DATA = nuri2_nrmsg_data
db_table_name.NRMSG_LOG = nuri2_nrmsg_log
db_table_name.NRMSG_RSLT = nuri2_nrmsg_rslt
db_table_name.NRMSG_DUPLEX = nuri2_nrmsg_duplex
2-2. xit-mms에서 추가로 정의한 사용자 정의 컬럼을 추가합니다.
발송요청등록일시, 발송예약일시, 발송요청드발송요청시스템, 발송목적, 상세발송목적, 시군구코드, 업무구분코드, 요청자IP
db_field = INPUT_DT varchar(14)
db_field = RES_DT varchar(14)
db_field = REQ_SYS varchar(2)
db_field = MSG_PRPS varchar(2)
db_field = MSG_DTL_PRPS varchar(100)
db_field = SGG_CD varchar(5)
db_field = TASK_SE_CD varchar(3)
db_field = DMND_IP varchar(50)
2-3. 기타 설정 수정
예약 발송 기능 사용시 최대 예약 가능 시간을 수정합니다.(기본값은 3시간)
예시) 예약 발송을 최대 5일(120)로 설정
before_time = 120
3. DBMS 작업
3-1. xit-mms와 nuri2에서 사용할 공통코드 추가
MSG001 : 메시지 상태값
NURI2 모듈에서 사용되는 메시지 발송 상태값입니다.
- 1 : 전송 대기
- 3 : 전송 수집 중
- 5 : 전송 완료
- 6 : 결과처리 회신
MSG002 : 결과처리된 메시지 유형
NURI2 모듈에서 사용되는 메시지 발송 결과처리 유형입니다.
- ALT : 카카오 알림톡 메시지
- MMS : 장문, 멀티 메시지
- RCS : 이통사 차세대 메시지
- SMS : 단문 메시지
MSG003 : 메시지 설정 정보 유형
xit-mms의 문자발송설정테이블(TB_MSG_STNG)에서 사용하는 설정 정보의 유형입니다. (3-2-2 를 참조하세요.)
- 01 : 문자전송모듈관리ID
국가정보자원관리원과 협의한 기관이 연계시 입력하는 파라미터입니다.(발송요청테이블의 SUB_ID컬럼에 입력하는 값) - 02 : 템플릿
문자전송시 사용할 텍스트 템플릿입니다. - 03 : 앱,RCS 사용자 고유키
카카오의 경우 채널별로 사용할 키 값입니다. RCS의 경우 브랜드별로 사용할 키 값입니다. - 04 : 송신 전화번호
- 05 : 메시지 서비스 우선순위
카카오알림톡과 RCS를 모두 사용할 수 있을 때 어느 서비스로 먼저 발송할 지에 대한 설정입니다.
MSG004 : 메시지 서비스 유형
발송 서비스 유형 3가지 입니다.
- ALT : 카카오알림톡
- RCS : RCS
- XMS : 기본문자전송
MSG005 : 문자발송 요청 시스템
문자발송을 요청한 사용자나 시스템을 코드화한 값입니다. 각 프로젝트에 맞게 설정하시면 됩니다.
예시)
- 01 : 엑스아이티
- 02 : 진우소프트
- 03 : 이노씨엔에스
MSG006 : 문자발송 목적
문자발송의 목적을 코드화한 값입니다. 각 프로젝트에 맞게 설정하시면 됩니다.
예시)
- 01 : 주정차위반단속
- 02 : 이동주차 안내(단속기)
- 03 : 이동주차 안내
- 04 : 고장신고접수
- 05 : 화재의심경고
- 06 : 화재발생경고
MSG007 : 문자발송 상태
문자발송현황 화면에서 조회조건으로 사용할 공통코드입니다.
- 01 : 미전송
- 02 : 성공
- 03 : 처리중
- 04 : 실패
3-2. 문자발송 설정 테이블(TB_MSG_STNG) 추가 및 설정정보 등록
3-2-1. 테이블 생성 DDL
CREATE TABLE `tb_msg_stng` (
`MSG_STNG_ID` varchar(10) NOT NULL COMMENT '메시지 설정 ID',
`SGG_CD` varchar(5) NOT NULL COMMENT '시군구 코드',
`STNG_INFO_TYPE` varchar(3) NOT NULL COMMENT '설정 정보 유형(MSG003)',
`MSG_PRPS` varchar(2) NOT NULL COMMENT '발송목적',
`TASK_SE_CD` varchar(3) DEFAULT NULL COMMENT '과태료 업무 구분 코드',
`SVC_TYPE` varchar(3) DEFAULT NULL COMMENT '서비스 유형',
`MODULE_ID` varchar(20) DEFAULT NULL COMMENT '문자전송 모듈 아이디',
`PRORD_PLCY` varchar(3) DEFAULT NULL COMMENT '우선순위 정책',
`TELNO` varchar(11) DEFAULT NULL COMMENT '송신 전화번호',
`SVC_USER_PREV_ID` varchar(40) DEFAULT NULL COMMENT '서비스 사용자 ID 컬럼을 패스키로 사용하기 위한 ID',
`SVC_USER_ID` varchar(40) DEFAULT NULL COMMENT '서비스 사용자 ID',
`TMPLAT_ID` varchar(100) DEFAULT NULL COMMENT '템플릿 고유 아이디',
`TMPLT_TITLE` varchar(100) DEFAULT NULL COMMENT '템플릿 제목',
`TMPLT_CN` longtext DEFAULT NULL COMMENT '템플릿 내용',
`USE_YN` varchar(1) DEFAULT NULL COMMENT '사용 여부',
PRIMARY KEY (`MSG_STNG_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
3-2-2. 설정 정보 INSERT
시군구코드, 설정정보유형, 발송목적, 업무구분코드(선택사항)에 따라서
문자전송 관리계정(비용이 과금되는 계정), 발신전화번호, 사용자고유키, 템플릿, 메시지서비스우선순위에 대한 설정을 테이블에 INSERT 합니다.
3-2-2-1. 문자전송 SUB_ID 설정 INSERT
- 국가정보자원관리원과 협의한 기관만 해당 설정을 추가합니다.
- SUB_ID을 추가할 경우 STNG_INFO_TYPE를 "01"로 하고, MODULE_ID 컬럼에 SUB_ID를 입력합니다.
INSERT INTO TB_MSG_STNG
(MSG_STNG_ID, SGG_CD, STNG_INFO_TYPE, MSG_PRPS, MODULE_ID, USE_YN)
VALUES
('0000000001','50000', '01', '99', 'gwanrija123', 'Y');
3-2-2-2. 발신전화번호 설정 INSERT
- 문자발송을 하기 위해서는 발신전화번호 설정을 추가하여야합니다.
- 발신전화번호 설정을 추가할 경우 경우 STNG_INFO_TYPE를 "04"로 하고, TELNO 컬럼에 전화번호를 입력합니다.
INSERT INTO TB_MSG_STNG
(MSG_STNG_ID, SGG_CD, STNG_INFO_TYPE, MSG_PRPS, TELNO, USE_YN)
VALUES
('0000000001','50000', '04', '99', '02-9999-9999', 'Y');
3-2-2-3. 사용자 고유키 설정 INSERT
- 알림톡이나 RCS를 발송하기 위해서는 사용자 고유키 설정을 추가하여야 합니다. 설정이 없으면 문자발송 요청은 등록되지만 해당 방법(알림톡,RCS)으로는 발송을 시도하지 않습니다.
- 사용자고유키 설정을 추가할 경우 경우 STNG_INFO_TYPE를 "03"로 하고, SVC_USER_ID, SVC_USER_PREV_ID 컬럼에 서비스별 키 값을 입력합니다.
- 알림톡 설정이면 SVC_TYPE 컬럼에 "ALT" 입력합니다. SVC_USER_ID에 알림톡프로필키를 입력합니다.
- RCS 설정이면 SVC_TYPE 컬럼에 "RCS" 입력합니다. SVC_USER_ID에 RCS브랜드키, SVC_USER_PREV_ID에 RCS브랜드아이디를 입력합니다.
-- 알림톡의 프로필키 인서트
INSERT INTO TB_MSG_STNG
(MSG_STNG_ID, SGG_CD, STNG_INFO_TYPE, MSG_PRPS, SVC_TYPE, SVC_USER_ID, USE_YN)
VALUES
('0000000001','50000', '03', '99', 'ALT','06ef8ba45110ad6b3bd15479b764d76faa61b289', 'Y');
-- RCS의 브랜드키 인서트
INSERT INTO TB_MSG_STNG
(MSG_STNG_ID, SGG_CD, STNG_INFO_TYPE, MSG_PRPS, SVC_TYPE, SVC_USER_ID, USE_YN)
VALUES
('0000000001','50000', '03', '99', 'RCS','ZZ.86Fb2iSOL656P23', 'Y');
3-2-2-4. 템플릿 설정 INSERT
- 알림톡와 RCS은 템플릿설정이 없으면 문자발송 요청은 등록되지만 해당 방법(알림톡,RCS)으로는 발송을 시도하지 않습니다.
- xMS(SMS,LMS)는 템플릿설정이 없으면 문자발송 자체가 실패합니다.
- 템플릿 설정을 추가할 경우 경우 STNG_INFO_TYPE를 "02"로 하고, TMPLAT_ID, TMPLT_TITLE, TMPLT_CN 컬럼에 템플릿아이디, 제목, 내용을 입력합니다.
- 알림톡의 템플릿이면 SVC_TYPE 컬럼에 "ALT" 입력합니다, 프리템플릿일 경우 템플릿아이디는 고정된 코드값("KR"+숫자3자리)을 사용합니다.
국가정보자원관리원 가이드에는 지방자치단체는 KR003을 사용한다고 되어 있지만 현재 카카오톡에서 서비스 설정을 잘못하여 기관에 관계없이 모두 KR001을 사용합니다. - RCS의 템플릿이면 SVC_TYPE 컬럼에 "RCS" 입력합니다, 프리템플릿일 경우 템플릿아이디는 필요하지 않습니다.
- xMS의 템플릿이면 SVC_TYPE 컬럼에 "XMS" 입력합니다, 템플릿아이디는 필요하지 않습니다.
- 템플릿 변수는 내용안에 {{변수명}}과 같은 형식으로 입력합니다.
-- 알림톡 템플릿 인서트
INSERT INTO TB_MSG_STNG
(MSG_STNG_ID, SGG_CD, STNG_INFO_TYPE, MSG_PRPS, SVC_TYPE, TMPLAT_ID, TMPLT_TITLE, TMPLT_CN, USE_YN)
VALUES
('0000000001','50000', '02', '99', 'ALT' 'KR003', '', '{"text":"안녕하세요.{{고객이름}}님"}', 'Y');
-- RCS 템플릿 인서트
INSERT INTO TB_MSG_STNG
(MSG_STNG_ID, SGG_CD, STNG_INFO_TYPE, MSG_PRPS, SVC_TYPE, TMPLAT_ID, TMPLT_TITLE, TMPLT_CN, USE_YN)
VALUES
('0000000001','50000', '02', '99', 'RCS' '', '', '{"msg":{"body":{"description":"안녕하세요.{{고객이름}}님"},"copyAllowed":true,"header":"0"}}', 'Y');
-- XMS 템플릿 인서트
INSERT INTO TB_MSG_STNG
(MSG_STNG_ID, SGG_CD, STNG_INFO_TYPE, MSG_PRPS, SVC_TYPE, TMPLAT_ID, TMPLT_TITLE, TMPLT_CN, USE_YN)
VALUES
('0000000001','50000', '02', '99', 'XMS' '', '안내', '안녕하세요.{{고객이름}}님', 'Y');
- RCS 템플릿은 json형식의 body프로퍼티에 copyAllowed(true)와 header(0)가 필수로 설정되어야 정상적으로 발송됩니다.
,"copyAllowed":true,"header":"0"
- 알림톡과 RCS 템플릿은 줄바꿈문자를 역슬래시n으로 치환하고, xMS템플릿은 실제 줄바꿈 문자를 삽입합니다.
-- TMPLT_CN 컬럼의 알림톡 템플릿 데이터
{"text":"안녕하세요.줄바꿈\n테스트입니다"}
-- TMPLT_CN 컬럼의 RCS 템플릿 데이터
{"msg":{"body":{"description":"안녕하세요.줄바꿈\n테스트입니다"}}}
-- TMPLT_CN 컬럼의 xMS 템플릿 데이터
안녕하세요. 줄바꿈
테스트입니다.
- 캐리지 리턴 문자는 사용하지 않으므로 빈 문자열로 치환합니다.(TMPLT_CN 컬럼)
-- 캐리지 리턴이 있는 컬럼 조회
SELECT INSTR(TMPLT_CN,CHAR(13))
FROM TB_MSG_STNG;
-- 캐리지 리턴 제거
SELECT REPLACE(TMPLT_CN,CHAR(13),'')
FROM TB_MSG_STNG;
3-2-2-4. 메시지 서비스 우선순위 설정 INSERT
- 알림톡과 RCS를 모두 사용 가능할 때 어떤 발송서비스를 우선적으로 발송할 지를 설정할 수 있습니다.
- 메시지 서비스 우선순위 설정을 추가할 경우 경우 STNG_INFO_TYPE를 "05"로 하고, PRORD_PLCY 컬럼에 우선적으로 발송할 서비스를 입력합니다.
- 알림톡보다 RCS를 먼저 발송할 경우 "RCS"
- RCS보다 알림톡을 먼저 발송할 경우 "ALT"
- 설정이 없으면 기본적으로 알림톡이 먼저 발송됩니다.
INSERT INTO TB_MSG_STNG
(MSG_STNG_ID, SGG_CD, STNG_INFO_TYPE, MSG_PRPS, PRORD_PLCY, USE_YN)
VALUES
('0000000001','50000', '05', '99', 'RCS', 'Y');
Table of Contents
- 1. 업무 프로젝트에 라이브러리 추가
- 2. nuri2설정을 xit-mms라이브러리에서 사용하는 설정에 맞추어 수정
- 2-1. nuri2에서 생성하는 테이블의 이름을 xit-mms에서 사용하는 테이블명으로 수정
- 2-2. xit-mms에서 추가로 정의한 사용자 정의 컬럼을 추가합니다.
- 2-3. 기타 설정 수정
- 3. DBMS 작업