장동신 장동신 2024-10-22
DBMS별 DDL 추가, 리포트 서비스 로직 수정, Mysql Connector 추가
@3817c059871f17c3642fc6649fa2f93bd025f869
build.gradle
--- build.gradle
+++ build.gradle
@@ -46,6 +46,8 @@
     implementation 'org.jdom:jdom2:2.0.6.1'
     // https://mvnrepository.com/artifact/org.apache.commons/commons-configuration2
     implementation 'org.apache.commons:commons-configuration2:2.10.1'
+    // https://mvnrepository.com/artifact/mysql/mysql-connector-java
+    implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.33'
     // https://mvnrepository.com/artifact/org.mariadb.jdbc/mariadb-java-client
     implementation group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version: '3.1.4'
     // https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc11
src/main/java/com/munjaon/client/server/service/ReportClientService.java
--- src/main/java/com/munjaon/client/server/service/ReportClientService.java
+++ src/main/java/com/munjaon/client/server/service/ReportClientService.java
@@ -147,47 +147,50 @@
             }
 
         } catch (Exception e) {
+            saveSystemLog("ERROR [" + e.getMessage() + "]");
+            saveSystemLog("ERROR DETAIL");
+            saveSystemLog(e);
             throw new RuntimeException(e);
         }
     }
 
     private void messageService() {
-
         try {
-            while (isRun()) {
-                headBuffer.clear();
-                int recvCount = socketChannel.read(headBuffer);
-//                saveSystemLog("recvCount : " + recvCount);
-                if (recvCount == -1) {
-                    throw new RuntimeException("REPORT ERROR : Connection closed");
-                } else if (recvCount > 0) {
-//                    Packet.printBuffer(headBuffer);
-                    String command = Header.getCommand(headBuffer);
-                    if (command == null) {
-                        continue;
-                    }
-                    saveLog("command : " + command);
-                    switch (Integer.parseInt(command)) {
-                        case 5 :
-                            reportBodyBuffer.clear();
-                            socketChannel.read(reportBodyBuffer);
-                            reportService(headBuffer, reportBodyBuffer);
-                            break;
-                        case 7 :
-                            linkBodyBuffer.clear();
-                            socketChannel.read(linkBodyBuffer);
-                            linkCheckService(headBuffer, linkBodyBuffer);
-                            break;
-                        default: throw new RuntimeException("REPORT ERROR");
-                    }
-                } else {
-                    Thread.sleep(10L);
+            headBuffer.clear();
+            int recvCount = socketChannel.read(headBuffer);
+            if (recvCount == -1) {
+                throw new RuntimeException("REPORT ERROR : Connection closed");
+            } else if (recvCount > 0) {
+                String command = Header.getCommand(headBuffer);
+                if (command == null) {
+                    return;
                 }
+
+                switch (Integer.parseInt(command)) {
+                    case 5 :
+                        reportBodyBuffer.clear();
+                        socketChannel.read(reportBodyBuffer);
+                        reportService(headBuffer, reportBodyBuffer);
+                        break;
+                    case 7 :
+                        linkBodyBuffer.clear();
+                        socketChannel.read(linkBodyBuffer);
+                        linkCheckService(headBuffer, linkBodyBuffer);
+                        break;
+                    default: throw new RuntimeException("REPORT ERROR");
+                }
+            } else {
+                Thread.sleep(10L);
             }
         } catch (IOException e) {
-            e.printStackTrace();
+            saveSystemLog("ERROR [" + e.getMessage() + "]");
+            saveSystemLog("ERROR DETAIL");
+            saveSystemLog(e);
             throw new RuntimeException(e);
         } catch (InterruptedException e) {
+            saveSystemLog("ERROR [" + e.getMessage() + "]");
+            saveSystemLog("ERROR DETAIL");
+            saveSystemLog(e);
             throw new RuntimeException(e);
         }
     }
@@ -206,7 +209,9 @@
                 lastPacketSendTime = System.currentTimeMillis();
             }
         } catch (Exception e) {
-            e.printStackTrace();
+            saveSystemLog("ERROR [" + e.getMessage() + "]");
+            saveSystemLog("ERROR DETAIL");
+            saveSystemLog(e);
             throw new RuntimeException(e);
         }
     }
@@ -217,6 +222,9 @@
             socketChannel.write(LinkCheck.makeLinkCheckAckBuffer());
             lastPacketSendTime = System.currentTimeMillis();
         } catch (Exception e) {
+            saveSystemLog("ERROR [" + e.getMessage() + "]");
+            saveSystemLog("ERROR DETAIL");
+            saveSystemLog(e);
             throw new RuntimeException(e);
         }
     }
 
src/main/resources/ddl/cubrid.conf (added)
+++ src/main/resources/ddl/cubrid.conf
@@ -0,0 +1,55 @@
+CREATE TABLE MUNJAON_MSG
+(
+	MSG_ID			BIGINT NOT NULL AUTO_INCREMENT,
+	MSG_TYPE		CHAR(1)			DEFAULT '3'			NOT NULL,
+	SEND_STATUS		VARCHAR(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	DATETIME		DEFAULT '0000-00-00 00:00:00'	NOT NULL,
+	RECV_PHONE		VARCHAR(15)							NOT NULL,
+	SEND_PHONE		VARCHAR(15)							NOT NULL,
+	SUBJECT			VARCHAR(60),
+	MESSAGE			VARCHAR(2000)						NOT NULL,
+	TELECOM         VARCHAR(7),
+	AGENT_CODE      VARCHAR(5),
+	FILENAME01		VARCHAR(100),
+	FILENAME02		VARCHAR(100),
+	FILENAME03		VARCHAR(100),
+	KAKAO_SENDER_KEY		VARCHAR(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR(64),
+	KAKAO_JSON_FILE		VARCHAR(100),
+	DELIVER_DATE	DATETIME,
+	SENT_DATE		DATETIME,
+	REPORT_DATE		DATETIME,
+	PRIMARY KEY PK_MUNJAON_MSG(MSG_ID)
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_1 ON MUNJAON_MSG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_2 ON MUNJAON_MSG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_3 ON MUNJAON_MSG(SEND_STATUS);
+
+CREATE TABLE MUNJAON_MSG_LOG
+(
+	MSG_ID			INTEGER UNSIGNED,
+	MSG_TYPE		CHAR(1)			DEFAULT '1'			NOT NULL,
+	SEND_STATUS		VARCHAR(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	DATETIME							NOT NULL,
+	RECV_PHONE		VARCHAR(15)							NOT NULL,
+	SEND_PHONE		VARCHAR(15)							NOT NULL,
+	SUBJECT			VARCHAR(60),
+	MESSAGE			VARCHAR(2000)						NOT NULL,
+	TELECOM         VARCHAR(7),
+	AGENT_CODE      VARCHAR(5),
+	FILENAME01		VARCHAR(100),
+	FILENAME02		VARCHAR(100),
+	FILENAME03		VARCHAR(100),
+	KAKAO_SENDER_KEY		VARCHAR(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR(64),
+	KAKAO_JSON_FILE		VARCHAR(100),
+	DELIVER_DATE	DATETIME,
+	SENT_DATE		DATETIME,
+	REPORT_DATE		DATETIME
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_LOG_1 ON MUNJAON_MSG_LOG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_2 ON MUNJAON_MSG_LOG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_3 ON MUNJAON_MSG_LOG(SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_4 ON MUNJAON_MSG_LOG(MSG_ID);(No newline at end of file)
 
src/main/resources/ddl/mariadb.conf (added)
+++ src/main/resources/ddl/mariadb.conf
@@ -0,0 +1,55 @@
+CREATE TABLE MUNJAON_MSG
+(
+	MSG_ID			INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
+	MSG_TYPE		CHAR(1)			DEFAULT '3'			NOT NULL,
+	SEND_STATUS		VARCHAR(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	DATETIME		DEFAULT '0000-00-00 00:00:00'	NOT NULL,
+	RECV_PHONE		VARCHAR(15)							NOT NULL,
+	SEND_PHONE		VARCHAR(15)							NOT NULL,
+	SUBJECT			VARCHAR(60),
+	MESSAGE			VARCHAR(2000)						NOT NULL,
+	TELECOM         VARCHAR(7),
+	AGENT_CODE      VARCHAR(5),
+	FILENAME01		VARCHAR(100),
+	FILENAME02		VARCHAR(100),
+	FILENAME03		VARCHAR(100),
+	KAKAO_SENDER_KEY		VARCHAR(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR(64),
+	KAKAO_JSON_FILE		VARCHAR(100),
+	DELIVER_DATE	DATETIME,
+	SENT_DATE		DATETIME,
+	REPORT_DATE		DATETIME,
+	PRIMARY KEY PK_MUNJAON_MSG(MSG_ID)
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_1 ON MUNJAON_MSG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_2 ON MUNJAON_MSG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_3 ON MUNJAON_MSG(SEND_STATUS);
+
+CREATE TABLE MUNJAON_MSG_LOG
+(
+	MSG_ID			INTEGER UNSIGNED,
+	MSG_TYPE		CHAR(1)			DEFAULT '1'			NOT NULL,
+	SEND_STATUS		VARCHAR(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	DATETIME							NOT NULL,
+	RECV_PHONE		VARCHAR(15)							NOT NULL,
+	SEND_PHONE		VARCHAR(15)							NOT NULL,
+	SUBJECT			VARCHAR(60),
+	MESSAGE			VARCHAR(2000)						NOT NULL,
+	TELECOM         VARCHAR(7),
+	AGENT_CODE      VARCHAR(5),
+	FILENAME01		VARCHAR(100),
+	FILENAME02		VARCHAR(100),
+	FILENAME03		VARCHAR(100),
+	KAKAO_SENDER_KEY		VARCHAR(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR(64),
+	KAKAO_JSON_FILE		VARCHAR(100),
+	DELIVER_DATE	DATETIME,
+	SENT_DATE		DATETIME,
+	REPORT_DATE		DATETIME
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_LOG_1 ON MUNJAON_MSG_LOG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_2 ON MUNJAON_MSG_LOG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_3 ON MUNJAON_MSG_LOG(SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_4 ON MUNJAON_MSG_LOG(MSG_ID);(No newline at end of file)
 
src/main/resources/ddl/mssql.conf (added)
+++ src/main/resources/ddl/mssql.conf
@@ -0,0 +1,55 @@
+CREATE TABLE MUNJAON_MSG
+(
+	MSG_ID			BIGINT			IDENTITY (1, 1) 	NOT NULL,
+	MSG_TYPE		CHAR(1)			DEFAULT '3'			NOT NULL,
+	SEND_STATUS		VARCHAR(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	DATETIME		DEFAULT GETDATE()	NOT NULL,
+	RECV_PHONE		VARCHAR(15)							NOT NULL,
+	SEND_PHONE		VARCHAR(15)							NOT NULL,
+	SUBJECT			VARCHAR(60),
+	MESSAGE			VARCHAR(2000)						NOT NULL,
+	TELECOM         VARCHAR(7),
+	AGENT_CODE      VARCHAR(5),
+	FILENAME01		VARCHAR(100),
+	FILENAME02		VARCHAR(100),
+	FILENAME03		VARCHAR(100),
+	KAKAO_SENDER_KEY		VARCHAR(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR(64),
+	KAKAO_JSON_FILE		VARCHAR(100),
+	DELIVER_DATE	DATETIME,
+	SENT_DATE		DATETIME,
+	REPORT_DATE		DATETIME,
+	CONSTRAINT PK_MUNJAON_MSG PRIMARY KEY (MSG_ID)
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_1 ON MUNJAON_MSG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_2 ON MUNJAON_MSG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_3 ON MUNJAON_MSG(SEND_STATUS);
+
+CREATE TABLE MUNJAON_MSG_LOG
+(
+	MSG_ID			BIGINT ,
+	MSG_TYPE		CHAR(1)			DEFAULT '1'			NOT NULL,
+	SEND_STATUS		VARCHAR(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	DATETIME							NOT NULL,
+	RECV_PHONE		VARCHAR(15)							NOT NULL,
+	SEND_PHONE		VARCHAR(15)							NOT NULL,
+	SUBJECT			VARCHAR(60),
+	MESSAGE			VARCHAR(2000)						NOT NULL,
+	TELECOM         VARCHAR(7),
+	AGENT_CODE      VARCHAR(5),
+	FILENAME01		VARCHAR(100),
+	FILENAME02		VARCHAR(100),
+	FILENAME03		VARCHAR(100),
+	KAKAO_SENDER_KEY		VARCHAR(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR(64),
+	KAKAO_JSON_FILE		VARCHAR(100),
+	DELIVER_DATE	DATETIME,
+	SENT_DATE		DATETIME,
+	REPORT_DATE		DATETIME
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_LOG_1 ON MUNJAON_MSG_LOG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_2 ON MUNJAON_MSG_LOG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_3 ON MUNJAON_MSG_LOG(SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_4 ON MUNJAON_MSG_LOG(MSG_ID);(No newline at end of file)
 
src/main/resources/ddl/mysql.conf (added)
+++ src/main/resources/ddl/mysql.conf
@@ -0,0 +1,55 @@
+CREATE TABLE MUNJAON_MSG
+(
+	MSG_ID			INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
+	MSG_TYPE		CHAR(1)			DEFAULT '3'			NOT NULL,
+	SEND_STATUS		VARCHAR(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	DATETIME		DEFAULT '0000-00-00 00:00:00'	NOT NULL,
+	RECV_PHONE		VARCHAR(15)							NOT NULL,
+	SEND_PHONE		VARCHAR(15)							NOT NULL,
+	SUBJECT			VARCHAR(60),
+	MESSAGE			VARCHAR(2000)						NOT NULL,
+	TELECOM         VARCHAR(7),
+	AGENT_CODE      VARCHAR(5),
+	FILENAME01		VARCHAR(100),
+	FILENAME02		VARCHAR(100),
+	FILENAME03		VARCHAR(100),
+	KAKAO_SENDER_KEY		VARCHAR(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR(64),
+	KAKAO_JSON_FILE		VARCHAR(100),
+	DELIVER_DATE	DATETIME,
+	SENT_DATE		DATETIME,
+	REPORT_DATE		DATETIME,
+	PRIMARY KEY PK_MUNJAON_MSG(MSG_ID)
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_1 ON MUNJAON_MSG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_2 ON MUNJAON_MSG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_3 ON MUNJAON_MSG(SEND_STATUS);
+
+CREATE TABLE MUNJAON_MSG_LOG
+(
+	MSG_ID			INTEGER UNSIGNED,
+	MSG_TYPE		CHAR(1)			DEFAULT '1'			NOT NULL,
+	SEND_STATUS		VARCHAR(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	DATETIME							NOT NULL,
+	RECV_PHONE		VARCHAR(15)							NOT NULL,
+	SEND_PHONE		VARCHAR(15)							NOT NULL,
+	SUBJECT			VARCHAR(60),
+	MESSAGE			VARCHAR(2000)						NOT NULL,
+	TELECOM         VARCHAR(7),
+	AGENT_CODE      VARCHAR(5),
+	FILENAME01		VARCHAR(100),
+	FILENAME02		VARCHAR(100),
+	FILENAME03		VARCHAR(100),
+	KAKAO_SENDER_KEY		VARCHAR(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR(64),
+	KAKAO_JSON_FILE		VARCHAR(100),
+	DELIVER_DATE	DATETIME,
+	SENT_DATE		DATETIME,
+	REPORT_DATE		DATETIME
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_LOG_1 ON MUNJAON_MSG_LOG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_2 ON MUNJAON_MSG_LOG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_3 ON MUNJAON_MSG_LOG(SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_4 ON MUNJAON_MSG_LOG(MSG_ID);(No newline at end of file)
 
src/main/resources/ddl/oracle.conf (added)
+++ src/main/resources/ddl/oracle.conf
@@ -0,0 +1,64 @@
+CREATE TABLE MUNJAON_MSG
+(
+	MSG_ID			NUMBER 	NOT NULL,
+	MSG_TYPE		CHAR(1)			DEFAULT '3'			NOT NULL,
+	SEND_STATUS		VARCHAR2(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	DATE		DEFAULT SYSDATE	NOT NULL,
+	RECV_PHONE		VARCHAR2(15)							NOT NULL,
+	SEND_PHONE		VARCHAR2(15)							NOT NULL,
+	SUBJECT			VARCHAR2(60),
+	MESSAGE			VARCHAR2(2000)						NOT NULL,
+	TELECOM         VARCHAR2(7),
+	AGENT_CODE      VARCHAR2(5),
+	FILENAME01		VARCHAR2(100),
+	FILENAME02		VARCHAR2(100),
+	FILENAME03		VARCHAR2(100),
+	KAKAO_SENDER_KEY		VARCHAR2(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR2(64),
+	KAKAO_JSON_FILE		VARCHAR2(100),
+	DELIVER_DATE	DATE,
+	SENT_DATE		DATE,
+	REPORT_DATE		DATE,
+	CONSTRAINT PK_MUNJAON_MSG PRIMARY KEY (MSG_ID)
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_1 ON MUNJAON_MSG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_2 ON MUNJAON_MSG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_3 ON MUNJAON_MSG(SEND_STATUS);
+
+CREATE TABLE MUNJAON_MSG_LOG
+(
+	MSG_ID			NUMBER ,
+	MSG_TYPE		CHAR(1)			DEFAULT '1'			NOT NULL,
+	SEND_STATUS		VARCHAR2(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	DATE							NOT NULL,
+	RECV_PHONE		VARCHAR2(15)							NOT NULL,
+	SEND_PHONE		VARCHAR2(15)							NOT NULL,
+	SUBJECT			VARCHAR2(60),
+	MESSAGE			VARCHAR2(2000)						NOT NULL,
+	TELECOM         VARCHAR2(7),
+	AGENT_CODE      VARCHAR2(5),
+	FILENAME01		VARCHAR2(100),
+	FILENAME02		VARCHAR2(100),
+	FILENAME03		VARCHAR2(100),
+	KAKAO_SENDER_KEY		VARCHAR2(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR2(64),
+	KAKAO_JSON_FILE		VARCHAR2(100),
+	DELIVER_DATE	DATE,
+	SENT_DATE		DATE,
+	REPORT_DATE		DATE
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_LOG_1 ON MUNJAON_MSG_LOG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_2 ON MUNJAON_MSG_LOG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_3 ON MUNJAON_MSG_LOG(SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_4 ON MUNJAON_MSG_LOG(MSG_ID);
+
+CREATE SEQUENCE MUNJAON_MSG_SEQUENCE
+		START WITH 1
+		MAXVALUE 99999999
+		MINVALUE 1
+		CYCLE
+		NOCACHE
+		NOORDER
+		;(No newline at end of file)
 
src/main/resources/ddl/postresql.conf (added)
+++ src/main/resources/ddl/postresql.conf
@@ -0,0 +1,63 @@
+CREATE TABLE MUNJAON_MSG
+(
+	MSG_ID			BIGINT 	NOT NULL,
+	MSG_TYPE		CHAR(1)			DEFAULT '3'			NOT NULL,
+	SEND_STATUS		VARCHAR(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	TIMESTAMP		DEFAULT NOW()	NOT NULL,
+	RECV_PHONE		VARCHAR(15)							NOT NULL,
+	SEND_PHONE		VARCHAR(15)							NOT NULL,
+	SUBJECT			VARCHAR(60),
+	MESSAGE			VARCHAR(2000)						NOT NULL,
+	TELECOM         VARCHAR(7),
+	AGENT_CODE      VARCHAR(5),
+	FILENAME01		VARCHAR(100),
+	FILENAME02		VARCHAR(100),
+	FILENAME03		VARCHAR(100),
+	KAKAO_SENDER_KEY		VARCHAR(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR(64),
+	KAKAO_JSON_FILE		VARCHAR(100),
+	DELIVER_DATE	TIMESTAMP,
+	SENT_DATE		TIMESTAMP,
+	REPORT_DATE		TIMESTAMP,
+	CONSTRAINT PK_MUNJAON_MSG PRIMARY KEY (MSG_ID)
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_1 ON MUNJAON_MSG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_2 ON MUNJAON_MSG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_3 ON MUNJAON_MSG(SEND_STATUS);
+
+CREATE TABLE MUNJAON_MSG_LOG
+(
+	MSG_ID			BIGINT ,
+	MSG_TYPE		CHAR(1)			DEFAULT '1'			NOT NULL,
+	SEND_STATUS		VARCHAR(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	TIMESTAMP							NOT NULL,
+	RECV_PHONE		VARCHAR(15)							NOT NULL,
+	SEND_PHONE		VARCHAR(15)							NOT NULL,
+	SUBJECT			VARCHAR(60),
+	MESSAGE			VARCHAR(2000)						NOT NULL,
+	TELECOM         VARCHAR(7),
+	AGENT_CODE      VARCHAR(5),
+	FILENAME01		VARCHAR(100),
+	FILENAME02		VARCHAR(100),
+	FILENAME03		VARCHAR(100),
+	KAKAO_SENDER_KEY		VARCHAR(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR(64),
+	KAKAO_JSON_FILE		VARCHAR(100),
+	DELIVER_DATE	TIMESTAMP,
+	SENT_DATE		TIMESTAMP,
+	REPORT_DATE		TIMESTAMP
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_LOG_1 ON MUNJAON_MSG_LOG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_2 ON MUNJAON_MSG_LOG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_3 ON MUNJAON_MSG_LOG(SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_4 ON MUNJAON_MSG_LOG(MSG_ID);
+
+
+CREATE SEQUENCE MUNJAON_MSG_SEQUENCE
+		START WITH 1
+		MAXVALUE 99999999
+		MINVALUE 1
+		CYCLE
+		;(No newline at end of file)
 
src/main/resources/ddl/tibero.conf (added)
+++ src/main/resources/ddl/tibero.conf
@@ -0,0 +1,64 @@
+CREATE TABLE MUNJAON_MSG
+(
+	MSG_ID			NUMBER 	NOT NULL,
+	MSG_TYPE		CHAR(1)			DEFAULT '3'			NOT NULL,
+	SEND_STATUS		VARCHAR(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	DATE		DEFAULT SYSDATE	NOT NULL,
+	RECV_PHONE		VARCHAR(15)							NOT NULL,
+	SEND_PHONE		VARCHAR(15)							NOT NULL,
+	SUBJECT			VARCHAR(60),
+	MESSAGE			VARCHAR(2000)						NOT NULL,
+	TELECOM         VARCHAR(7),
+	AGENT_CODE      VARCHAR(5),
+	FILENAME01		VARCHAR(100),
+	FILENAME02		VARCHAR(100),
+	FILENAME03		VARCHAR(100),
+	KAKAO_SENDER_KEY		VARCHAR(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR(64),
+	KAKAO_JSON_FILE		VARCHAR(100),
+	DELIVER_DATE	DATE,
+	SENT_DATE		DATE,
+	REPORT_DATE		DATE,
+	CONSTRAINT PK_MUNJAON_MSG PRIMARY KEY (MSG_ID)
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_1 ON MUNJAON_MSG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_2 ON MUNJAON_MSG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_3 ON MUNJAON_MSG(SEND_STATUS);
+
+CREATE TABLE MUNJAON_MSG_LOG
+(
+	MSG_ID			NUMBER ,
+	MSG_TYPE		CHAR(1)			DEFAULT '1'			NOT NULL,
+	SEND_STATUS		VARCHAR(10)		DEFAULT '0'			NOT NULL,
+	REQUEST_DATE	DATE							NOT NULL,
+	RECV_PHONE		VARCHAR(15)							NOT NULL,
+	SEND_PHONE		VARCHAR(15)							NOT NULL,
+	SUBJECT			VARCHAR(60),
+	MESSAGE			VARCHAR(2000)						NOT NULL,
+	TELECOM         VARCHAR(7),
+	AGENT_CODE      VARCHAR(5),
+	FILENAME01		VARCHAR(100),
+	FILENAME02		VARCHAR(100),
+	FILENAME03		VARCHAR(100),
+	KAKAO_SENDER_KEY		VARCHAR(40),
+	KAKAO_TEMPLATE_CODE		VARCHAR(64),
+	KAKAO_JSON_FILE		VARCHAR2(100),
+	DELIVER_DATE	DATE,
+	SENT_DATE		DATE,
+	REPORT_DATE		DATE
+);
+
+CREATE INDEX IDX_MUNJAON_MSG_LOG_1 ON MUNJAON_MSG_LOG(REQUEST_DATE, SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_2 ON MUNJAON_MSG_LOG(RECV_PHONE);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_3 ON MUNJAON_MSG_LOG(SEND_STATUS);
+CREATE INDEX IDX_MUNJAON_MSG_LOG_4 ON MUNJAON_MSG_LOG(MSG_ID);
+
+CREATE SEQUENCE MUNJAON_MSG_SEQUENCE
+		START WITH 1
+		MAXVALUE 99999999
+		MINVALUE 1
+		CYCLE
+		NOCACHE
+		NOORDER
+		;(No newline at end of file)
Add a comment
List