diff --git a/batch/.classpath b/batch/.classpath new file mode 100644 index 00000000..a50c6c85 --- /dev/null +++ b/batch/.classpath @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/batch/.gitattributes b/batch/.gitattributes new file mode 100644 index 00000000..61793db4 --- /dev/null +++ b/batch/.gitattributes @@ -0,0 +1,6 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# These are explicitly windows files and should use crlf +*.bat text eol=crlf + diff --git a/batch/.gitignore b/batch/.gitignore new file mode 100644 index 00000000..c75f3c2c --- /dev/null +++ b/batch/.gitignore @@ -0,0 +1,5 @@ +# Ignore Gradle project-specific cache directory +.gradle + +# Ignore Gradle build output directory +build diff --git a/batch/.project b/batch/.project new file mode 100644 index 00000000..cbcce560 --- /dev/null +++ b/batch/.project @@ -0,0 +1,41 @@ + + + urpItms_30_Batch + Project lib created by Buildship. + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + org.eclipse.buildship.core.gradleprojectbuilder + + + + + org.springframework.ide.eclipse.boot.validation.springbootbuilder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jem.workbench.JavaEMFNature + org.eclipse.buildship.core.gradleprojectnature + + diff --git a/batch/.settings/org.eclipse.buildship.core.prefs b/batch/.settings/org.eclipse.buildship.core.prefs new file mode 100644 index 00000000..7b8f9727 --- /dev/null +++ b/batch/.settings/org.eclipse.buildship.core.prefs @@ -0,0 +1,13 @@ +arguments= +auto.sync=false +build.scans.enabled=false +connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER) +connection.project.dir= +eclipse.preferences.version=1 +gradle.user.home= +java.home= +jvm.arguments= +offline.mode=false +override.workspace.settings=false +show.console.view=false +show.executions.view=false diff --git a/batch/.settings/org.eclipse.jdt.core.prefs b/batch/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..7938522f --- /dev/null +++ b/batch/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=16 +org.eclipse.jdt.core.compiler.compliance=16 +org.eclipse.jdt.core.compiler.source=16 diff --git a/batch/.settings/org.eclipse.wst.common.component b/batch/.settings/org.eclipse.wst.common.component new file mode 100644 index 00000000..88d71dfd --- /dev/null +++ b/batch/.settings/org.eclipse.wst.common.component @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/batch/.settings/org.eclipse.wst.common.project.facet.core.xml b/batch/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 00000000..3d08c3f6 --- /dev/null +++ b/batch/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/batch/.settings/org.springframework.ide.eclipse.prefs b/batch/.settings/org.springframework.ide.eclipse.prefs new file mode 100644 index 00000000..e587c651 --- /dev/null +++ b/batch/.settings/org.springframework.ide.eclipse.prefs @@ -0,0 +1,2 @@ +boot.validation.initialized=true +eclipse.preferences.version=1 diff --git a/batch/bin/main/application-infra_server.yml b/batch/bin/main/application-infra_server.yml new file mode 100644 index 00000000..980e643f --- /dev/null +++ b/batch/bin/main/application-infra_server.yml @@ -0,0 +1,62 @@ +# Service port +# server: +# port: 9002 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://109.26.11.21:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://109.26.11.21:48381 +# api_search_server: http://192.168.8.138:48381 + \ No newline at end of file diff --git a/batch/bin/main/application-kic_dev.yml b/batch/bin/main/application-kic_dev.yml new file mode 100644 index 00000000..a3f2b797 --- /dev/null +++ b/batch/bin/main/application-kic_dev.yml @@ -0,0 +1,85 @@ +# Service port + server: + port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://192.10.10.203:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.10.10.19:1521:gwdev + username: mLq9nSgZHzZBmuOmyvjahQ== + password: C7+TsdsHhTcGiH6JSupSeA== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + # 검색서버 + api_search_server: http://192.10.10.203:48381 + # kicc 메일서버 + api_kic_mail_server : https://devkicmail.kic.go.kr + # api_kic_mail_server : https://kicmail.kic.go.kr + # kicc 메신저 서버 + api_kic_msg_server : http://devtalk.kic.go.kr + api_kic_msg_key : 73f26d49-b014-41a9-a184-24c34c893701 + # api_kic_msg_server : http://talk.kic.go.kr + # api_kic_msg_key : eebe896f-1608-456f-80ff-282d1024c25c + client : kic + + \ No newline at end of file diff --git a/batch/bin/main/application-kic_rel.yml b/batch/bin/main/application-kic_rel.yml new file mode 100644 index 00000000..1e98c878 --- /dev/null +++ b/batch/bin/main/application-kic_rel.yml @@ -0,0 +1,81 @@ +# Service port + server: + port: 12030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://192.10.10.203:3306/ur_itms_rel_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: YvRZ5jyhmB6gwVSUGBOqNMQB00k6OZZSfUH5ZU4GEFs= + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.10.10.242:1521:gwprd2 + username: mLq9nSgZHzZBmuOmyvjahQ== + password: F4KWP/A4aPptqZO9gZUdqg== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://192.10.10.203:49381 + # kicc 메일서버 + api_kic_mail_server : https://kicmail.kic.go.kr + # kicc 메신저 서버 + api_kic_msg_server : http://talk.kic.go.kr + api_kic_msg_key : eebe896f-1608-456f-80ff-282d1024c25c + client : kic + \ No newline at end of file diff --git a/batch/bin/main/application-local.yml b/batch/bin/main/application-local.yml new file mode 100644 index 00000000..9de735bf --- /dev/null +++ b/batch/bin/main/application-local.yml @@ -0,0 +1,81 @@ +# Service port +# server: +# port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://192.168.8.131:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.168.8.132:1521:XE + username: Lp1nYnFre15DjG/Y36UNWA== ## TEST01 + password: E4SOtjDqqO79BQERc/eaTw== ## 123456 + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm +# api_search_server: http://192.168.8.138:48381 # 개발 + api_search_server: http://192.168.8.138:49381 # 운영 + # kicc 메일서버 + api_kic_mail_server : http://localhost:9002 + # kicc 메신저 서버 + api_kic_msg_server : http://localhost:9002 + api_kic_msg_key : testKey + client : + \ No newline at end of file diff --git a/batch/bin/main/application-vmware.yml b/batch/bin/main/application-vmware.yml new file mode 100644 index 00000000..380716ab --- /dev/null +++ b/batch/bin/main/application-vmware.yml @@ -0,0 +1,62 @@ +# Service port +# server: +# port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://192.168.8.131:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm +# api_search_server: http://109.26.11.21:48381 + api_search_server: http://192.168.8.138:48381 + \ No newline at end of file diff --git a/batch/bin/main/com/urpsys/basebatch/Aes256Test.class b/batch/bin/main/com/urpsys/basebatch/Aes256Test.class new file mode 100644 index 00000000..8fcf6ff6 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/Aes256Test.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/common/crypto/Aes256Cipher.class b/batch/bin/main/com/urpsys/basebatch/common/crypto/Aes256Cipher.class new file mode 100644 index 00000000..1582ecab Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/common/crypto/Aes256Cipher.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/common/exception/CustomException.class b/batch/bin/main/com/urpsys/basebatch/common/exception/CustomException.class new file mode 100644 index 00000000..59c77d1f Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/common/exception/CustomException.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/common/util/CommonUtil.class b/batch/bin/main/com/urpsys/basebatch/common/util/CommonUtil.class new file mode 100644 index 00000000..53f4b774 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/common/util/CommonUtil.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/common/util/ConvertUtils.class b/batch/bin/main/com/urpsys/basebatch/common/util/ConvertUtils.class new file mode 100644 index 00000000..5fdf9db1 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/common/util/ConvertUtils.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/common/util/DataSourceUtil.class b/batch/bin/main/com/urpsys/basebatch/common/util/DataSourceUtil.class new file mode 100644 index 00000000..90ae13d6 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/common/util/DataSourceUtil.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/common/util/EgovIdGnrBuilder.class b/batch/bin/main/com/urpsys/basebatch/common/util/EgovIdGnrBuilder.class new file mode 100644 index 00000000..16b59342 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/common/util/EgovIdGnrBuilder.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/common/util/HtmlEmailUtil.class b/batch/bin/main/com/urpsys/basebatch/common/util/HtmlEmailUtil.class new file mode 100644 index 00000000..14ed900f Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/common/util/HtmlEmailUtil.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/common/util/RestApiCallUtil.class b/batch/bin/main/com/urpsys/basebatch/common/util/RestApiCallUtil.class new file mode 100644 index 00000000..e2ed9475 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/common/util/RestApiCallUtil.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/EgovConfigAppIdGen.class b/batch/bin/main/com/urpsys/basebatch/config/EgovConfigAppIdGen.class new file mode 100644 index 00000000..68f3ca0c Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/EgovConfigAppIdGen.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/EgovMessageSource.class b/batch/bin/main/com/urpsys/basebatch/config/EgovMessageSource.class new file mode 100644 index 00000000..be53d48d Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/EgovMessageSource.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/EncryptConfig.class b/batch/bin/main/com/urpsys/basebatch/config/EncryptConfig.class new file mode 100644 index 00000000..78756c50 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/EncryptConfig.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/KicInsaDbConfig.class b/batch/bin/main/com/urpsys/basebatch/config/KicInsaDbConfig.class new file mode 100644 index 00000000..14db1682 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/KicInsaDbConfig.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/MailConfig.class b/batch/bin/main/com/urpsys/basebatch/config/MailConfig.class new file mode 100644 index 00000000..c9a6d43a Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/MailConfig.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/MessageConfig.class b/batch/bin/main/com/urpsys/basebatch/config/MessageConfig.class new file mode 100644 index 00000000..5fe4b36e Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/MessageConfig.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/PrimaryDbConfig.class b/batch/bin/main/com/urpsys/basebatch/config/PrimaryDbConfig.class new file mode 100644 index 00000000..8ae681cc Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/PrimaryDbConfig.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/quartz/AutoWiringSpringBeanJobFactory.class b/batch/bin/main/com/urpsys/basebatch/config/quartz/AutoWiringSpringBeanJobFactory.class new file mode 100644 index 00000000..b6796ec5 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/quartz/AutoWiringSpringBeanJobFactory.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzConfig.class b/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzConfig.class new file mode 100644 index 00000000..c2c4e664 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzConfig.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzConfigService.class b/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzConfigService.class new file mode 100644 index 00000000..2f775eaa Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzConfigService.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzJob.class b/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzJob.class new file mode 100644 index 00000000..7bdce427 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzJob.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzJobListner.class b/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzJobListner.class new file mode 100644 index 00000000..ec566259 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzJobListner.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzTriggerListener.class b/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzTriggerListener.class new file mode 100644 index 00000000..1096f4d2 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/config/quartz/QuartzTriggerListener.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/dao/QuartzDao.class b/batch/bin/main/com/urpsys/basebatch/dao/QuartzDao.class new file mode 100644 index 00000000..45f5162a Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/dao/QuartzDao.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/domain/JWTKey.class b/batch/bin/main/com/urpsys/basebatch/domain/JWTKey.class new file mode 100644 index 00000000..af7f9765 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/domain/JWTKey.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/domain/TokenInfo.class b/batch/bin/main/com/urpsys/basebatch/domain/TokenInfo.class new file mode 100644 index 00000000..0e2a177e Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/domain/TokenInfo.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/service/QuartzService.class b/batch/bin/main/com/urpsys/basebatch/service/QuartzService.class new file mode 100644 index 00000000..f3537334 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/service/QuartzService.class differ diff --git a/batch/bin/main/com/urpsys/basebatch/urpBaseBatchApplication.class b/batch/bin/main/com/urpsys/basebatch/urpBaseBatchApplication.class new file mode 100644 index 00000000..a06c8909 Binary files /dev/null and b/batch/bin/main/com/urpsys/basebatch/urpBaseBatchApplication.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/bbs/dao/BbsInfoHistDao.class b/batch/bin/main/com/urpsys/itmsbatch/bbs/dao/BbsInfoHistDao.class new file mode 100644 index 00000000..8cfb987e Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/bbs/dao/BbsInfoHistDao.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/bbs/service/BbsInfoHistService.class b/batch/bin/main/com/urpsys/itmsbatch/bbs/service/BbsInfoHistService.class new file mode 100644 index 00000000..bc415340 Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/bbs/service/BbsInfoHistService.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/cmm/dao/CmmUseDao.class b/batch/bin/main/com/urpsys/itmsbatch/cmm/dao/CmmUseDao.class new file mode 100644 index 00000000..128de577 Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/cmm/dao/CmmUseDao.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/cmm/dao/KicItsmDao.class b/batch/bin/main/com/urpsys/itmsbatch/cmm/dao/KicItsmDao.class new file mode 100644 index 00000000..cd456c8f Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/cmm/dao/KicItsmDao.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/cmm/dao/MailKaTalkDao.class b/batch/bin/main/com/urpsys/itmsbatch/cmm/dao/MailKaTalkDao.class new file mode 100644 index 00000000..3ac68192 Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/cmm/dao/MailKaTalkDao.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/cmm/excute/KicInsaInterJob.class b/batch/bin/main/com/urpsys/itmsbatch/cmm/excute/KicInsaInterJob.class new file mode 100644 index 00000000..ce16a4b3 Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/cmm/excute/KicInsaInterJob.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendJob.class b/batch/bin/main/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendJob.class new file mode 100644 index 00000000..52b5c182 Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendJob.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendKiccJob.class b/batch/bin/main/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendKiccJob.class new file mode 100644 index 00000000..f32d1837 Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendKiccJob.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendKiccJob.java.20250703 b/batch/bin/main/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendKiccJob.java.20250703 new file mode 100644 index 00000000..df86c71d --- /dev/null +++ b/batch/bin/main/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendKiccJob.java.20250703 @@ -0,0 +1,259 @@ +package com.urpsys.itmsbatch.cmm.excute; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.quartz.DisallowConcurrentExecution; +import org.quartz.Job; +import org.quartz.JobDataMap; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.PersistJobDataAfterExecution; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.stereotype.Component; + +import com.urpsys.basebatch.common.util.CommonUtil; +import com.urpsys.basebatch.common.util.ConvertUtils; +import com.urpsys.basebatch.common.util.HtmlEmailUtil; +import com.urpsys.basebatch.common.util.RestApiCallUtil; +import com.urpsys.itmsbatch.cmm.dao.MailKaTalkDao; +import com.urpsys.itmsbatch.cmm.service.MailKaTalkService; + +import kong.unirest.json.JSONObject; +import lombok.extern.slf4j.Slf4j; + +/** + * KIC(한국투자공사) 메일/카톡 처리 실행 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.06.11 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.06.11    나혁제         최초작성
+ *
+ * 
+ */ + +@Slf4j +@Component +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +public class MailKaTalkSendKiccJob2 implements Job +{ + @Autowired + MailKaTalkService mailKaTalkService; + + @Autowired + HtmlEmailUtil htmlEmailUtil; + + @Autowired + RestApiCallUtil restApiCallUtil; + + @Value("${custom.api_kic_msg_key}") + private String strApiKicMsgKey; // KIC 메신저서버 api key + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException + { + log.info(" >>>>>>>>>> MailKaTalkSendKiccJob Executed <<<<<<<<<< "); + + JobDataMap dataMap = context.getJobDetail().getJobDataMap(); + + log.info("dataMap date : {}", dataMap.get("date")); + log.info("dataMap executeCount : {}", dataMap.get("executeCount")); + + // 전송메일 대상 조회 + List> listNctn = mailKaTalkService.selectNctnProcSndInfo(); + + for(LinkedHashMap tempMap : listNctn) + { + String strProcRsltCn = ""; + String strProcRsltCd = ""; + + // 메일 처리 + if(tempMap.get("procTy").equals("1")) + { + Map bodyMap = new HashMap(); + + String strMailAddress = CommonUtil.nvl(tempMap.get("rcvrAddr")); + + // 2025.07.01 나혁제 자기 메일로 처리 + // bodyMap.put("email" , "hong@kic.go.kr"); + bodyMap.put("email" , CommonUtil.nvl(tempMap.get("rcvrAddr")) ); + bodyMap.put("to" , CommonUtil.nvl(tempMap.get("rcvrAddr")) ); + bodyMap.put("subject" , CommonUtil.nvl(tempMap.get("ttl")) ); + bodyMap.put("content" , CommonUtil.nvl(tempMap.get("bdy")) ); + // bodyMap.put("content" , "itms 메일테스트 입니다. 메일 삭제해주세요." ); + bodyMap.put("contentType" , "text/html" ); + + try + { + // 메일주소가 없는경우 오류 처리 + if(strMailAddress.equals("")) + { + strProcRsltCn = "메일주소 존재하지 않음"; + strProcRsltCd = "-1"; + } + else + { + // Map retMap = restApiCallUtil.RestApiCallNoAuthKicMailTextHtml(bodyMap, "/test/kicMailTest.do"); + Map retMap = restApiCallUtil.RestApiCallNoAuthKicMailTextHtml(bodyMap, "/api/mail/send/json"); + + strProcRsltCn = retMap.toString(); + strProcRsltCd = "0"; + } + } + catch(Exception e) + { + e.printStackTrace(); + + strProcRsltCn = e.toString(); + strProcRsltCd = "-2"; + } + } + // 메신저 처리 + else if(tempMap.get("procTy").equals("3")) + { + String strTtl = CommonUtil.nvl(tempMap.get("ttl")); + String strRcvrAddr = CommonUtil.nvl(tempMap.get("rcvrAddr")); + String strBdy = CommonUtil.nvl(tempMap.get("bdy")); + String[] srBdy = strBdy.split(","); + + try + { + /* + Map messageMap = new HashMap(); + + messageMap.put("\""+"title" +"\"" , "\""+strTtl+"\"" ); + messageMap.put("\""+"context" +"\"" , "\""+srBdy[0]+"\"" ); + + Map messageFuncMap = new HashMap(); + + messageFuncMap.put("\""+"name" +"\"", "\""+"상세페이지로이동"+"\"" ); + messageFuncMap.put("\""+"type" +"\"", "\""+"link" +"\"" ); + messageFuncMap.put("\""+"data" +"\"", "\""+srBdy[1] +"\"" ); + + messageMap.put("\""+"func"+"\"", messageFuncMap); + */ + + // JSONParser parser = new JSONParser(); + + /* + Map messageMap = new HashMap(); + + messageMap.put("title" , strTtl ); + messageMap.put("context" , srBdy[0] ); + + Map messageFuncMap = new HashMap(); + + messageFuncMap.put("name" , "상세페이지로이동" ); + messageFuncMap.put("type" , "link" ); + messageFuncMap.put("data" , srBdy[1] ); + + messageMap.put("func", messageFuncMap); + + StringBuilder strBulider = new StringBuilder(1000); + + strBulider.append("\""); + strBulider.append(messageMap.toString().replaceAll("\"", "\\\"")); + strBulider.append("\""); + */ + + // 변환처리 + // JSONObject jsonObj = ConvertUtils.getJsonFromMap(messageMap); + + + Map bodyMap = new HashMap(); + + List> targetsList = new ArrayList<>(); + + Map targetMap = new HashMap(); + targetMap.put("targetCode", strRcvrAddr); + targetMap.put("targetType", "UR"); + targetsList.add(targetMap); + + JSONObject jsonObj = new JSONObject(); + + // String str = "\"; + + jsonObj.put("name", "상세페이지로이동"); + jsonObj.put("type", "link"); + jsonObj.put("data", srBdy[1]); + + JSONObject jObj = new JSONObject(); + + jObj.put("title" , strTtl); + jObj.put("context", srBdy[0]); + + jObj.put("func", jsonObj); + + StringBuilder strBulider = new StringBuilder(100); + + // strBulider.append("\""); + strBulider.append(jObj.toString().replaceAll("\"", "\\\"")); + // strBulider.append("\""); + + // bodyMap 구성 + bodyMap.put("SubjectCode", strApiKicMsgKey); + bodyMap.put("targets" , targetsList ); + + // bodyMap.put("message" , jsonObj.toString() ); + + bodyMap.put("message" , strBulider.toString() ); + // bodyMap.put("message" , messageMap.toString() ); + // bodyMap.put("message" , messageMap ); + // bodyMap.put("message" , "테스트" ); + + // Map retMap = restApiCallUtil.RestApiCallNoAuthKicMsg( bodyMap, "/test/kicMsgTest.do"); + Map retMap = restApiCallUtil.RestApiCallNoAuthKicMsg( bodyMap, "/server/na/notice"); + + strProcRsltCn = retMap.toString(); + strProcRsltCd = "0"; + } + catch(Exception e) + { + strProcRsltCn = e.toString(); + strProcRsltCd = "-2"; + } + } + // 오류처리 + else + { + strProcRsltCn = "알수 없는 구분값"; + strProcRsltCd = (strProcRsltCn.equals("")) ? "0" : "-1"; + } + + LinkedHashMap inputMap = new LinkedHashMap(); + + inputMap.put("procRsltCn" , strProcRsltCn); + inputMap.put("procRsltCd" , strProcRsltCd); + inputMap.put("nctnEsntlId" , tempMap.get("nctnEsntlId")); + + mailKaTalkService.updateNtcnProcSndInfo(inputMap); + } + + //JobDataMap를 통해 Job의 실행 횟수를 받아서 횟수 + 1을한다. + int cnt = (int) dataMap.get("executeCount"); + dataMap.put("executeCount", ++cnt); + dataMap.put("date", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + log.info(" <<<<<<<<<< MailKaTalkSendKiccJob Executed >>>>>>>>>> "); + } + + +} \ No newline at end of file diff --git a/batch/bin/main/com/urpsys/itmsbatch/cmm/service/CmmUseService.class b/batch/bin/main/com/urpsys/itmsbatch/cmm/service/CmmUseService.class new file mode 100644 index 00000000..7d98291d Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/cmm/service/CmmUseService.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/cmm/service/KicInsaInterService.class b/batch/bin/main/com/urpsys/itmsbatch/cmm/service/KicInsaInterService.class new file mode 100644 index 00000000..fb979695 Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/cmm/service/KicInsaInterService.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/cmm/service/MailKaTalkService.class b/batch/bin/main/com/urpsys/itmsbatch/cmm/service/MailKaTalkService.class new file mode 100644 index 00000000..c15c7ff9 Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/cmm/service/MailKaTalkService.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/srm/dao/IncidentHistDao.class b/batch/bin/main/com/urpsys/itmsbatch/srm/dao/IncidentHistDao.class new file mode 100644 index 00000000..d1560fd0 Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/srm/dao/IncidentHistDao.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/srm/dao/ReportHistDao.class b/batch/bin/main/com/urpsys/itmsbatch/srm/dao/ReportHistDao.class new file mode 100644 index 00000000..1def85ed Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/srm/dao/ReportHistDao.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/srm/excute/SendSearchSysJob.class b/batch/bin/main/com/urpsys/itmsbatch/srm/excute/SendSearchSysJob.class new file mode 100644 index 00000000..4eb57856 Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/srm/excute/SendSearchSysJob.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/srm/service/IncidentHistService.class b/batch/bin/main/com/urpsys/itmsbatch/srm/service/IncidentHistService.class new file mode 100644 index 00000000..4d72d79a Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/srm/service/IncidentHistService.class differ diff --git a/batch/bin/main/com/urpsys/itmsbatch/srm/service/ReportHistService.class b/batch/bin/main/com/urpsys/itmsbatch/srm/service/ReportHistService.class new file mode 100644 index 00000000..5c1f02e1 Binary files /dev/null and b/batch/bin/main/com/urpsys/itmsbatch/srm/service/ReportHistService.class differ diff --git a/batch/bin/main/com/urpsys/kicinsa/dao/KicGroupwareDao.class b/batch/bin/main/com/urpsys/kicinsa/dao/KicGroupwareDao.class new file mode 100644 index 00000000..814bbc37 Binary files /dev/null and b/batch/bin/main/com/urpsys/kicinsa/dao/KicGroupwareDao.class differ diff --git a/batch/bin/main/log4jdbc.log4j2.properties b/batch/bin/main/log4jdbc.log4j2.properties new file mode 100644 index 00000000..85d1ede9 --- /dev/null +++ b/batch/bin/main/log4jdbc.log4j2.properties @@ -0,0 +1,2 @@ +log4jdbc.spylogdelegator.name = net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator +log4jdbc.dump.sql.maxlinelength=0 \ No newline at end of file diff --git a/batch/bin/main/logback-spring.xml b/batch/bin/main/logback-spring.xml new file mode 100644 index 00000000..825e85e5 --- /dev/null +++ b/batch/bin/main/logback-spring.xml @@ -0,0 +1,102 @@ + + + ${HOSTNAME} + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{36} - %msg%n + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/bin/main/mapper/kicinsadb/config/MybatisConfig.xml b/batch/bin/main/mapper/kicinsadb/config/MybatisConfig.xml new file mode 100644 index 00000000..1d2a105d --- /dev/null +++ b/batch/bin/main/mapper/kicinsadb/config/MybatisConfig.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/bin/main/mapper/kicinsadb/sqlmap/insa/KicGroupwareMapper.xml b/batch/bin/main/mapper/kicinsadb/sqlmap/insa/KicGroupwareMapper.xml new file mode 100644 index 00000000..28aa8899 --- /dev/null +++ b/batch/bin/main/mapper/kicinsadb/sqlmap/insa/KicGroupwareMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/bin/main/mapper/kicinsadb/sqlmap/insa/KicGroupwareMapper.xml.20250701 b/batch/bin/main/mapper/kicinsadb/sqlmap/insa/KicGroupwareMapper.xml.20250701 new file mode 100644 index 00000000..71736f70 --- /dev/null +++ b/batch/bin/main/mapper/kicinsadb/sqlmap/insa/KicGroupwareMapper.xml.20250701 @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/bin/main/mapper/primarydb/config/MybatisConfig.xml b/batch/bin/main/mapper/primarydb/config/MybatisConfig.xml new file mode 100644 index 00000000..78cf9a7c --- /dev/null +++ b/batch/bin/main/mapper/primarydb/config/MybatisConfig.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/bin/main/mapper/primarydb/sqlmap/QuartzMapper.xml b/batch/bin/main/mapper/primarydb/sqlmap/QuartzMapper.xml new file mode 100644 index 00000000..34d91a35 --- /dev/null +++ b/batch/bin/main/mapper/primarydb/sqlmap/QuartzMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/bin/main/mapper/primarydb/sqlmap/bbs/BbsInfoHistMapper.xml b/batch/bin/main/mapper/primarydb/sqlmap/bbs/BbsInfoHistMapper.xml new file mode 100644 index 00000000..6172cec2 --- /dev/null +++ b/batch/bin/main/mapper/primarydb/sqlmap/bbs/BbsInfoHistMapper.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + /* BbsInfoHistDao.updateBbsInfoHist */ + UPDATE TB_BBS_INFO_HIST + SET SRCH_PROC_YN = #{srchProcYn} + , SRCH_PROC_SND_TM = NOW() + , SRCH_PROC_SND_MSG = #{srchProcSndMsg} + WHERE NTT_ID = #{nttId} + AND EVENT_TIME = #{eventTime} + AND EVENT_TYPE = #{eventType} + + + + + + + + + + \ No newline at end of file diff --git a/batch/bin/main/mapper/primarydb/sqlmap/cmm/CmmUseMapper.xml b/batch/bin/main/mapper/primarydb/sqlmap/cmm/CmmUseMapper.xml new file mode 100644 index 00000000..7fb44af1 --- /dev/null +++ b/batch/bin/main/mapper/primarydb/sqlmap/cmm/CmmUseMapper.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/batch/bin/main/mapper/primarydb/sqlmap/cmm/KicItsmMapper.xml b/batch/bin/main/mapper/primarydb/sqlmap/cmm/KicItsmMapper.xml new file mode 100644 index 00000000..f5babd49 --- /dev/null +++ b/batch/bin/main/mapper/primarydb/sqlmap/cmm/KicItsmMapper.xml @@ -0,0 +1,182 @@ + + + + + + + + + /* KicItsmDao.insertDeptManage */ + INSERT INTO TB_KIC_ORG_MAP + ( ORG_ID + , KIC_ORGID + , KIC_ORGID_NM + , REG_DTM + ) + VALUES + ( #{orgId} + , #{kicOrgId} + , #{kicOrgIdNm} + , SYSDATE() + ) + + + + + /* KicItsmDao.insertDeptManage */ + INSERT INTO TB_ORG_INFO + ( ORG_ID + , ORG_NM + , ORG_DESC + ) + VALUES + ( #{orgId} + , #{kicOrgIdNm} + , #{kicOrgIdNm}) + + + + + + + + /* KicItsmDao.insertItsmUser */ + INSERT INTO TB_TASK_USER_INFO + ( ESNTL_ID + , TASK_USER_ID + , USER_NM + , PWD + , EMPNO + , SEX_CD + , REGN_NO + , HOUSE_MIDDLE_TELNO + , HOUSE_END_TELNO + , OFFM_TELNO + , MOVE_TELNO + , EML_ADDR + , JBPS_NM + , ORG_ID + , USER_STACD + , JOIN_DTM + , LAST_PWD_CHG_DTM + , HOUSE_ADRES + , PWD_HINT + , PWD_RANS + , ZIP_NO + , OTSD_CONN_YN + ) + VALUES ( + #{uniqId} + , #{userCode} + , #{userName} + , '$2a$10$ysPl0nYOLZXSVemDz1HQFukyaiSs05J9iwdBtwWxK7hrXrdG0MN2W' + , #{userCode} + , '' + , '0000' + , '0000' + , '0000' + , '' + , #{mobile} + , #{mailAddress} + , #{jobPositionName} + , #{orgId} + , CASE WHEN ISNULL(#{retireDate}) || #{retireDate} = '' THEN 'P' + ELSE 'D' + END + , sysdate() + , sysdate() + , '주소없음' + , 'P01' + , '한국투자공사' + , '' + , 'Y' + ) + + + + + + /* KicItsmDao.insertItsmUserMenu */ + INSERT INTO TB_USER_CRYP_CNF + ( CRYP_CNF_TRG_ID + , MEM_TYCD + , AUTH_CD + ) + VALUES ( + #{uniqId} + , 'USR03' + , 'ROLE_EMPTY' + ) + + + + /* KicItsmDao.insertItsmUser */ + UPDATE TB_TASK_USER_INFO + SET USER_NM = #{userName} + , MOVE_TELNO = #{mobile} + , EML_ADDR = #{mailAddress} + , JBPS_NM = #{jobPositionName} + , ORG_ID = #{orgId} + , USER_STACD = CASE WHEN ISNULL(#{retireDate}) || #{retireDate} = '' THEN 'P' + ELSE 'D' + END + , LAST_PWD_CHG_DTM = sysdate() + , OTSD_CONN_YN = 'Y' + WHERE ESNTL_ID = #{uniqId} + + + + + + + + + + + + + diff --git a/batch/bin/main/mapper/primarydb/sqlmap/cmm/KicItsmMapper.xml,20250701 b/batch/bin/main/mapper/primarydb/sqlmap/cmm/KicItsmMapper.xml,20250701 new file mode 100644 index 00000000..7f1246ca --- /dev/null +++ b/batch/bin/main/mapper/primarydb/sqlmap/cmm/KicItsmMapper.xml,20250701 @@ -0,0 +1,167 @@ + + + + + + + + + /* KicItsmDao.insertDeptManage */ + INSERT INTO TB_KIC_ORG_MAP + ( ORG_ID + , KIC_ORGID + , KIC_ORGID_NM + , REG_DTM + ) + VALUES + ( #{orgId} + , #{kicOrgId} + , #{kicOrgIdNm} + , SYSDATE() + ) + + + + + /* KicItsmDao.insertDeptManage */ + INSERT INTO TB_ORG_INFO + ( ORG_ID + , ORG_NM + , ORG_DESC + ) + VALUES + ( #{orgId} + , #{kicOrgIdNm} + , #{kicOrgIdNm}) + + + + + + + + /* KicItsmDao.insertItsmUser */ + INSERT INTO TB_TASK_USER_INFO + ( ESNTL_ID + , TASK_USER_ID + , USER_NM + , PWD + , EMPNO + , SEX_CD + , REGN_NO + , HOUSE_MIDDLE_TELNO + , HOUSE_END_TELNO + , OFFM_TELNO + , MOVE_TELNO + , EML_ADDR + , JBPS_NM + , ORG_ID + , USER_STACD + , JOIN_DTM + , LAST_PWD_CHG_DTM + , HOUSE_ADRES + , PWD_HINT + , PWD_RANS + , ZIP_NO + ) + VALUES ( + #{uniqId} + , #{empId} + , #{empNm} + , '$2a$10$ysPl0nYOLZXSVemDz1HQFukyaiSs05J9iwdBtwWxK7hrXrdG0MN2W' + , #{empId} + , #{sex} + , '0000' + , '0000' + , '0000' + , #{tel} + , #{htel} + , #{emailComp} + , #{posgrdCdNm} + , #{orgId} + , CASE WHEN #{serviceCd} = 'Y' THEN 'P' + WHEN #{serviceCd} = 'H' THEN 'A' + WHEN #{serviceCd} = 'N' THEN 'D' + END + , sysdate() + , sysdate() + , '주소없음' + , 'P01' + , '한국투자공사' + , '' + ) + + + + /* KicItsmDao.insertItsmUser */ + UPDATE TB_TASK_USER_INFO + SET USER_NM = #{empNm} + , SEX_CD = #{sex} + , OFFM_TELNO = #{tel} + , MOVE_TELNO = #{htel} + , EML_ADDR = #{emailComp} + , JBPS_NM = #{posgrdCdNm} + , ORG_ID = #{orgId} + , USER_STACD = CASE WHEN #{serviceCd} = 'Y' THEN 'P' + WHEN #{serviceCd} = 'H' THEN 'A' + WHEN #{serviceCd} = 'N' THEN 'D' + END + , LAST_PWD_CHG_DTM = sysdate() + WHERE ESNTL_ID = #{uniqId} + + + + + + + + + + + + + diff --git a/batch/bin/main/mapper/primarydb/sqlmap/cmm/MailKaTalkMapper.xml b/batch/bin/main/mapper/primarydb/sqlmap/cmm/MailKaTalkMapper.xml new file mode 100644 index 00000000..c126b76b --- /dev/null +++ b/batch/bin/main/mapper/primarydb/sqlmap/cmm/MailKaTalkMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + /* CmmUseDao.insertNtcnProcSndInfo */ + UPDATE TB_NTCN_PROC_SND_INFO + SET PROC_DT = SYSDATE() + , PROC_RSLT_CD = #{procRsltCd} + , PROC_RSLT_CN = #{procRsltCn} + WHERE NTCN_ESNTL_ID = #{nctnEsntlId} + + + + + + + + + + + \ No newline at end of file diff --git a/batch/bin/main/mapper/primarydb/sqlmap/ind/NcrdMapper.xml b/batch/bin/main/mapper/primarydb/sqlmap/ind/NcrdMapper.xml new file mode 100644 index 00000000..9f12afc6 --- /dev/null +++ b/batch/bin/main/mapper/primarydb/sqlmap/ind/NcrdMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/bin/main/mapper/primarydb/sqlmap/srm/IncidentHistMapper.xml b/batch/bin/main/mapper/primarydb/sqlmap/srm/IncidentHistMapper.xml new file mode 100644 index 00000000..26b8c506 --- /dev/null +++ b/batch/bin/main/mapper/primarydb/sqlmap/srm/IncidentHistMapper.xml @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE CM_INCIDENT_HIST + SET SRCH_PROC_YN = #{srchProcYn} + , SRCH_PROC_SND_TM = NOW() + , SRCH_PROC_SND_MSG = #{srchProcSndMsg} + WHERE IN_INCIDENT_SEQ = #{inIncidentSeq} + AND EVENT_TIME = #{eventTime} + AND EVENT_TYPE = #{eventType} + + + + + + + + + + + + + + + + + + + + + + + diff --git a/batch/bin/main/mapper/primarydb/sqlmap/srm/ReportHistMapper.xml b/batch/bin/main/mapper/primarydb/sqlmap/srm/ReportHistMapper.xml new file mode 100644 index 00000000..2040e556 --- /dev/null +++ b/batch/bin/main/mapper/primarydb/sqlmap/srm/ReportHistMapper.xml @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* ReportHistDao.updateReportHist */ + UPDATE CM_REPORT_HIST + SET SRCH_PROC_YN = #{srchProcYn} + , SRCH_PROC_SND_TM = NOW() + , SRCH_PROC_SND_MSG = #{srchProcSndMsg} + WHERE IN_REPORT_SEQ = #{inReportSeq} + AND EVENT_TIME = #{eventTime} + AND EVENT_TYPE = #{eventType} + + + + + + + + + \ No newline at end of file diff --git a/batch/bin/main/messages/message-common.properties b/batch/bin/main/messages/message-common.properties new file mode 100644 index 00000000..fc3577a6 --- /dev/null +++ b/batch/bin/main/messages/message-common.properties @@ -0,0 +1,467 @@ +fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +fail.common.sql=sql \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! error code: {0}, error msg: {1} +info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. + +#UI Common resource# +table.num=\ubc88\ud638 +table.regdate=\ub4f1\ub85d\uc77c +table.reger=\ub4f1\ub85d\uc790 +table.select=\uc120\ud0dd +title.html=egovframe common component +title.detail=\uc0c1\uc138\uc870\ud68c +title.inquire=\uc870\ud68c +title.update=\uc218\uc815 +title.create=\ub4f1\ub85d +title.delete=\uc0ad\uc81c +title.save=\uc800\uc7a5 +title.list=\ubaa9\ub85d +title.searchCondition=\uac80\uc0c9\uc870\uac74 +title.search=\uac80\uc0c9\uc5b4 +title.reply=\ub2f5\uae00 +title.scrap=\uc2a4\ud06c\ub7a9 +title.comment=\ub313\uae00 +title.attachedFileSelect=\ud30c\uc77c\uc120\ud0dd +title.attachedFileDelete=\ud30c\uc77c\uc0ad\uc81c +title.link=\ub9c1\ud06c +title.management=\uad00\ub9ac +title.all=\uc804\uccb4 + +input.select=\uc120\ud0dd\ud558\uc138\uc694 +input.cSelect=\uc120\ud0dd +input.input=\uc785\ub825 +input.button=\ubc84\ud2bc +input.selectAll.title=\uc804\uccb4\uc120\ud0dd\uccb4\ud06c\ubc15\uc2a4 +input.yes=\uc608 +input.no=\uc544\ub2c8\uc624 + +select.searchCondition=\uc870\ud68c\uc870\uac74 \uc120\ud0dd + +button.select=\uc120\ud0dd +button.search=\uac80\uc0c9 +button.use=\uc0ac\uc6a9 +button.notUsed=\uc0ac\uc6a9\uc911\uc9c0 +button.inquire=\uc870\ud68c +button.update=\uc218\uc815 +button.create=\ub4f1\ub85d +button.delete=\uc0ad\uc81c +button.deleteDatabase=\uc644\uc804\uc0ad\uc81c +button.close=\ub2eb\uae30 +button.save=\uc800\uc7a5 +button.list=\ubaa9\ub85d +button.reset=\ucde8\uc18c +button.passwordUpdate=\uc554\ud638\ubcc0\uacbd +button.subscribe=\uac00\uc785\uc2e0\uccad +button.realname=\uc2e4\uba85\ud655\uc778 +button.moveToGpin=GPIN\uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.moveToIhidnum=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 \uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.agree=\ub3d9\uc758 +button.disagree=\ube44\ub3d9\uc758 +button.possible=\uac00\ub2a5 +button.impossible=\ubd88\uac00\ub2a5 +button.qnaregist=Q&A\ub4f1\ub85d +button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d +button.preview=\ubbf8\ub9ac\ubcf4\uae30 +button.next=\ub2e4\uc74c +button.add=\ubc14\ub85c\ucd94\uac00 +button.confirm=\ud655\uc778 +button.back = \ub4a4\ub85c +button.yes = \uc608 +button.no = \uc544\ub2c8\uc624 +button.home = \ud648 +button.user = \uc0ac\uc6a9\uc790\uc9c0\uc6d0 +button.cop = \ud611\uc5c5 +button.wrkstart = \ucd9c\uadfc +button.wrkend = \ud1f4\uadfc +button.reply = \ub2f5\uae00 +button.scrap = \uc2a4\ud06c\ub7a9 +button.comment = \ub313\uae00 +button.excel = \uc5d1\uc140 +button.init=\ucd08\uae30\ud654 +button.acknowledgment=\uc2b9\uc778 +button.cancelAcknowledgment=\uc2b9\uc778\ucde8\uc18c +button.bulkUpload=\uc77c\uad04\ub4f1\ub85d +button.log = \ub85c\uadf8 +button.set = \uc124\uc815 +button.move = \uc774\ub3d9 +button.answer = \ub2f5\ubcc0 + +#UI Common Message# +common.noScriptTitle.msg=\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c\ub294 \uc77c\ubd80 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uc2e4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.searchCondition.msg=\uc774 \ub808\uc774\uc544\uc6c3\uc740 \ud558\ub2e8 \uc815\ubcf4\ub97c \ub300\ud55c \uac80\uc0c9 \uc815\ubcf4\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. + +common.summary.list={0}\uc758 \ub0b4\uc5ed\uc5d0 \ub300\ud55c \ubaa9\ub85d\uc744 \ucd9c\ub825\ud569\ub2c8\ub2e4. +common.summary.regist={0}\uc758 \ub4f1\ub85d \uac00\ub2a5\ud55c \ub0b4\uc6a9\uc744 \uc785\ub825\ud558\uc5ec \ub4f1\ub85d \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \ub4f1\ub85d\ud55c\ub2e4. +common.summary.update={0}\uc758 \ub4f1\ub85d \uac00\ub2a5\ud55c \ub0b4\uc6a9\uc744 \uc785\ub825\ud558\uc5ec \ub4f1\ub85d \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \uc218\uc815\ud55c\ub2e4. +common.summary.inqire={0}\uc758 \ub0b4\uc5ed\uc5d0 \ub300\ud55c \uc0c1\uc138\uc870\ud68c \ub0b4\uc5ed\uc744 \ucd9c\ub825\ud569\ub2c8\ub2e4. + +common.save.msg=\uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.regist.msg=\ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.delete.msg=\uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.update.msg=\uc218\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nodata.msg=\uc790\ub8cc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uac80\uc0c9\uc870\uac74\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694 +common.required.msg=(\uc740)\ub294 \ud544\uc218\uc785\ub825\ud56d\ubaa9\uc785\ub2c8\ub2e4. +common.acknowledgement.msg=\uc2b9\uc778\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.acknowledgementcancel.msg=\uc2b9\uc778\ucde8\uc18c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nocomment.msg=\ub313\uae00\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. +common.noguest.msg=\uc791\uc131\ub41c \ubc29\uba85\ub85d\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. + +success.request.msg = \uc694\uccad\ucc98\ub9ac\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc218\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.select=\uc815\uc0c1\uc801\uc73c\ub85c \uc870\ud68c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.insert=\uc815\uc0c1\uc801\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.update=\uc815\uc0c1\uc801\uc73c\ub85c \uc218\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.delete=\uc815\uc0c1\uc801\uc73c\ub85c \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +common.imposbl.fileupload = \ub354 \uc774\uc0c1 \ud30c\uc77c\uc744 \ucca8\ubd80\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.isConfmDe.msg=\uc2b9\uc778\uc77c\uc790\ub97c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4. +common.isExist.msg = \uc774\ubbf8 \uc874\uc7ac\ud558\uac70\ub098 \uacfc\uac70\uc5d0 \ub4f1\ub85d\uc774 \ub418\uc5c8\ub358 \uc0c1\ud0dc\uc785\ub2c8\ub2e4. + +fail.common.insert = \uc0dd\uc131\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.update = \uc218\uc815\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete = \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete.upperMenuExist = \ucc38\uc870\ub418\ub294 \uba54\ub274\uac00 \uc788\uc5b4 \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.select = \uc870\ud68c\uc5d0 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.login = \ub85c\uadf8\uc778 \uc815\ubcf4\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.common.loginIncorrect = {0}\ud68c \uc774\uc0c1 \ub85c\uadf8\uc778 \uc811\uc18d\uc774 \uc2dc\ub3c4 \ub418\uc5b4 \uacc4\uc815\uc774 \uc7a0\uaca8\uc2b5\ub2c8\ub2e4! +fail.common.login.password = \ud328\uc2a4\uc6cc\ub4dc \uc790\ub9ac \uc218\uac00 \uc77c\uce58 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.(8\uc790\ub9ac \uc774\uc0c1 20\uc790\ub9ac \uc774\ud558) +fail.common.idsearch = \uc544\uc774\ub514\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.common.pwsearch = \ube44\ubc00\ubc88\ud638\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.request.msg = \uc694\uccad\ucc98\ub9ac\ub97c \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.login.ip = \ub4f1\ub85d\ub41c IP\uac00 \uc544\ub2c8\ubbc0\ub85c \ub85c\uadf8\uc778\uc774 \uac70\ubd80\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +#UI User Message# +fail.user.passwordUpdate1=\ud604\uc7ac \ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.passwordUpdate2=\ube44\ubc00\ubc88\ud638\uc640 \ube44\ubc00\ubc88\ud638 \ud655\uc778\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +info.user.rlnmCnfirm=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.connectFail=\uc2dc\uc2a4\ud15c \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.(\uc778\uc99d\uc11c\ubc84 \uc5f0\uacb0 \uc2e4\ud328) +info.user.rlnmPinCnfirm=\uacf5\uacf5 \uc544\uc774\ud540 \uc544\uc774\ub514\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#Vlidator Errors# +errors.prefix=
+errors.suffix=

+ +errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.invalid={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uac12\uc785\ub2c8\ub2e4. +errors.minInteger={0}\uc740(\ub294) \uc720\ud6a8\ud55c \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4. 1 \uc774\uc0c1\uc758 \uac12\uc744 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.byte={0}\uc740(\ub294) byte\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0}\uc740(\ub294) short\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0}\uc740(\ub294) integer \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.long={0}\uc740(\ub294) long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0}\uc740(\ub294) float \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0}\uc740(\ub294) double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. + +errors.date={0}\uc740(\ub294) \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0}\uc740(\ub294) {1}\uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. +errors.ip=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 IP\uc8fc\uc18c\uc785\ub2c8\ub2e4. +errors.english={0}\uc740(\ub294) \uc601\ubb38\ub9cc \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc788\uc2b5\ub2c8\ub2e4. +errors.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +errors.password1={0}\uc740(\ub294) 8~20\uc790 \ub0b4\uc5d0\uc11c \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.password2={0}\uc740(\ub294) \ud55c\uae00,\ud2b9\uc218\ubb38\uc790,\ub744\uc5b4\uc4f0\uae30\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +errors.password3={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.password4={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.pwdcheckcomb3={0}\uc740(\ub294) \uc601\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569\uc73c\ub85c \uc774\ub8e8\uc5b4 \uc838\uc57c \ud569\ub2c8\ub2e4. +errors.pwdcheckcomb4={0}\uc740(\ub294) \uc601\ubb38\ub300\ubb38\uc790,\uc601\ubb38\uc18c\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569\uc73c\ub85c \uc774\ub8e8\uc5b4 \uc838\uc57c \ud569\ub2c8\ub2e4. +errors.pwdcheckseries={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 3\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.pwdcheckrepeat={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 3\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +error.security.runtime.error = error + +info.password.rule.password1 = - 8\uc774\uc0c1 20\uc790\ub9ac \uc774\ud558 +info.password.rule.pwdcheckcomb3 = - \uc601\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569 +info.password.rule.pwdcheckcomb4 = - \uc601\ubb38\ub300\ubb38\uc790,\uc601\ubb38\uc18c\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569 +info.password.rule.pwdcheckseries = - 3\uc790\ub9ac \uc774\uc0c1 \ubc18\ubcf5 \ub610\ub294 \uc5f0\uc18d\ub41c \ubb38\uc790 \uc0ac\uc6a9 \uae08\uc9c0. \uc608)kkk , 321 \ub4f1 \uc0ac\uc6a9\uae08\uc9c0 + +#Xss Errors# +errors.xss.checkerUser=\ud574\ub2f9 \uae30\ub2a5\uc5d0 \ub300\ud55c \uc0ac\uc6a9 \ubc0f \ucc98\ub9ac \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. + +#File Upload / Download +errors.file.extension=\uc9c0\uc6d0\ub418\ub294 \ud30c\uc77c\uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.file.transfer=\ud30c\uc77c\uc804\uc1a1\uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. +success.file.transfer=\ud30c\uc77c\uc804\uc1a1\uc774 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +#common# +comCmmErr.button=\uc774\uc804 \ud398\uc774\uc9c0 + +#accessDenied# +comCmmErr.accessDenied.title=\ud604\uc7ac \ud398\uc774\uc9c0\uc5d0 \ub300\ud55c \uc811\uadfc\uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4! +comCmmErr.accessDenied.code=\uc0ac\uc6a9\uc790\uc811\uadfc\uad8c\ud55c \uc5d0\ub7ec + +#dataAccessFailure# +comCmmErr.dataAccessFailure.title=\ub370\uc774\ud130 \ucc98\ub9ac \uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4! +comCmmErr.dataAccessFailure.code=\ub370\uc774\ud130\ucc98\ub9ac \uc5d0\ub7ec + +#bizException# +comCmmErr.bizException.title=\ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1 \ucc98\ub9ac \uc911 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +comCmmErr.bizException.code=\ube44\uc988\ub2c8\uc2a4\ub85c\uc9c1\ucc98\ub9ac \uc5d0\ub7ec + +#runtimeException# +comCmmErr.runtimeException.title=\uc54c \uc218 \uc5c6\ub294 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +comCmmErr.runtimeException.code=\uc2dc\uc2a4\ud15c \uc5d0\ub7ec + +#sessionException# +comCmmErr.sessionException.title=\uc138\uc158\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4! +comCmmErr.sessionException.code=\uc138\uc158\ub9cc\ub8cc \uc5d0\ub7ec + + +#top# +comCmm.top.title=\uc804\uc790\uc815\ubd80 \ud45c\uc900\ud504\ub808\uc784\uc6cc\ud06c \uacf5\ud1b5\ucef4\ud3ec\ub10c\ud2b8 VERSION 4.0 +comCmm.top.leftSessionTime=\uc138\uc158\ub9cc\ub8cc \ub0a8\uc740\uc2dc\uac04 +comCmm.top.incSessionTime=\uc2dc\uac04\uc5f0\uc7a5 +comCmm.top.expiredSessionTime=\uc2dc\uac04\ub9cc\ub8cc +comCmm.top.expireSessionTimeInfo=\ub85c\uadf8\uc778 \uc138\uc158\uc2dc\uac04\uc774 \ub9cc\ub8cc \ub418\uc5c8\uc2b5\ub2c8\ub2e4. +comCmm.top.cantIncSessionTime=\uc2dc\uac04\uc744 \uc5f0\uc7a5\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +#left# +comCmm.mai.title=\ud3ec\ud138(\uc608\uc81c) \uba54\uc778\ud654\uba74 +comCmm.uat.title=\uc0ac\uc6a9\uc790\ub514\ub809\ud1a0\ub9ac/\ud1b5\ud569\uc778\uc99d +comCmm.sec.title=\ubcf4\uc548 +comCmm.sts.title=\ud1b5\uacc4/\ub9ac\ud3ec\ud305 +comCmm.cop.title=\ud611\uc5c5 +comCmm.uss.title=\uc0ac\uc6a9\uc790\uc9c0\uc6d0 +comCmm.sym.title=\uc2dc\uc2a4\ud15c\uad00\ub9ac +comCmm.ssi.title=\uc2dc\uc2a4\ud15c/\uc11c\ube44\uc2a4\uc5f0\uacc4 +comCmm.dam.title=\ub514\uc9c0\ud138 \uc790\uc0b0 \uad00\ub9ac +comCmm.com.title=\uc694\uc18c\uae30\uc220 +comCmm.ext.title=\uc678\ubd80 \ucd94\uac00 \ucef4\ud3ec\ub10c\ud2b8 + +#component# +#\ud3ec\ud0c8 \uba54\uc778\ud654\uba74# +comCmm.left.1=\ud3ec\ud138(\uc608\uc81c) \uba54\uc778\ud654\uba74 + +#\uc0ac\uc6a9\uc790\ub514\ub809\ud1a0\ub9ac/\ud1b5\ud569\uc778\uc99d# +comCmm.left.10=\ub85c\uadf8\uc778 +comCmm.left.30=\ub85c\uadf8\uc778\uc815\ucc45\uad00\ub9ac + +#\ubcf4\uc548# +comCmm.left.60=\uad8c\ud55c\uad00\ub9ac +comCmm.left.70=\uad8c\ud55c\uadf8\ub8f9\uad00\ub9ac +comCmm.left.80=\uadf8\ub8f9\uad00\ub9ac +comCmm.left.90=\ub864\uad00\ub9ac +comCmm.left.100=\ubd80\uc11c\uad8c\ud55c\uad00\ub9ac + +#\ud1b5\uacc4/\ub9ac\ud3ec\ud305# +comCmm.left.120=\uac8c\uc2dc\ubb3c\ud1b5\uacc4 +comCmm.left.130=\uc0ac\uc6a9\uc790\ud1b5\uacc4 +comCmm.left.140=\uc811\uc18d\ud1b5\uacc4 +comCmm.left.150=\ud654\uba74\ud1b5\uacc4 +comCmm.left.160=\ubcf4\uace0\uc11c\ud1b5\uacc4 +comCmm.left.161=\uc790\ub8cc\uc774\uc6a9\ud604\ud669\ud1b5\uacc4 + +\ud611\uc5c5 +comCmm.left.170=\ube14\ub85c\uadf8\uad00\ub9ac +comCmm.left.180=\uac8c\uc2dc\ud310\uad00\ub9ac +comCmm.left.190=\uac8c\uc2dc\ud310\uc0ac\uc6a9\uc815\ubcf4 +comCmm.left.200=\ud15c\ud50c\ub9bf\uad00\ub9ac +comCmm.left.250=\uc2a4\ud06c\ub7a9 \ubaa9\ub85d +comCmm.left.270=\ucee4\ubba4\ub2c8\ud2f0\uad00\ub9ac +comCmm.left.310=\ubb38\uc790\uba54\uc2dc\uc9c0 +comCmm.left.320=\ubd80\uc11c\uc77c\uc815\uad00\ub9ac +comCmm.left.330=\uc77c\uc815\uad00\ub9ac +comCmm.left.340=\uc77c\uc9c0\uad00\ub9ac +comCmm.left.350=\uc804\uccb4\uc77c\uc815\uad00\ub9ac +comCmm.left.360=\uba54\uc77c\ubc1c\uc1a1 +comCmm.left.361=\ubc1c\uc1a1\uba54\uc77c\ub0b4\uc5ed +comCmm.left.370=\uba85\ud568\uad00\ub9ac +comCmm.left.371=\ub0b4\uba85\ud568\ubaa9\ub85d +comCmm.left.380=\uc8fc\uc18c\ub85d\uad00\ub9ac +comCmm.left.390=\uac04\ubd80\uc77c\uc815\uad00\ub9ac +comCmm.left.400=\ubd80\uc11c\uc5c5\ubb34\ud568\uad00\ub9ac +comCmm.left.401=\ubd80\uc11c\uc5c5\ubb34\uc815\ubcf4 +comCmm.left.410=\uc8fc\uac04/\uc6d4\uac04\ubcf4\uace0\uad00\ub9ac +comCmm.left.420=\uba54\ubaa8\ud560\uc77c\uad00\ub9ac +comCmm.left.430=\uba54\ubaa8\ubcf4\uace0 + +#\uc0ac\uc6a9\uc790\uc9c0\uc6d0# +comCmm.left.450=\uae30\uc5c5\ud68c\uc6d0\uad00\ub9ac +comCmm.left.460=\uc5c5\ubb34\uc0ac\uc6a9\uc790\uad00\ub9ac +comCmm.left.461=\ubd80\uc11c\uad00\ub9ac +comCmm.left.470=\uc77c\ubc18\ud68c\uc6d0\uad00\ub9ac +comCmm.left.480=\ub9c8\uc774\ud398\uc774\uc9c0\uad00\ub9ac +comCmm.left.490=\uc57d\uad00\uad00\ub9ac +comCmm.left.500=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45 +comCmm.left.510=\uac1c\uc778\uc815\ubcf4\ubcf4\ud638\uc815\ucc45\ud655\uc778 +comCmm.left.520=\ub3c4\uc6c0\ub9d0 +comCmm.left.530=\uc6a9\uc5b4\uc0ac\uc804 +comCmm.left.540=FAQ\uad00\ub9ac +comCmm.left.550=Q&A\uad00\ub9ac +comCmm.left.551=Q&A\ub2f5\ubcc0\uad00\ub9ac +comCmm.left.560=\ud589\uc815\uc804\ubb38\uc6a9\uc5b4\uc0ac\uc804 +comCmm.left.561=\ud589\uc815\uc804\ubb38\uc6a9\uc5b4\uc0ac\uc804\uad00\ub9ac +comCmm.left.570=\uc628\ub77c\uc778\ub9e4\ub274\uc5bc +comCmm.left.571=\uc0ac\uc6a9\uc790\uc628\ub77c\uc778\ub9e4\ub274\uc5bc +comCmm.left.580=\uc0c1\ub2f4\uad00\ub9ac +comCmm.left.581=\uc0c1\ub2f4\ub2f5\ubcc0\uad00\ub9ac +comCmm.left.590=\uc124\ubb38\uad00\ub9ac +comCmm.left.600=\uc124\ubb38\uc870\uc0ac +comCmm.left.610=\uc124\ubb38\ud15c\ud50c\ub9bf\uad00\ub9ac +comCmm.left.620=\uc751\ub2f5\uc790\uad00\ub9ac +comCmm.left.630=\uc9c8\ubb38\uad00\ub9ac +comCmm.left.640=\ud56d\ubaa9\uad00\ub9ac +comCmm.left.650=\ud68c\uc758\uad00\ub9ac +comCmm.left.660=\uc628\ub77c\uc778poll\uad00\ub9ac +comCmm.left.661=\uc628\ub77c\uc778poll\ucc38\uc5ec +comCmm.left.670=\ub274\uc2a4\uad00\ub9ac +comCmm.left.680=\uc0ac\uc774\ud2b8\uad00\ub9ac +comCmm.left.700=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uad00\ub9ac +comCmm.left.710=\ud589\uc0ac/\uc774\ubca4\ud2b8/\ucea0\ud398\uc778 +comCmm.left.711=\uc678\ubd80\uc778\uc0ac\uc815\ubcf4 +comCmm.left.720=\ud31d\uc5c5\ucc3d\uad00\ub9ac +comCmm.left.730=\uc815\ubcf4\uc54c\ub9bc\uc774 +comCmm.left.740=\ubc30\ub108\uad00\ub9ac +comCmm.left.741=MYPAGE\ubc30\ub108\uad00\ub9ac +comCmm.left.750=\ub85c\uadf8\uc778\ud654\uba74\uc774\ubbf8\uc9c0\uad00\ub9ac +comCmm.left.760=\ucd5c\uadfc\uac80\uc0c9\uc5b4 \uc870\ud68c +comCmm.left.770=\uba54\uc778\uc774\ubbf8\uc9c0\uad00\ub9ac +comCmm.left.771=\uba54\uc778\uc774\ubbf8\uc9c0 \ubc18\uc601\uacb0\uacfc\ubcf4\uae30 +comCmm.left.780=\ud1b5\ud569\ub9c1\ud06c\uad00\ub9ac +comCmm.left.790=\uc0ac\uc6a9\uc790\ubd80\uc7ac\uad00\ub9ac +comCmm.left.800=\uc778\ud130\ub137\uc11c\ube44\uc2a4\uc548\ub0b4\ubc0f\uad00\ub9ac +comCmm.left.810=Wiki\uae30\ub2a5 +comCmm.left.820=RSS\ud0dc\uadf8\uad00\ub9ac +comCmm.left.822=RSS\ud0dc\uadf8\uc11c\ube44\uc2a4 +comCmm.left.830=Twitter\uc5f0\ub3d9 +comCmm.left.831=Facebook \uc5f0\ub3d9 +comCmm.left.840=\ucabd\uc9c0\uad00\ub9ac +comCmm.left.850=\ubc1b\uc740\ucabd\uc9c0\ud568\uad00\ub9ac +comCmm.left.860=\ubcf4\ub0b8\ucabd\uc9c0\ud568\uad00\ub9ac +comCmm.left.870=\ud68c\uc758\uc2e4\uad00\ub9ac +comCmm.left.871=\ud68c\uc758\uc2e4\uc608\uc57d\uad00\ub9ac +comCmm.left.890=\uc9c1\uc6d0\uacbd\uc870\uc0ac\uad00\ub9ac +comCmm.left.891=\uc9c1\uc6d0\uacbd\uc870\uc0ac\uc2b9\uc778\uad00\ub9ac +comCmm.left.900=\ud734\uac00\uad00\ub9ac +comCmm.left.901=\ud734\uac00\uc2b9\uc778\uad00\ub9ac +comCmm.left.902=\uac1c\uc778\uc5f0\ucc28\uad00\ub9ac +comCmm.left.910=\ub2f9\uc9c1\uad00\ub9ac +comCmm.left.911=\ub2f9\uc9c1\uccb4\ud06c\uad00\ub9ac +comCmm.left.920=\ud3ec\uc0c1\uad00\ub9ac +comCmm.left.921=\ud3ec\uc0c1\uc2b9\uc778\uad00\ub9ac +comCmm.left.930=\uae30\ub150\uc77c\uad00\ub9ac +comCmm.left.931=\uae30\ub150\uc77c\ubaa9\ub85d(\ud655\uc778\uc6a9) +comCmm.left.940=\ud589\uc0ac\uc2e0\uccad\uad00\ub9ac +comCmm.left.941=\ud589\uc0ac\uc811\uc218\uad00\ub9ac +comCmm.left.942=\ud589\uc0ac\uc811\uc218\uc2b9\uc778\uad00\ub9ac +comCmm.left.943=\uc57d\ub3c4 \uad00\ub9ac +comCmm.left.950=\ucd9c\ud1f4\uadfc\uad00\ub9ac + +#\uc2dc\uc2a4\ud15c\uad00\ub9ac# +comCmm.left.960=\uacf5\ud1b5\ubd84\ub958\ucf54\ub4dc +comCmm.left.970=\uacf5\ud1b5\uc0c1\uc138\ucf54\ub4dc +comCmm.left.980=\uacf5\ud1b5\ucf54\ub4dc +comCmm.left.1000=\uc6b0\ud3b8\ubc88\ud638\uad00\ub9ac +comCmm.left.1010=\ud589\uc815\ucf54\ub4dc\uad00\ub9ac +comCmm.left.1020=\uae30\uad00\ucf54\ub4dc\uc218\uc2e0 +comCmm.left.1030=\ub85c\uadf8\uad00\ub9ac +comCmm.left.1040=\uc0ac\uc6a9\ub85c\uadf8\uad00\ub9ac +comCmm.left.1050=\uc1a1/\uc218\uc2e0\ub85c\uadf8\uad00\ub9ac +comCmm.left.1060=\uc2dc\uc2a4\ud15c\uc774\ub825\uad00\ub9ac +comCmm.left.1070=\uc6f9\ub85c\uadf8\uad00\ub9ac +comCmm.left.1080=\uc811\uc18d\ub85c\uadf8\uad00\ub9ac +comCmm.left.1085=\uac1c\uc778\uc815\ubcf4\uc870\ud68c\ub85c\uadf8\uad00\ub9ac +comCmm.left.1090=\uba54\ub274\ub9ac\uc2a4\ud2b8\uad00\ub9ac +comCmm.left.1091=\uba54\ub274\uad00\ub9ac\ub9ac\uc2a4\ud2b8 +comCmm.left.1100=\uba54\ub274\uc0dd\uc131\uad00\ub9ac +comCmm.left.1101=\uc0ac\uc774\ud2b8\ub9f5 +comCmm.left.1110=\ubc14\ub85c\uac00\uae30\uba54\ub274\uad00\ub9ac +comCmm.left.1111=\ud504\ub85c\uadf8\ub7a8\uad00\ub9ac +comCmm.left.1112=\ud504\ub85c\uadf8\ub7a8\ubcc0\uacbd\uc694\uccad\uad00\ub9ac +comCmm.left.1113=\ud504\ub85c\uadf8\ub7a8\ubcc0\uacbd\uc694\uccad\ucc98\ub9ac +comCmm.left.1114=\ud504\ub85c\uadf8\ub7a8\ubcc0\uacbd\uc774\ub825 +comCmm.left.1120=\ubc30\uce58\uc791\uc5c5\uad00\ub9ac +comCmm.left.1130=\ubc30\uce58\uacb0\uacfc\uad00\ub9ac +comCmm.left.1140=\uc2a4\ucf00\uc904\ucc98\ub9ac +comCmm.left.1150=\ubc31\uc5c5\uad00\ub9ac +comCmm.left.1151=\ubc31\uc5c5\uacb0\uacfc\uad00\ub9ac +comCmm.left.1160=\ub124\ud2b8\uc6cc\ud06c\uad00\ub9ac +comCmm.left.1170=\uc11c\ubc84\uc815\ubcf4\uad00\ub9ac +comCmm.left.1171=\uc11c\ubc84(S/W)\ubaa9\ub85d +comCmm.left.1180=\uc7a5\uc560\uc2e0\uccad\uad00\ub9ac +comCmm.left.1190=\uc7a5\uc560\ucc98\ub9ac\uacb0\uacfc\uad00\ub9ac + +#\uc2dc\uc2a4\ud15c/\uc11c\ube44\uc2a4\uc5f0\uacc4# +comCmm.left.1210=\uc2dc\uc2a4\ud15c\uc5f0\uacc4\uad00\ub9ac +comCmm.left.1220=\uc5f0\uacc4\ud604\ud669\uad00\ub9ac +comCmm.left.1230=\uc5f0\uacc4\uba54\uc2dc\uc9c0\uad00\ub9ac +comCmm.left.1240=\uc5f0\uacc4\uae30\uad00\uad00\ub9ac + +#\ub514\uc9c0\ud138 \uc790\uc0b0 \uad00\ub9ac# +comCmm.left.1250=\uac1c\uc778\uc9c0\uc2dd\uad00\ub9ac +comCmm.left.1260=\uc9c0\uc2dd\ub9f5\uad00\ub9ac(\uc720\ud615) +comCmm.left.1261=\uc9c0\uc2dd\ub9f5\uad00\ub9ac(\uc870\uc9c1) +comCmm.left.1270=\uc9c0\uc2dd\uc804\ubb38\uac00\uad00\ub9ac +comCmm.left.1280=\uc9c0\uc2dd\uc815\ubcf4\uad00\ub9ac +comCmm.left.1290=\uc9c0\uc2dd\ud3c9\uac00\uad00\ub9ac +comCmm.left.1291=\uc9c0\uc2dd\uc815\ubcf4\uc81c\uacf5 + +#\uc694\uc18c\uae30\uc220# +comCmm.left.1300=\uacf5\ud734\uc77c\uad00\ub9ac(\ub2ec\ub825) +comCmm.left.2080=\uc1a1\uc218\uc2e0\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2090=DB\uc11c\ube44\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2100=HTTP\uc11c\ube44\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2110=\ud504\ub85c\uc138\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2120=\ub124\ud2b8\uc6cc\ud06c\uc11c\ube44\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2130=\ud30c\uc77c\uc2dc\uc2a4\ud15c\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2140=\ud504\ub85d\uc2dc\uc11c\ube44\uc2a4 +comCmm.left.2150=\ud30c\uc77c\ub3d9\uae30\ud654(\ub300\uc0c1\uc11c\ubc84) +comCmm.left.2160=\ub85c\uadf8\uc778\uc138\uc158\uc815\ubcf4\uccb4\ud06c +comCmm.left.2170=\uc11c\ubc84\uc790\uc6d0\ubaa8\ub2c8\ud130\ub9c1-\ub300\uc0c1\ubaa9\ub85d +comCmm.left.2180=\uc8fc\uc18c\uc815\ubcf4\uc5f0\uacc4 +comCmm.left.2200=\uc554\ud638\ud654/\ubcf5\ud638\ud654 + +#\uc678\ubd80 \ucd94\uac00 \ucef4\ud3ec\ub10c\ud2b8# +comCmm.left.3000=JFile \uac00\uc774\ub4dc +comCmm.left.3010=JFile \ud30c\uc77c \uc5c5\ub85c\ub4dc +comCmm.left.3020=JFile \ud30c\uc77c \ub2e4\uc6b4\ub85c\ub4dc +comCmm.left.3100=LDAP \uc870\uc9c1\ub3c4 \ud2b8\ub9ac +comCmm.left.3110=LDAP \uc870\uc9c1\ub3c4 \uadf8\ub798\ud504 +comCmm.left.3200=\uc6f9\uc18c\ucf13 \uba54\uc2e0\uc800 + +#EgovUnitContent(\ub85c\uadf8\uc778 \ud6c4 \ud398\uc774\uc9c0)# +comCmm.unitContent.1=\uacf5\ud1b5\ucef4\ud3ec\ub10c\ud2b8 +comCmm.unitContent.2=\ub2d8 \ud658\uc601\ud569\ub2c8\ub2e4. +comCmm.unitContent.3=\ub85c\uadf8\uc544\uc6c3 +comCmm.unitContent.4=\uc2e4\ud589 \uc2dc \uc624\ub958 \uc0ac\ud56d\uc774 \uc788\uc73c\uc2dc\uba74 \ud45c\uc900\ud504\ub808\uc784\uc6cc\ud06c\uc13c\ud130\ub85c \uc5f0\ub77d\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. +comCmm.unitContent.5=\ud654\uba74 \uc124\uba85 +comCmm.unitContent.6=\uc67c\ucabd \uba54\ub274\ub294 \uba54\ub274\uc640 \uad00\ub828\ub41c \ucef4\ud3ec\ub10c\ud2b8(\uba54\ub274\uad00\ub9ac, \uc0ac\uc774\ud2b8\ub9f5 \ub4f1)\ub4e4\uc758 \uc601\ud5a5\uc744 \ubc1b\uc9c0 \uc54a\uc73c\uba70, +comCmm.unitContent.7=\uac01 \ucef4\ud3ec\ub10c\ud2b8\ub97c \uc27d\uac8c \ucc3e\uc544\ubcfc \uc218 \uc788\ub294 \ubc14\ub85c \uac00\uae30 \ub9c1\ud06c\ud398\uc774\uc9c0\uc785\ub2c8\ub2e4. +comCmm.unitContent.8=\ucef4\ud3ec\ub10c\ud2b8 \uc124\uce58 \ud6c4 \uc124\uce58\ub41c \ucef4\ud3ec\ub10c\ud2b8\ub4e4\uc744 IncludedInfo annotation\uc744 \ud1b5\ud574 \ucc3e\uc544\ub0b8 \ud6c4 +comCmm.unitContent.9=\ud654\uba74\uc5d0 \ud45c\uc2dc\ud560 \uc815\ubcf4\ub97c \ucc98\ub9ac\ud558\ub294 Controller \ud074\ub798\uc2a4\uc785\ub2c8\ub2e4. +comCmm.unitContent.10=\uac1c\ubc1c \uc2dc \uba54\ub274 \uad6c\uc870\uac00 \uc7a1\ud788\uae30 \uc804\uc5d0 \ubc30\ud3ec \ud30c\uc77c\ub4e4\uc5d0 \ud3ec\ud568\ub41c \uacf5\ud1b5 \ucef4\ud3ec\ub10c\ud2b8\ub4e4\uc758 \ubaa9\ub85d\uc131 \ud654\uba74\uc5d0 URL\uc744 \uc81c\uacf5\ud558\uc5ec +comCmm.unitContent.11=\uac1c\ubc1c\uc790\uac00 \ud3b8\ub9ac\ud558\uac8c \ud65c\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \uc791\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +comCmm.unitContent.12=\uc6b4\uc601 \uc2dc\uc5d0 \ubcf8 \ucee8\ud2b8\ub864\uc744 \uc0ac\uc6a9\ud558\uc5ec \uba54\ub274\ub97c \uad6c\uc131\ud558\ub294 \uacbd\uc6b0, +comCmm.unitContent.13=\uc131\ub2a5 \ubb38\uc81c\ub97c \uc77c\uc73c\ud0a4\uac70\ub098 \uc0ac\uc6a9\uc790\ubcc4 \uba54\ub274 \uad6c\uc131\uc5d0 \uc624\ub958\ub97c \ubc1c\uc0dd\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 +comCmm.unitContent.14=\uc2e4 \uc6b4\uc601 \uc2dc\uc5d0\ub294 \uc0ad\uc81c\ud574\uc11c \ubc30\ud3ec\ud558\ub294 \uac83\uc744 \uad8c\uc7a5\ud574 \ub4dc\ub9bd\ub2c8\ub2e4. + +comCmm.unitContent.20=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ub9cc\ub8cc \uc548\ub0b4 + +#EgovExpirePwd(\ube44\ubc00\ubc88\ud638\ubcc0\uacbd \uacf5\uc9c0)# +comCmm.expirePwdContent.1=\ub85c\uadf8\uc778 +comCmm.expirePwdContent.2=\ub85c\uadf8\uc778 \uad6c\ubd84 + +comCmm.expirePwdContent.10=\uc5c5\ubb34\uc0ac\uc6a9\uc790 +comCmm.expirePwdContent.11=\uae30\uc5c5\ud68c\uc6d0 +comCmm.expirePwdContent.12=\uc77c\ubc18\ud68c\uc6d0 + +comCmm.expirePwdContent.21=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04\uc758 \ubcc0\uacbd\uc740 \ub2e4\uc74c \ud30c\uc77c\uc744 \ucc38\uc870\ud558\uc5ec \uc8fc\uc138\uc694. +comCmm.expirePwdContent.22=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ub9cc\ub8cc +comCmm.expirePwdContent.23=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04\uc774 \ub9cc\ub8cc \ub418\uc5c8\uc2b5\ub2c8\ub2e4. +comCmm.expirePwdContent.24=\uc548\uc804\ud55c \uac1c\uc778\uc815\ubcf4 \ubcf4\ud638\ub97c \uc704\ud574 \uc9c0\uae08 \ube44\ubc00\ubc88\ud638\ub97c \ubcc0\uacbd\ud574 \uc8fc\uc138\uc694! +comCmm.expirePwdContent.25=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ucd08\uacfc\uc77c\uc218 +comCmm.expirePwdContent.26=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 +comCmm.expirePwdContent.27=\ube44\ubc00\ubc88\ud638 \ubcc0\uacbd\ud6c4 \uacbd\uacfc\uc77c\uc218 +comCmm.expirePwdContent.28=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ucd08\uacfc\uc77c\uc218 +comCmm.expirePwdContent.29=\uc8fc\uae30\uc801\uc73c\ub85c \ube44\ubc00\ubc88\ud638\ub97c \ubcc0\uacbd\ud574 \uc8fc\uc138\uc694. +comCmm.expirePwdContent.30=\uc77c + +comCmm.expirePwdContent.50=\uc9c0\uae08 \uc989\uc2dc \ubcc0\uacbd\ud558\uae30 +comCmm.expirePwdContent.51=\ub2e4\uc74c\uc5d0 \ubcc0\uacbd\ud558\uae30 \ No newline at end of file diff --git a/batch/bin/main/messages/message-common_en.properties b/batch/bin/main/messages/message-common_en.properties new file mode 100644 index 00000000..4e7a26b1 --- /dev/null +++ b/batch/bin/main/messages/message-common_en.properties @@ -0,0 +1,468 @@ +fail.common.msg=error ocurred! +fail.common.sql=sql error ocurred! error code: {0}, error msg: {1} +info.nodata.msg=no data found. + +#UI Common resource# +table.num=num. +table.regdate=reg.date +table.reger=registrant +table.select=select +title.html=egovframe common component +title.detail=Detail Inquiry +title.inquire=Inquire +title.update=Modify +title.create=Create +title.delete=Delete +title.save=Save +title.list=List +title.searchCondition=search condition +title.search=keyword +title.reply=reply +title.scrap=scrap +title.comment=comment +title.attachedFileSelect=attached file +title.attachedFileDelete=attached file delete +title.link=link +title.management=Management +title.all=All + +input.select=Select +input.cSelect=Select +input.input=input +input.button=button +input.selectAll.title=Checkbox select all +input.yes=Yes +input.no=No + +select.searchCondition=select condition select + +button.select=select +button.search=Search +button.use=use +button.notUsed=Not used +button.inquire=inquire +button.update=update +button.create=create +button.delete=delete +button.deleteDatabase=Wiping +button.close=close +button.save=save +button.list=list +button.reset=reset +button.passwordUpdate=password update +button.subscribe=subscribe +button.realname=realname confirm +button.moveToGpin=move to gpin confirm +button.moveToIhidnum=move to ihidnum confirm +button.agree=agree +button.disagree=disagree +button.possible=possible +button.impossible=impossible +button.qnaregist=Q&A create +button.cnsltregist=Counsel create +button.preview=preview +button.next=nexut +button.add=add it now +button.confirm=confirm +button.back =back +button.yes =yes +button.no =no +button.home =home +button.user =user support +button.cop =cooperation +button.wrkstart = work start +button.wrkend = work end +button.reply = reply +button.scrap = scrap +button.comment = comment +button.excel = excel +button.init=init +button.acknowledgment=acknowledgment +button.cancelAcknowledgment=cancel acknowledgment +button.bulkUpload=bulk upload +button.log = log +button.set = set +button.move = move +button.answer = answer + +#UI Common Message# +common.noScriptTitle.msg=I can't use all functions in browser JavaScript is not supported. +common.searchCondition.msg=This layout is a lower information searches made up of information. + +common.summary.list={0} A list of the details of the output. +common.summary.regist={0} Registered by typing the possible contents of registers by clicking the button. +common.summary.update={0} Registered by typing the possible content of modification by clicking the button. +common.summary.inqire={0} Full inquiry details about the details of the output. + +common.save.msg=confirm save? +common.regist.msg=confirm regist? +common.delete.msg=confirm delete? +common.update.msg=confirm update? +common.nodata.msg=There is no data. please choose another seach keyword +common.required.msg=is required field +common.acknowledgement.msg=confirm acknowledgement? +common.acknowledgementcancel.msg=confirm acknowledgement cancel? +common.nocomment.msg=There is no comment. +common.noguest.msg=There is no guest notice. + +success.request.msg=you're request successfully done +success.common.select=successfully selected +success.common.insert=successfully inserted +success.common.update=successfully updated +success.common.delete=successfully deleted + +common.imposbl.fileupload = cannot upload files +common.isConfmDe.msg=Please check the approval date box +common.isExist.msg = already exist + +fail.common.insert = fail to insert. +fail.common.update = fail to update +fail.common.delete = fail to delete +fail.common.delete.upperMenuExist = fail to delete[upperMenuId foreign key error] +fail.common.select = fail to select +fail.common.login = login information is not correct +fail.common.loginIncorrect = login in more than {0} account will be locked! +fail.common.login.password = password information is not correct(password digit should be 8 to 20) +fail.common.idsearch = can not find id +fail.common.pwsearch = can not find password +fail.request.msg = Failed to handle the request +fail.common.login.ip = Login is refused because it is not a registered IP. + +#UI User Message# +fail.user.passwordUpdate1=current password is not correct +fail.user.passwordUpdate2=password confirm is not correct +info.user.rlnmCnfirm=realname confirm ready +success.user.rlnmCnfirm=it is realname +fail.user.rlnmCnfirm=it is not realname +fail.user.connectFail=connection fail +info.user.rlnmPinCnfirm=Using the i-PIN ID, please check your real name +success.user.rlnmPinCnfirm=Consistent with the registration data of the i-PIN +fail.user.rlnmPinCnfirm=i-PIN does not match the registered data + +#Vlidator Errors# +errors.prefix=
+errors.suffix=

+ +errors.required={0} is required. +errors.minlength={0} can not be less than {1} characters. +errors.maxlength={0} can not be greater than {1} characters. +errors.invalid={0} is invalid. + +errors.byte={0} must be a byte. +errors.short={0} must be a short. +errors.integer={0} must be an integer. +errors.long={0} must be a long. +errors.float={0} must be a float. +errors.double={0} must be a double. + +errors.date={0} is not a date. +errors.range={0} is not in the range {1} through {2}. +errors.creditcard={0} is an invalid credit card number. +errors.email={0} is an invalid e-mail address. + +errors.ihidnum=Is not a valid Social Security number +errors.korean={0} should be entered with their Korean +errors.ip=Invalid IP address. +errors.english={0}is an invalid English character. +errors.notKorean={0} should not be entered with their Korean + +errors.password1={0} must be entered within 8 to 20 characters. +errors.password2={0} is Korean, special characters, spaces are not allowed. +errors.password3={0} can not be used continuously for more than four sequential digits. +errors.password4={0} can not be used continuously for more than 4 letters or numbers that are repeated. +errors.pwdcheckcomb3={0} must be include as least 3 of English alphabet, digit number, special characters such as ~!@#$%^&*? +errors.pwdcheckcomb4={0} must be include as least 4 of English alphabet uppercase letter, English alphabet lowercase letter, digit number, special characters such as ~!@#$%^&*? +errors.pwdcheckseries={0} can not be used continuously for more than 3 sequential letters or digits. +errors.pwdcheckrepeat={0} can not be used continuously for more than 3 letters or numbers that are repeated. + +error.security.runtime.error = error + +info.password.rule.password1 = - must be entered within 8 to 20 characters. +info.password.rule.pwdcheckcomb3 = - must be include as least 3 of English alphabet, digit number, special characters such as ~!@#$%^&*? +info.password.rule.pwdcheckcomb4 = - must be include as least 4 of English alphabet uppercase letter, English alphabet lowercase letter, digit number, special characters such as ~!@#$%^&*? +info.password.rule.pwdcheckseries = - can not be used continuously for more than 3 sequential letters or digits ex) kkk, 321 are not allowed. + +#Xss Errors# +errors.xss.checkerUser=There is no use and disposal authority for its capabilities. + +#File Upload / Download +errors.file.extension=It is not a supported file type. +errors.file.transfer=An error occurred during file transfer. +success.file.transfer=The file transfer is complete. + +#common# +comCmmErr.button=before page + +#accessDenied# +comCmmErr.accessDenied.title=You do not have permission to access this page! +comCmmErr.accessDenied.code=User authorization Error + +#dataAccessFailure# +comCmmErr.dataAccessFailure.title=Error occurred while processing data! +comCmmErr.dataAccessFailure.code=Database Processing Error + + +#bizException# +comCmmErr.bizException.title=During business logic processing! +comCmmErr.bizException.code=Business Logic Processing Error + +#runtimeException# +comCmmErr.runtimeException.title=Unknown error occurred! +comCmmErr.runtimeException.code=System Error + +#sessionException# +comCmmErr.sessionException.title=Session Expiration Error! +comCmmErr.sessionException.code=Session Expiration Error + + +#top# +comCmm.top.title=eGoverment Standard Framework Common Components VERSION 4.0 +comCmm.top.leftSessionTime=Session expiration time +comCmm.top.incSessionTime=Time extension +comCmm.top.expiredSessionTime=Time out +comCmm.top.expireSessionTimeInfo=The Signin session time has expired. +comCmm.top.cantIncSessionTime=Time cannot be extended. + +#left# +comCmm.mai.title=Portal(example) Main Page +comCmm.uat.title=User Authentication/Directory Service +comCmm.sec.title=Security +comCmm.sts.title=Statistics/Reporting +comCmm.cop.title=Collaboration +comCmm.uss.title=User Support +comCmm.sym.title=System Management +comCmm.ssi.title=System/Service Integration +comCmm.dam.title=Digital Asset Management +comCmm.com.title=Utility Technology +comCmm.ext.title=External Add Components + +#component# +#Portal(example) Main Page# +comCmm.left.1=Portal(example) Main Page + +#User Authentication/Directory Service# +comCmm.left.10=Log In +comCmm.left.30=Log In Policy Management + +#Security# +comCmm.left.60=Authority Management +comCmm.left.70=Authority Group Management +comCmm.left.80=Group Management +comCmm.left.90=Role management for Each Authority +comCmm.left.100=Department Authority Management + +#Statistics/Reporting# +comCmm.left.120=Post Statistics +comCmm.left.130=User Statistics +comCmm.left.140=Connection Statistics +comCmm.left.150=Screen Statistics +comCmm.left.160=Report Statistics +comCmm.left.161=Data Usage Statistics + +#Collaboration# +comCmm.left.170=Blog Management +comCmm.left.180=Board Master Management +comCmm.left.190=Board Usage Management +comCmm.left.200=Template Management +comCmm.left.250=Scrap Management +comCmm.left.270=Community Creation/Usage/Member Management +comCmm.left.310=SMS Service +comCmm.left.320=Department Schedule Management +comCmm.left.330=Schedule Management +comCmm.left.340=Diary Management +comCmm.left.350=Master Schedule +comCmm.left.360=Send Mail +comCmm.left.361=Send Mail List +comCmm.left.370=Business Card Management +comCmm.left.371=My Business Card Management +comCmm.left.380=Address Book Management +comCmm.left.390=Executive Schedule Management +comCmm.left.400=Division Task Folder Management +comCmm.left.401=Division Task Information +comCmm.left.410=Weekly/Monthly Reports Management +comCmm.left.420=Memo/To-do List Management +comCmm.left.430=Memo Report + +#User Support# +comCmm.left.450=Corporate Member Management +comCmm.left.460=User Management +comCmm.left.461=Department Management +comCmm.left.470=Member Management +comCmm.left.480=My Page +comCmm.left.490=Provision Management +comCmm.left.500=Copyright Protection Policy +comCmm.left.510=Private Information Protection Policy +comCmm.left.520=Help +comCmm.left.530=Word Dictionary +comCmm.left.540=FAQ Management +comCmm.left.550=Q&A Management +comCmm.left.551=Q&A Answer +comCmm.left.560=Administration Terminology Dictionary +comCmm.left.561=Administration Terminology Dictionary Management +comCmm.left.570=Online Manual +comCmm.left.571=User Online Manual +comCmm.left.580=Consulting Management +comCmm.left.581=Consulting Answer Management +comCmm.left.590=Questionnaire Management +comCmm.left.600=Questionnaire Survey +comCmm.left.610=Questionnaire Template Management +comCmm.left.620=Questionnaire Respond Management +comCmm.left.630=Questionnaire Question Management +comCmm.left.640=Questionnaire Item Management +comCmm.left.650=Meeting Management +comCmm.left.660=Online POLL Management +comCmm.left.661=Online POLL Participation +comCmm.left.670=News Management +comCmm.left.680=Site Management +comCmm.left.700=Recommended Site Management +comCmm.left.710=Occasion/Event/Campaign +comCmm.left.711=Extra Human Resource +comCmm.left.720=Pop-up Management +comCmm.left.730=Information Alerts +comCmm.left.740=Banner Management +comCmm.left.741=MYPAGE Banner Management +comCmm.left.750=Login Page Image Management +comCmm.left.760=Recent Search Word Inquiry +comCmm.left.770=Main Image Management +comCmm.left.771=Main Image View Reflection Result +comCmm.left.780=Link Intergration Management +comCmm.left.790=User Absence Management +comCmm.left.800=Internet Service Information and Management +comCmm.left.810=Wiki Function +comCmm.left.820=RSS Tag Management +comCmm.left.822=RSS Tag Service +comCmm.left.830=Twitter Linkage +comCmm.left.831=Facebook Linkage +comCmm.left.840=Note Management +comCmm.left.850=Received Note Box Management +comCmm.left.860=Sent Note Box Management +comCmm.left.870=Meeting Room Management +comCmm.left.871=Meeting Room Reservation Management +comCmm.left.890=Employee Family Event Management +comCmm.left.891=Employee Congratulatory Approval Management +comCmm.left.900=Vacation Management +comCmm.left.901=Vacation Approval Management +comCmm.left.902=Personal Vocation Management +comCmm.left.910=Duty Management +comCmm.left.911=Duty Journal Management +comCmm.left.920=Compensation +comCmm.left.921=Compensation Approval Management +comCmm.left.930=Anniversary Management +comCmm.left.931=Anniversary List (Check) +comCmm.left.940=Event Application Management +comCmm.left.941=Event Reception Management +comCmm.left.942=Event Reception Approval Management +comCmm.left.943=Office Location Management +comCmm.left.950=Commute Management + +#System Management# +comCmm.left.960=Common Classification Code +comCmm.left.970=Common Detail Code +comCmm.left.980=Common Code +comCmm.left.1000=Address Management +comCmm.left.1010=Administration Code Management +comCmm.left.1020=Institutions Code Management +comCmm.left.1030=Log Management +comCmm.left.1040=User Log Management +comCmm.left.1050=Transmit/Receive Log Management +comCmm.left.1060=System History Management +comCmm.left.1070=Web Log Management +comCmm.left.1080=Connection Log Management +comCmm.left.1085=Privacy Log Management +comCmm.left.1090=Menu Management +comCmm.left.1091=Menu Management List +comCmm.left.1100=Menu Creation Management +comCmm.left.1101=Site Map +comCmm.left.1110=Short Cut Menu Management +comCmm.left.1111=Program Management +comCmm.left.1112=Program Change Management +comCmm.left.1113=Program Change Process +comCmm.left.1114=Program Change History +comCmm.left.1120=Batch Work Management +comCmm.left.1130=Batch Result Management +comCmm.left.1140=Schedule Process +comCmm.left.1150=Backup Management +comCmm.left.1151=Backup Result Management +comCmm.left.1160=NetWork Management +comCmm.left.1170=Server Information Management +comCmm.left.1171=Server S/W List +comCmm.left.1180=Trouble Request Management +comCmm.left.1190=Trouble Process Result Management + +#System/Service Integration# +comCmm.left.1210=System Contact Management +comCmm.left.1220=Contact Status Management +comCmm.left.1230=Contact Message Management +comCmm.left.1240=Contact Institution Management + +#Digital Asset Management# +comCmm.left.1250=Individual Knowledge Management +comCmm.left.1260=Knowledge Map Management by Types +comCmm.left.1261=Organizational Knowledge Map Management +comCmm.left.1270=Knowledge Expert Management +comCmm.left.1280=Knowledge Information Management +comCmm.left.1290=Knowledge Evaluation Management +comCmm.left.1291=Knowledge Information Offer + +#Utility Technology# +comCmm.left.1300=General Calendar +comCmm.left.2080=Transmit and Receive Monitoring +comCmm.left.2090=DB Service Monitoring +comCmm.left.2100=HTTP Service Monitoring +comCmm.left.2110=Process Monitoring +comCmm.left.2120=Network Service Monitoring +comCmm.left.2130=File System Monitoring +comCmm.left.2140=Proxy Service +comCmm.left.2150=File Synchronization +comCmm.left.2160=Login Session Information Check +comCmm.left.2170=Server Resource Monitoring +comCmm.left.2180=Address Info Linkage +comCmm.left.2200=Encryption/Decryption + +#External Add Components# +comCmm.left.3000=JFile Guide +comCmm.left.3010=JFile File Upload +comCmm.left.3020=JFile File Download +comCmm.left.3100=LDAP Org. Management +comCmm.left.3110=LDAP Org. Graph +comCmm.left.3200=WebMessenger + +#EgovUnitContent(\ub85c\uadf8\uc778 \ud6c4 \ud398\uc774\uc9c0)# +comCmm.unitContent.1=Common Compoent +comCmm.unitContent.2=Welcome. +comCmm.unitContent.3=Logout +comCmm.unitContent.4=If you run into any errors, please contact the eGovframework center. +comCmm.unitContent.5=Screen description +comCmm.unitContent.6=The left menu is not affected by the menu-related components (menu management, site map, etc.) +comCmm.unitContent.7=Controller class that finds installed components after installing components through IncludedInfo annotation and processes information to be displayed on the screen. +comCmm.unitContent.8= +comCmm.unitContent.9= +comCmm.unitContent.10=Before the menu structure is developed, +comCmm.unitContent.11=the list of common components included in the distribution files is provided. +comCmm.unitContent.12=If you use this control to configure menus at runtime, +comCmm.unitContent.13=we recommend that you delete and deploy them in production +comCmm.unitContent.14= because they can cause performance problems or cause errors in your menu configuration. + +comCmm.unitContent.20=Password expiration notice + +#EgovExpirePwd(\ube44\ubc00\ubc88\ud638\ubcc0\uacbd \uacf5\uc9c0)# +comCmm.expirePwdContent.1=Login +comCmm.expirePwdContent.2=Login classification + +comCmm.expirePwdContent.10=Manager +comCmm.expirePwdContent.11=Corporate Member +comCmm.expirePwdContent.12=General Member + +comCmm.expirePwdContent.21=Please refer to the following file to change the password expiration date. +comCmm.expirePwdContent.22=Password expiration +comCmm.expirePwdContent.23=Password validity has expired. +comCmm.expirePwdContent.24=Please change your password now for safe privacy! +comCmm.expirePwdContent.25=Password expiration days +comCmm.expirePwdContent.26=Password validity period +comCmm.expirePwdContent.27=Number of days since password change +comCmm.expirePwdContent.28=Password expiration days +comCmm.expirePwdContent.29=Please change your password periodically. +comCmm.expirePwdContent.30=days + +comCmm.expirePwdContent.50=Change immediately +comCmm.expirePwdContent.51=Change next \ No newline at end of file diff --git a/batch/bin/main/messages/message-common_ko.properties b/batch/bin/main/messages/message-common_ko.properties new file mode 100644 index 00000000..fc3577a6 --- /dev/null +++ b/batch/bin/main/messages/message-common_ko.properties @@ -0,0 +1,467 @@ +fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +fail.common.sql=sql \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! error code: {0}, error msg: {1} +info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. + +#UI Common resource# +table.num=\ubc88\ud638 +table.regdate=\ub4f1\ub85d\uc77c +table.reger=\ub4f1\ub85d\uc790 +table.select=\uc120\ud0dd +title.html=egovframe common component +title.detail=\uc0c1\uc138\uc870\ud68c +title.inquire=\uc870\ud68c +title.update=\uc218\uc815 +title.create=\ub4f1\ub85d +title.delete=\uc0ad\uc81c +title.save=\uc800\uc7a5 +title.list=\ubaa9\ub85d +title.searchCondition=\uac80\uc0c9\uc870\uac74 +title.search=\uac80\uc0c9\uc5b4 +title.reply=\ub2f5\uae00 +title.scrap=\uc2a4\ud06c\ub7a9 +title.comment=\ub313\uae00 +title.attachedFileSelect=\ud30c\uc77c\uc120\ud0dd +title.attachedFileDelete=\ud30c\uc77c\uc0ad\uc81c +title.link=\ub9c1\ud06c +title.management=\uad00\ub9ac +title.all=\uc804\uccb4 + +input.select=\uc120\ud0dd\ud558\uc138\uc694 +input.cSelect=\uc120\ud0dd +input.input=\uc785\ub825 +input.button=\ubc84\ud2bc +input.selectAll.title=\uc804\uccb4\uc120\ud0dd\uccb4\ud06c\ubc15\uc2a4 +input.yes=\uc608 +input.no=\uc544\ub2c8\uc624 + +select.searchCondition=\uc870\ud68c\uc870\uac74 \uc120\ud0dd + +button.select=\uc120\ud0dd +button.search=\uac80\uc0c9 +button.use=\uc0ac\uc6a9 +button.notUsed=\uc0ac\uc6a9\uc911\uc9c0 +button.inquire=\uc870\ud68c +button.update=\uc218\uc815 +button.create=\ub4f1\ub85d +button.delete=\uc0ad\uc81c +button.deleteDatabase=\uc644\uc804\uc0ad\uc81c +button.close=\ub2eb\uae30 +button.save=\uc800\uc7a5 +button.list=\ubaa9\ub85d +button.reset=\ucde8\uc18c +button.passwordUpdate=\uc554\ud638\ubcc0\uacbd +button.subscribe=\uac00\uc785\uc2e0\uccad +button.realname=\uc2e4\uba85\ud655\uc778 +button.moveToGpin=GPIN\uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.moveToIhidnum=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 \uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.agree=\ub3d9\uc758 +button.disagree=\ube44\ub3d9\uc758 +button.possible=\uac00\ub2a5 +button.impossible=\ubd88\uac00\ub2a5 +button.qnaregist=Q&A\ub4f1\ub85d +button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d +button.preview=\ubbf8\ub9ac\ubcf4\uae30 +button.next=\ub2e4\uc74c +button.add=\ubc14\ub85c\ucd94\uac00 +button.confirm=\ud655\uc778 +button.back = \ub4a4\ub85c +button.yes = \uc608 +button.no = \uc544\ub2c8\uc624 +button.home = \ud648 +button.user = \uc0ac\uc6a9\uc790\uc9c0\uc6d0 +button.cop = \ud611\uc5c5 +button.wrkstart = \ucd9c\uadfc +button.wrkend = \ud1f4\uadfc +button.reply = \ub2f5\uae00 +button.scrap = \uc2a4\ud06c\ub7a9 +button.comment = \ub313\uae00 +button.excel = \uc5d1\uc140 +button.init=\ucd08\uae30\ud654 +button.acknowledgment=\uc2b9\uc778 +button.cancelAcknowledgment=\uc2b9\uc778\ucde8\uc18c +button.bulkUpload=\uc77c\uad04\ub4f1\ub85d +button.log = \ub85c\uadf8 +button.set = \uc124\uc815 +button.move = \uc774\ub3d9 +button.answer = \ub2f5\ubcc0 + +#UI Common Message# +common.noScriptTitle.msg=\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c\ub294 \uc77c\ubd80 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uc2e4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.searchCondition.msg=\uc774 \ub808\uc774\uc544\uc6c3\uc740 \ud558\ub2e8 \uc815\ubcf4\ub97c \ub300\ud55c \uac80\uc0c9 \uc815\ubcf4\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. + +common.summary.list={0}\uc758 \ub0b4\uc5ed\uc5d0 \ub300\ud55c \ubaa9\ub85d\uc744 \ucd9c\ub825\ud569\ub2c8\ub2e4. +common.summary.regist={0}\uc758 \ub4f1\ub85d \uac00\ub2a5\ud55c \ub0b4\uc6a9\uc744 \uc785\ub825\ud558\uc5ec \ub4f1\ub85d \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \ub4f1\ub85d\ud55c\ub2e4. +common.summary.update={0}\uc758 \ub4f1\ub85d \uac00\ub2a5\ud55c \ub0b4\uc6a9\uc744 \uc785\ub825\ud558\uc5ec \ub4f1\ub85d \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \uc218\uc815\ud55c\ub2e4. +common.summary.inqire={0}\uc758 \ub0b4\uc5ed\uc5d0 \ub300\ud55c \uc0c1\uc138\uc870\ud68c \ub0b4\uc5ed\uc744 \ucd9c\ub825\ud569\ub2c8\ub2e4. + +common.save.msg=\uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.regist.msg=\ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.delete.msg=\uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.update.msg=\uc218\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nodata.msg=\uc790\ub8cc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uac80\uc0c9\uc870\uac74\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694 +common.required.msg=(\uc740)\ub294 \ud544\uc218\uc785\ub825\ud56d\ubaa9\uc785\ub2c8\ub2e4. +common.acknowledgement.msg=\uc2b9\uc778\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.acknowledgementcancel.msg=\uc2b9\uc778\ucde8\uc18c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nocomment.msg=\ub313\uae00\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. +common.noguest.msg=\uc791\uc131\ub41c \ubc29\uba85\ub85d\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. + +success.request.msg = \uc694\uccad\ucc98\ub9ac\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc218\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.select=\uc815\uc0c1\uc801\uc73c\ub85c \uc870\ud68c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.insert=\uc815\uc0c1\uc801\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.update=\uc815\uc0c1\uc801\uc73c\ub85c \uc218\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.delete=\uc815\uc0c1\uc801\uc73c\ub85c \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +common.imposbl.fileupload = \ub354 \uc774\uc0c1 \ud30c\uc77c\uc744 \ucca8\ubd80\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.isConfmDe.msg=\uc2b9\uc778\uc77c\uc790\ub97c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4. +common.isExist.msg = \uc774\ubbf8 \uc874\uc7ac\ud558\uac70\ub098 \uacfc\uac70\uc5d0 \ub4f1\ub85d\uc774 \ub418\uc5c8\ub358 \uc0c1\ud0dc\uc785\ub2c8\ub2e4. + +fail.common.insert = \uc0dd\uc131\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.update = \uc218\uc815\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete = \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete.upperMenuExist = \ucc38\uc870\ub418\ub294 \uba54\ub274\uac00 \uc788\uc5b4 \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.select = \uc870\ud68c\uc5d0 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.login = \ub85c\uadf8\uc778 \uc815\ubcf4\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.common.loginIncorrect = {0}\ud68c \uc774\uc0c1 \ub85c\uadf8\uc778 \uc811\uc18d\uc774 \uc2dc\ub3c4 \ub418\uc5b4 \uacc4\uc815\uc774 \uc7a0\uaca8\uc2b5\ub2c8\ub2e4! +fail.common.login.password = \ud328\uc2a4\uc6cc\ub4dc \uc790\ub9ac \uc218\uac00 \uc77c\uce58 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.(8\uc790\ub9ac \uc774\uc0c1 20\uc790\ub9ac \uc774\ud558) +fail.common.idsearch = \uc544\uc774\ub514\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.common.pwsearch = \ube44\ubc00\ubc88\ud638\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.request.msg = \uc694\uccad\ucc98\ub9ac\ub97c \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.login.ip = \ub4f1\ub85d\ub41c IP\uac00 \uc544\ub2c8\ubbc0\ub85c \ub85c\uadf8\uc778\uc774 \uac70\ubd80\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +#UI User Message# +fail.user.passwordUpdate1=\ud604\uc7ac \ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.passwordUpdate2=\ube44\ubc00\ubc88\ud638\uc640 \ube44\ubc00\ubc88\ud638 \ud655\uc778\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +info.user.rlnmCnfirm=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.connectFail=\uc2dc\uc2a4\ud15c \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.(\uc778\uc99d\uc11c\ubc84 \uc5f0\uacb0 \uc2e4\ud328) +info.user.rlnmPinCnfirm=\uacf5\uacf5 \uc544\uc774\ud540 \uc544\uc774\ub514\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#Vlidator Errors# +errors.prefix=
+errors.suffix=

+ +errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.invalid={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uac12\uc785\ub2c8\ub2e4. +errors.minInteger={0}\uc740(\ub294) \uc720\ud6a8\ud55c \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4. 1 \uc774\uc0c1\uc758 \uac12\uc744 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.byte={0}\uc740(\ub294) byte\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0}\uc740(\ub294) short\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0}\uc740(\ub294) integer \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.long={0}\uc740(\ub294) long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0}\uc740(\ub294) float \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0}\uc740(\ub294) double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. + +errors.date={0}\uc740(\ub294) \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0}\uc740(\ub294) {1}\uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. +errors.ip=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 IP\uc8fc\uc18c\uc785\ub2c8\ub2e4. +errors.english={0}\uc740(\ub294) \uc601\ubb38\ub9cc \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc788\uc2b5\ub2c8\ub2e4. +errors.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +errors.password1={0}\uc740(\ub294) 8~20\uc790 \ub0b4\uc5d0\uc11c \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.password2={0}\uc740(\ub294) \ud55c\uae00,\ud2b9\uc218\ubb38\uc790,\ub744\uc5b4\uc4f0\uae30\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +errors.password3={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.password4={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.pwdcheckcomb3={0}\uc740(\ub294) \uc601\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569\uc73c\ub85c \uc774\ub8e8\uc5b4 \uc838\uc57c \ud569\ub2c8\ub2e4. +errors.pwdcheckcomb4={0}\uc740(\ub294) \uc601\ubb38\ub300\ubb38\uc790,\uc601\ubb38\uc18c\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569\uc73c\ub85c \uc774\ub8e8\uc5b4 \uc838\uc57c \ud569\ub2c8\ub2e4. +errors.pwdcheckseries={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 3\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.pwdcheckrepeat={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 3\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +error.security.runtime.error = error + +info.password.rule.password1 = - 8\uc774\uc0c1 20\uc790\ub9ac \uc774\ud558 +info.password.rule.pwdcheckcomb3 = - \uc601\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569 +info.password.rule.pwdcheckcomb4 = - \uc601\ubb38\ub300\ubb38\uc790,\uc601\ubb38\uc18c\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569 +info.password.rule.pwdcheckseries = - 3\uc790\ub9ac \uc774\uc0c1 \ubc18\ubcf5 \ub610\ub294 \uc5f0\uc18d\ub41c \ubb38\uc790 \uc0ac\uc6a9 \uae08\uc9c0. \uc608)kkk , 321 \ub4f1 \uc0ac\uc6a9\uae08\uc9c0 + +#Xss Errors# +errors.xss.checkerUser=\ud574\ub2f9 \uae30\ub2a5\uc5d0 \ub300\ud55c \uc0ac\uc6a9 \ubc0f \ucc98\ub9ac \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. + +#File Upload / Download +errors.file.extension=\uc9c0\uc6d0\ub418\ub294 \ud30c\uc77c\uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.file.transfer=\ud30c\uc77c\uc804\uc1a1\uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. +success.file.transfer=\ud30c\uc77c\uc804\uc1a1\uc774 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +#common# +comCmmErr.button=\uc774\uc804 \ud398\uc774\uc9c0 + +#accessDenied# +comCmmErr.accessDenied.title=\ud604\uc7ac \ud398\uc774\uc9c0\uc5d0 \ub300\ud55c \uc811\uadfc\uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4! +comCmmErr.accessDenied.code=\uc0ac\uc6a9\uc790\uc811\uadfc\uad8c\ud55c \uc5d0\ub7ec + +#dataAccessFailure# +comCmmErr.dataAccessFailure.title=\ub370\uc774\ud130 \ucc98\ub9ac \uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4! +comCmmErr.dataAccessFailure.code=\ub370\uc774\ud130\ucc98\ub9ac \uc5d0\ub7ec + +#bizException# +comCmmErr.bizException.title=\ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1 \ucc98\ub9ac \uc911 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +comCmmErr.bizException.code=\ube44\uc988\ub2c8\uc2a4\ub85c\uc9c1\ucc98\ub9ac \uc5d0\ub7ec + +#runtimeException# +comCmmErr.runtimeException.title=\uc54c \uc218 \uc5c6\ub294 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +comCmmErr.runtimeException.code=\uc2dc\uc2a4\ud15c \uc5d0\ub7ec + +#sessionException# +comCmmErr.sessionException.title=\uc138\uc158\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4! +comCmmErr.sessionException.code=\uc138\uc158\ub9cc\ub8cc \uc5d0\ub7ec + + +#top# +comCmm.top.title=\uc804\uc790\uc815\ubd80 \ud45c\uc900\ud504\ub808\uc784\uc6cc\ud06c \uacf5\ud1b5\ucef4\ud3ec\ub10c\ud2b8 VERSION 4.0 +comCmm.top.leftSessionTime=\uc138\uc158\ub9cc\ub8cc \ub0a8\uc740\uc2dc\uac04 +comCmm.top.incSessionTime=\uc2dc\uac04\uc5f0\uc7a5 +comCmm.top.expiredSessionTime=\uc2dc\uac04\ub9cc\ub8cc +comCmm.top.expireSessionTimeInfo=\ub85c\uadf8\uc778 \uc138\uc158\uc2dc\uac04\uc774 \ub9cc\ub8cc \ub418\uc5c8\uc2b5\ub2c8\ub2e4. +comCmm.top.cantIncSessionTime=\uc2dc\uac04\uc744 \uc5f0\uc7a5\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +#left# +comCmm.mai.title=\ud3ec\ud138(\uc608\uc81c) \uba54\uc778\ud654\uba74 +comCmm.uat.title=\uc0ac\uc6a9\uc790\ub514\ub809\ud1a0\ub9ac/\ud1b5\ud569\uc778\uc99d +comCmm.sec.title=\ubcf4\uc548 +comCmm.sts.title=\ud1b5\uacc4/\ub9ac\ud3ec\ud305 +comCmm.cop.title=\ud611\uc5c5 +comCmm.uss.title=\uc0ac\uc6a9\uc790\uc9c0\uc6d0 +comCmm.sym.title=\uc2dc\uc2a4\ud15c\uad00\ub9ac +comCmm.ssi.title=\uc2dc\uc2a4\ud15c/\uc11c\ube44\uc2a4\uc5f0\uacc4 +comCmm.dam.title=\ub514\uc9c0\ud138 \uc790\uc0b0 \uad00\ub9ac +comCmm.com.title=\uc694\uc18c\uae30\uc220 +comCmm.ext.title=\uc678\ubd80 \ucd94\uac00 \ucef4\ud3ec\ub10c\ud2b8 + +#component# +#\ud3ec\ud0c8 \uba54\uc778\ud654\uba74# +comCmm.left.1=\ud3ec\ud138(\uc608\uc81c) \uba54\uc778\ud654\uba74 + +#\uc0ac\uc6a9\uc790\ub514\ub809\ud1a0\ub9ac/\ud1b5\ud569\uc778\uc99d# +comCmm.left.10=\ub85c\uadf8\uc778 +comCmm.left.30=\ub85c\uadf8\uc778\uc815\ucc45\uad00\ub9ac + +#\ubcf4\uc548# +comCmm.left.60=\uad8c\ud55c\uad00\ub9ac +comCmm.left.70=\uad8c\ud55c\uadf8\ub8f9\uad00\ub9ac +comCmm.left.80=\uadf8\ub8f9\uad00\ub9ac +comCmm.left.90=\ub864\uad00\ub9ac +comCmm.left.100=\ubd80\uc11c\uad8c\ud55c\uad00\ub9ac + +#\ud1b5\uacc4/\ub9ac\ud3ec\ud305# +comCmm.left.120=\uac8c\uc2dc\ubb3c\ud1b5\uacc4 +comCmm.left.130=\uc0ac\uc6a9\uc790\ud1b5\uacc4 +comCmm.left.140=\uc811\uc18d\ud1b5\uacc4 +comCmm.left.150=\ud654\uba74\ud1b5\uacc4 +comCmm.left.160=\ubcf4\uace0\uc11c\ud1b5\uacc4 +comCmm.left.161=\uc790\ub8cc\uc774\uc6a9\ud604\ud669\ud1b5\uacc4 + +\ud611\uc5c5 +comCmm.left.170=\ube14\ub85c\uadf8\uad00\ub9ac +comCmm.left.180=\uac8c\uc2dc\ud310\uad00\ub9ac +comCmm.left.190=\uac8c\uc2dc\ud310\uc0ac\uc6a9\uc815\ubcf4 +comCmm.left.200=\ud15c\ud50c\ub9bf\uad00\ub9ac +comCmm.left.250=\uc2a4\ud06c\ub7a9 \ubaa9\ub85d +comCmm.left.270=\ucee4\ubba4\ub2c8\ud2f0\uad00\ub9ac +comCmm.left.310=\ubb38\uc790\uba54\uc2dc\uc9c0 +comCmm.left.320=\ubd80\uc11c\uc77c\uc815\uad00\ub9ac +comCmm.left.330=\uc77c\uc815\uad00\ub9ac +comCmm.left.340=\uc77c\uc9c0\uad00\ub9ac +comCmm.left.350=\uc804\uccb4\uc77c\uc815\uad00\ub9ac +comCmm.left.360=\uba54\uc77c\ubc1c\uc1a1 +comCmm.left.361=\ubc1c\uc1a1\uba54\uc77c\ub0b4\uc5ed +comCmm.left.370=\uba85\ud568\uad00\ub9ac +comCmm.left.371=\ub0b4\uba85\ud568\ubaa9\ub85d +comCmm.left.380=\uc8fc\uc18c\ub85d\uad00\ub9ac +comCmm.left.390=\uac04\ubd80\uc77c\uc815\uad00\ub9ac +comCmm.left.400=\ubd80\uc11c\uc5c5\ubb34\ud568\uad00\ub9ac +comCmm.left.401=\ubd80\uc11c\uc5c5\ubb34\uc815\ubcf4 +comCmm.left.410=\uc8fc\uac04/\uc6d4\uac04\ubcf4\uace0\uad00\ub9ac +comCmm.left.420=\uba54\ubaa8\ud560\uc77c\uad00\ub9ac +comCmm.left.430=\uba54\ubaa8\ubcf4\uace0 + +#\uc0ac\uc6a9\uc790\uc9c0\uc6d0# +comCmm.left.450=\uae30\uc5c5\ud68c\uc6d0\uad00\ub9ac +comCmm.left.460=\uc5c5\ubb34\uc0ac\uc6a9\uc790\uad00\ub9ac +comCmm.left.461=\ubd80\uc11c\uad00\ub9ac +comCmm.left.470=\uc77c\ubc18\ud68c\uc6d0\uad00\ub9ac +comCmm.left.480=\ub9c8\uc774\ud398\uc774\uc9c0\uad00\ub9ac +comCmm.left.490=\uc57d\uad00\uad00\ub9ac +comCmm.left.500=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45 +comCmm.left.510=\uac1c\uc778\uc815\ubcf4\ubcf4\ud638\uc815\ucc45\ud655\uc778 +comCmm.left.520=\ub3c4\uc6c0\ub9d0 +comCmm.left.530=\uc6a9\uc5b4\uc0ac\uc804 +comCmm.left.540=FAQ\uad00\ub9ac +comCmm.left.550=Q&A\uad00\ub9ac +comCmm.left.551=Q&A\ub2f5\ubcc0\uad00\ub9ac +comCmm.left.560=\ud589\uc815\uc804\ubb38\uc6a9\uc5b4\uc0ac\uc804 +comCmm.left.561=\ud589\uc815\uc804\ubb38\uc6a9\uc5b4\uc0ac\uc804\uad00\ub9ac +comCmm.left.570=\uc628\ub77c\uc778\ub9e4\ub274\uc5bc +comCmm.left.571=\uc0ac\uc6a9\uc790\uc628\ub77c\uc778\ub9e4\ub274\uc5bc +comCmm.left.580=\uc0c1\ub2f4\uad00\ub9ac +comCmm.left.581=\uc0c1\ub2f4\ub2f5\ubcc0\uad00\ub9ac +comCmm.left.590=\uc124\ubb38\uad00\ub9ac +comCmm.left.600=\uc124\ubb38\uc870\uc0ac +comCmm.left.610=\uc124\ubb38\ud15c\ud50c\ub9bf\uad00\ub9ac +comCmm.left.620=\uc751\ub2f5\uc790\uad00\ub9ac +comCmm.left.630=\uc9c8\ubb38\uad00\ub9ac +comCmm.left.640=\ud56d\ubaa9\uad00\ub9ac +comCmm.left.650=\ud68c\uc758\uad00\ub9ac +comCmm.left.660=\uc628\ub77c\uc778poll\uad00\ub9ac +comCmm.left.661=\uc628\ub77c\uc778poll\ucc38\uc5ec +comCmm.left.670=\ub274\uc2a4\uad00\ub9ac +comCmm.left.680=\uc0ac\uc774\ud2b8\uad00\ub9ac +comCmm.left.700=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uad00\ub9ac +comCmm.left.710=\ud589\uc0ac/\uc774\ubca4\ud2b8/\ucea0\ud398\uc778 +comCmm.left.711=\uc678\ubd80\uc778\uc0ac\uc815\ubcf4 +comCmm.left.720=\ud31d\uc5c5\ucc3d\uad00\ub9ac +comCmm.left.730=\uc815\ubcf4\uc54c\ub9bc\uc774 +comCmm.left.740=\ubc30\ub108\uad00\ub9ac +comCmm.left.741=MYPAGE\ubc30\ub108\uad00\ub9ac +comCmm.left.750=\ub85c\uadf8\uc778\ud654\uba74\uc774\ubbf8\uc9c0\uad00\ub9ac +comCmm.left.760=\ucd5c\uadfc\uac80\uc0c9\uc5b4 \uc870\ud68c +comCmm.left.770=\uba54\uc778\uc774\ubbf8\uc9c0\uad00\ub9ac +comCmm.left.771=\uba54\uc778\uc774\ubbf8\uc9c0 \ubc18\uc601\uacb0\uacfc\ubcf4\uae30 +comCmm.left.780=\ud1b5\ud569\ub9c1\ud06c\uad00\ub9ac +comCmm.left.790=\uc0ac\uc6a9\uc790\ubd80\uc7ac\uad00\ub9ac +comCmm.left.800=\uc778\ud130\ub137\uc11c\ube44\uc2a4\uc548\ub0b4\ubc0f\uad00\ub9ac +comCmm.left.810=Wiki\uae30\ub2a5 +comCmm.left.820=RSS\ud0dc\uadf8\uad00\ub9ac +comCmm.left.822=RSS\ud0dc\uadf8\uc11c\ube44\uc2a4 +comCmm.left.830=Twitter\uc5f0\ub3d9 +comCmm.left.831=Facebook \uc5f0\ub3d9 +comCmm.left.840=\ucabd\uc9c0\uad00\ub9ac +comCmm.left.850=\ubc1b\uc740\ucabd\uc9c0\ud568\uad00\ub9ac +comCmm.left.860=\ubcf4\ub0b8\ucabd\uc9c0\ud568\uad00\ub9ac +comCmm.left.870=\ud68c\uc758\uc2e4\uad00\ub9ac +comCmm.left.871=\ud68c\uc758\uc2e4\uc608\uc57d\uad00\ub9ac +comCmm.left.890=\uc9c1\uc6d0\uacbd\uc870\uc0ac\uad00\ub9ac +comCmm.left.891=\uc9c1\uc6d0\uacbd\uc870\uc0ac\uc2b9\uc778\uad00\ub9ac +comCmm.left.900=\ud734\uac00\uad00\ub9ac +comCmm.left.901=\ud734\uac00\uc2b9\uc778\uad00\ub9ac +comCmm.left.902=\uac1c\uc778\uc5f0\ucc28\uad00\ub9ac +comCmm.left.910=\ub2f9\uc9c1\uad00\ub9ac +comCmm.left.911=\ub2f9\uc9c1\uccb4\ud06c\uad00\ub9ac +comCmm.left.920=\ud3ec\uc0c1\uad00\ub9ac +comCmm.left.921=\ud3ec\uc0c1\uc2b9\uc778\uad00\ub9ac +comCmm.left.930=\uae30\ub150\uc77c\uad00\ub9ac +comCmm.left.931=\uae30\ub150\uc77c\ubaa9\ub85d(\ud655\uc778\uc6a9) +comCmm.left.940=\ud589\uc0ac\uc2e0\uccad\uad00\ub9ac +comCmm.left.941=\ud589\uc0ac\uc811\uc218\uad00\ub9ac +comCmm.left.942=\ud589\uc0ac\uc811\uc218\uc2b9\uc778\uad00\ub9ac +comCmm.left.943=\uc57d\ub3c4 \uad00\ub9ac +comCmm.left.950=\ucd9c\ud1f4\uadfc\uad00\ub9ac + +#\uc2dc\uc2a4\ud15c\uad00\ub9ac# +comCmm.left.960=\uacf5\ud1b5\ubd84\ub958\ucf54\ub4dc +comCmm.left.970=\uacf5\ud1b5\uc0c1\uc138\ucf54\ub4dc +comCmm.left.980=\uacf5\ud1b5\ucf54\ub4dc +comCmm.left.1000=\uc6b0\ud3b8\ubc88\ud638\uad00\ub9ac +comCmm.left.1010=\ud589\uc815\ucf54\ub4dc\uad00\ub9ac +comCmm.left.1020=\uae30\uad00\ucf54\ub4dc\uc218\uc2e0 +comCmm.left.1030=\ub85c\uadf8\uad00\ub9ac +comCmm.left.1040=\uc0ac\uc6a9\ub85c\uadf8\uad00\ub9ac +comCmm.left.1050=\uc1a1/\uc218\uc2e0\ub85c\uadf8\uad00\ub9ac +comCmm.left.1060=\uc2dc\uc2a4\ud15c\uc774\ub825\uad00\ub9ac +comCmm.left.1070=\uc6f9\ub85c\uadf8\uad00\ub9ac +comCmm.left.1080=\uc811\uc18d\ub85c\uadf8\uad00\ub9ac +comCmm.left.1085=\uac1c\uc778\uc815\ubcf4\uc870\ud68c\ub85c\uadf8\uad00\ub9ac +comCmm.left.1090=\uba54\ub274\ub9ac\uc2a4\ud2b8\uad00\ub9ac +comCmm.left.1091=\uba54\ub274\uad00\ub9ac\ub9ac\uc2a4\ud2b8 +comCmm.left.1100=\uba54\ub274\uc0dd\uc131\uad00\ub9ac +comCmm.left.1101=\uc0ac\uc774\ud2b8\ub9f5 +comCmm.left.1110=\ubc14\ub85c\uac00\uae30\uba54\ub274\uad00\ub9ac +comCmm.left.1111=\ud504\ub85c\uadf8\ub7a8\uad00\ub9ac +comCmm.left.1112=\ud504\ub85c\uadf8\ub7a8\ubcc0\uacbd\uc694\uccad\uad00\ub9ac +comCmm.left.1113=\ud504\ub85c\uadf8\ub7a8\ubcc0\uacbd\uc694\uccad\ucc98\ub9ac +comCmm.left.1114=\ud504\ub85c\uadf8\ub7a8\ubcc0\uacbd\uc774\ub825 +comCmm.left.1120=\ubc30\uce58\uc791\uc5c5\uad00\ub9ac +comCmm.left.1130=\ubc30\uce58\uacb0\uacfc\uad00\ub9ac +comCmm.left.1140=\uc2a4\ucf00\uc904\ucc98\ub9ac +comCmm.left.1150=\ubc31\uc5c5\uad00\ub9ac +comCmm.left.1151=\ubc31\uc5c5\uacb0\uacfc\uad00\ub9ac +comCmm.left.1160=\ub124\ud2b8\uc6cc\ud06c\uad00\ub9ac +comCmm.left.1170=\uc11c\ubc84\uc815\ubcf4\uad00\ub9ac +comCmm.left.1171=\uc11c\ubc84(S/W)\ubaa9\ub85d +comCmm.left.1180=\uc7a5\uc560\uc2e0\uccad\uad00\ub9ac +comCmm.left.1190=\uc7a5\uc560\ucc98\ub9ac\uacb0\uacfc\uad00\ub9ac + +#\uc2dc\uc2a4\ud15c/\uc11c\ube44\uc2a4\uc5f0\uacc4# +comCmm.left.1210=\uc2dc\uc2a4\ud15c\uc5f0\uacc4\uad00\ub9ac +comCmm.left.1220=\uc5f0\uacc4\ud604\ud669\uad00\ub9ac +comCmm.left.1230=\uc5f0\uacc4\uba54\uc2dc\uc9c0\uad00\ub9ac +comCmm.left.1240=\uc5f0\uacc4\uae30\uad00\uad00\ub9ac + +#\ub514\uc9c0\ud138 \uc790\uc0b0 \uad00\ub9ac# +comCmm.left.1250=\uac1c\uc778\uc9c0\uc2dd\uad00\ub9ac +comCmm.left.1260=\uc9c0\uc2dd\ub9f5\uad00\ub9ac(\uc720\ud615) +comCmm.left.1261=\uc9c0\uc2dd\ub9f5\uad00\ub9ac(\uc870\uc9c1) +comCmm.left.1270=\uc9c0\uc2dd\uc804\ubb38\uac00\uad00\ub9ac +comCmm.left.1280=\uc9c0\uc2dd\uc815\ubcf4\uad00\ub9ac +comCmm.left.1290=\uc9c0\uc2dd\ud3c9\uac00\uad00\ub9ac +comCmm.left.1291=\uc9c0\uc2dd\uc815\ubcf4\uc81c\uacf5 + +#\uc694\uc18c\uae30\uc220# +comCmm.left.1300=\uacf5\ud734\uc77c\uad00\ub9ac(\ub2ec\ub825) +comCmm.left.2080=\uc1a1\uc218\uc2e0\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2090=DB\uc11c\ube44\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2100=HTTP\uc11c\ube44\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2110=\ud504\ub85c\uc138\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2120=\ub124\ud2b8\uc6cc\ud06c\uc11c\ube44\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2130=\ud30c\uc77c\uc2dc\uc2a4\ud15c\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2140=\ud504\ub85d\uc2dc\uc11c\ube44\uc2a4 +comCmm.left.2150=\ud30c\uc77c\ub3d9\uae30\ud654(\ub300\uc0c1\uc11c\ubc84) +comCmm.left.2160=\ub85c\uadf8\uc778\uc138\uc158\uc815\ubcf4\uccb4\ud06c +comCmm.left.2170=\uc11c\ubc84\uc790\uc6d0\ubaa8\ub2c8\ud130\ub9c1-\ub300\uc0c1\ubaa9\ub85d +comCmm.left.2180=\uc8fc\uc18c\uc815\ubcf4\uc5f0\uacc4 +comCmm.left.2200=\uc554\ud638\ud654/\ubcf5\ud638\ud654 + +#\uc678\ubd80 \ucd94\uac00 \ucef4\ud3ec\ub10c\ud2b8# +comCmm.left.3000=JFile \uac00\uc774\ub4dc +comCmm.left.3010=JFile \ud30c\uc77c \uc5c5\ub85c\ub4dc +comCmm.left.3020=JFile \ud30c\uc77c \ub2e4\uc6b4\ub85c\ub4dc +comCmm.left.3100=LDAP \uc870\uc9c1\ub3c4 \ud2b8\ub9ac +comCmm.left.3110=LDAP \uc870\uc9c1\ub3c4 \uadf8\ub798\ud504 +comCmm.left.3200=\uc6f9\uc18c\ucf13 \uba54\uc2e0\uc800 + +#EgovUnitContent(\ub85c\uadf8\uc778 \ud6c4 \ud398\uc774\uc9c0)# +comCmm.unitContent.1=\uacf5\ud1b5\ucef4\ud3ec\ub10c\ud2b8 +comCmm.unitContent.2=\ub2d8 \ud658\uc601\ud569\ub2c8\ub2e4. +comCmm.unitContent.3=\ub85c\uadf8\uc544\uc6c3 +comCmm.unitContent.4=\uc2e4\ud589 \uc2dc \uc624\ub958 \uc0ac\ud56d\uc774 \uc788\uc73c\uc2dc\uba74 \ud45c\uc900\ud504\ub808\uc784\uc6cc\ud06c\uc13c\ud130\ub85c \uc5f0\ub77d\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. +comCmm.unitContent.5=\ud654\uba74 \uc124\uba85 +comCmm.unitContent.6=\uc67c\ucabd \uba54\ub274\ub294 \uba54\ub274\uc640 \uad00\ub828\ub41c \ucef4\ud3ec\ub10c\ud2b8(\uba54\ub274\uad00\ub9ac, \uc0ac\uc774\ud2b8\ub9f5 \ub4f1)\ub4e4\uc758 \uc601\ud5a5\uc744 \ubc1b\uc9c0 \uc54a\uc73c\uba70, +comCmm.unitContent.7=\uac01 \ucef4\ud3ec\ub10c\ud2b8\ub97c \uc27d\uac8c \ucc3e\uc544\ubcfc \uc218 \uc788\ub294 \ubc14\ub85c \uac00\uae30 \ub9c1\ud06c\ud398\uc774\uc9c0\uc785\ub2c8\ub2e4. +comCmm.unitContent.8=\ucef4\ud3ec\ub10c\ud2b8 \uc124\uce58 \ud6c4 \uc124\uce58\ub41c \ucef4\ud3ec\ub10c\ud2b8\ub4e4\uc744 IncludedInfo annotation\uc744 \ud1b5\ud574 \ucc3e\uc544\ub0b8 \ud6c4 +comCmm.unitContent.9=\ud654\uba74\uc5d0 \ud45c\uc2dc\ud560 \uc815\ubcf4\ub97c \ucc98\ub9ac\ud558\ub294 Controller \ud074\ub798\uc2a4\uc785\ub2c8\ub2e4. +comCmm.unitContent.10=\uac1c\ubc1c \uc2dc \uba54\ub274 \uad6c\uc870\uac00 \uc7a1\ud788\uae30 \uc804\uc5d0 \ubc30\ud3ec \ud30c\uc77c\ub4e4\uc5d0 \ud3ec\ud568\ub41c \uacf5\ud1b5 \ucef4\ud3ec\ub10c\ud2b8\ub4e4\uc758 \ubaa9\ub85d\uc131 \ud654\uba74\uc5d0 URL\uc744 \uc81c\uacf5\ud558\uc5ec +comCmm.unitContent.11=\uac1c\ubc1c\uc790\uac00 \ud3b8\ub9ac\ud558\uac8c \ud65c\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \uc791\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +comCmm.unitContent.12=\uc6b4\uc601 \uc2dc\uc5d0 \ubcf8 \ucee8\ud2b8\ub864\uc744 \uc0ac\uc6a9\ud558\uc5ec \uba54\ub274\ub97c \uad6c\uc131\ud558\ub294 \uacbd\uc6b0, +comCmm.unitContent.13=\uc131\ub2a5 \ubb38\uc81c\ub97c \uc77c\uc73c\ud0a4\uac70\ub098 \uc0ac\uc6a9\uc790\ubcc4 \uba54\ub274 \uad6c\uc131\uc5d0 \uc624\ub958\ub97c \ubc1c\uc0dd\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 +comCmm.unitContent.14=\uc2e4 \uc6b4\uc601 \uc2dc\uc5d0\ub294 \uc0ad\uc81c\ud574\uc11c \ubc30\ud3ec\ud558\ub294 \uac83\uc744 \uad8c\uc7a5\ud574 \ub4dc\ub9bd\ub2c8\ub2e4. + +comCmm.unitContent.20=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ub9cc\ub8cc \uc548\ub0b4 + +#EgovExpirePwd(\ube44\ubc00\ubc88\ud638\ubcc0\uacbd \uacf5\uc9c0)# +comCmm.expirePwdContent.1=\ub85c\uadf8\uc778 +comCmm.expirePwdContent.2=\ub85c\uadf8\uc778 \uad6c\ubd84 + +comCmm.expirePwdContent.10=\uc5c5\ubb34\uc0ac\uc6a9\uc790 +comCmm.expirePwdContent.11=\uae30\uc5c5\ud68c\uc6d0 +comCmm.expirePwdContent.12=\uc77c\ubc18\ud68c\uc6d0 + +comCmm.expirePwdContent.21=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04\uc758 \ubcc0\uacbd\uc740 \ub2e4\uc74c \ud30c\uc77c\uc744 \ucc38\uc870\ud558\uc5ec \uc8fc\uc138\uc694. +comCmm.expirePwdContent.22=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ub9cc\ub8cc +comCmm.expirePwdContent.23=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04\uc774 \ub9cc\ub8cc \ub418\uc5c8\uc2b5\ub2c8\ub2e4. +comCmm.expirePwdContent.24=\uc548\uc804\ud55c \uac1c\uc778\uc815\ubcf4 \ubcf4\ud638\ub97c \uc704\ud574 \uc9c0\uae08 \ube44\ubc00\ubc88\ud638\ub97c \ubcc0\uacbd\ud574 \uc8fc\uc138\uc694! +comCmm.expirePwdContent.25=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ucd08\uacfc\uc77c\uc218 +comCmm.expirePwdContent.26=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 +comCmm.expirePwdContent.27=\ube44\ubc00\ubc88\ud638 \ubcc0\uacbd\ud6c4 \uacbd\uacfc\uc77c\uc218 +comCmm.expirePwdContent.28=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ucd08\uacfc\uc77c\uc218 +comCmm.expirePwdContent.29=\uc8fc\uae30\uc801\uc73c\ub85c \ube44\ubc00\ubc88\ud638\ub97c \ubcc0\uacbd\ud574 \uc8fc\uc138\uc694. +comCmm.expirePwdContent.30=\uc77c + +comCmm.expirePwdContent.50=\uc9c0\uae08 \uc989\uc2dc \ubcc0\uacbd\ud558\uae30 +comCmm.expirePwdContent.51=\ub2e4\uc74c\uc5d0 \ubcc0\uacbd\ud558\uae30 \ No newline at end of file diff --git a/batch/bin/main/quartz-kic_dev.properties b/batch/bin/main/quartz-kic_dev.properties new file mode 100644 index 00000000..6c4cd154 --- /dev/null +++ b/batch/bin/main/quartz-kic_dev.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://192.10.10.203:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/bin/main/quartz-kic_rel.properties b/batch/bin/main/quartz-kic_rel.properties new file mode 100644 index 00000000..34232a17 --- /dev/null +++ b/batch/bin/main/quartz-kic_rel.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://192.10.10.203:3306/ur_itms_rel_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = YvRZ5jyhmB6gwVSUGBOqNMQB00k6OZZSfUH5ZU4GEFs= +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/bin/main/quartz-local.properties b/batch/bin/main/quartz-local.properties new file mode 100644 index 00000000..2df3481e --- /dev/null +++ b/batch/bin/main/quartz-local.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://192.168.8.131:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/bin/main/quartz.properties b/batch/bin/main/quartz.properties new file mode 100644 index 00000000..2df3481e --- /dev/null +++ b/batch/bin/main/quartz.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://192.168.8.131:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/bin/main/secrets/UrpSystem.keystore b/batch/bin/main/secrets/UrpSystem.keystore new file mode 100644 index 00000000..39528f7c --- /dev/null +++ b/batch/bin/main/secrets/UrpSystem.keystore @@ -0,0 +1 @@ +aes256.key=52f48aa1c7435bc11bf909d9d7d1d5932f4bacd8184ec5c1eed6d03ee17fe126 \ No newline at end of file diff --git a/batch/bin/test/UrpKeyMng/LibraryTest.class b/batch/bin/test/UrpKeyMng/LibraryTest.class new file mode 100644 index 00000000..822d2ac9 Binary files /dev/null and b/batch/bin/test/UrpKeyMng/LibraryTest.class differ diff --git a/batch/build.gradle b/batch/build.gradle new file mode 100644 index 00000000..fe14f972 --- /dev/null +++ b/batch/build.gradle @@ -0,0 +1,94 @@ +plugins +{ + id 'org.springframework.boot' version '2.6.2' + id 'io.spring.dependency-management' version '1.0.11.RELEASE' + id 'org.asciidoctor.convert' version '1.5.8' + id 'java' + id 'war' +} + +group = 'com.urpsys' +version = '1.0.0-SNAPSHOT' +sourceCompatibility = '16' + +configurations +{ + compileOnly + { + extendsFrom annotationProcessor + } + // spring logging , egov dataaccess 충돌로 인해 + // egov dataaccess 사용하기위해 서는 제외처리 + all { + exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' + } +} + +repositories +{ + mavenCentral() + maven { url "https://maven.egovframe.go.kr/maven/" } // egovframe maven 원격 저장소 +} + +ext +{ + set('snippetsDir', file("build/generated-snippets")) +} + +dependencies +{ + implementation 'org.springframework.boot:spring-boot-starter-batch' + implementation 'org.springframework.boot:spring-boot-starter-quartz' + + implementation ('org.springframework.boot:spring-boot-starter-web') + { + exclude group: 'org.springframework.boot', module: 'spring-boot-starter-tomcat' + } + + runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' // mariadb 연결처리 + implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.2' // DB 처리 + + implementation 'org.springframework.boot:spring-boot-starter-undertow' + implementation 'org.springframework.boot:spring-boot-starter-webflux' + implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' + + // 2025.06.04 나혁제 인사DB 연동을 위한 + implementation group: 'com.oracle.database.jdbc', name: 'ojdbc8', version: '21.8.0.0' + + compileOnly 'org.projectlombok:lombok:1.18.20' + annotationProcessor 'org.projectlombok:lombok:1.18.20' + testCompileOnly 'org.projectlombok:lombok:1.18.20' + testAnnotationProcessor 'org.projectlombok:lombok:1.18.20' + + implementation 'commons-codec:commons-codec:1.15' // 암호화처리 + implementation 'org.bgee.log4jdbc-log4j2:log4jdbc-log4j2-jdbc4.1:1.16' // sql log 처리 + + // 기타 개발 + developmentOnly 'org.springframework.boot:spring-boot-devtools' // 즉시적용처리 + implementation 'org.apache.commons:commons-lang3:3.12.0' // 문자열 처리 + + // 2025.04.02 나혁제 email 관련 추가 + implementation 'org.apache.commons:commons-email:1.5' + implementation group: 'commons-io', name: 'commons-io', version: '2.6' + + // api 통신 + implementation 'com.konghq:unirest-java:3.7.02' + + // egov dataaccess 사용하기 위해 + implementation('org.egovframe.rte:org.egovframe.rte.psl.dataaccess:4.0.0') + implementation('org.egovframe.rte:org.egovframe.rte.fdl.idgnr:4.0.0') + +} + +test +{ + outputs.dir snippetsDir + useJUnitPlatform() +} + +asciidoctor +{ + inputs.dir snippetsDir + dependsOn test +} + diff --git a/batch/gradle/wrapper/gradle-wrapper.jar b/batch/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000..41d9927a Binary files /dev/null and b/batch/gradle/wrapper/gradle-wrapper.jar differ diff --git a/batch/gradle/wrapper/gradle-wrapper.properties b/batch/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..aa991fce --- /dev/null +++ b/batch/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/batch/gradlew b/batch/gradlew new file mode 100644 index 00000000..1b6c7873 --- /dev/null +++ b/batch/gradlew @@ -0,0 +1,234 @@ +#!/bin/sh + +# +# Copyright © 2015-2021 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit + +APP_NAME="Gradle" +APP_BASE_NAME=${0##*/} + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + +# Collect all arguments for the java command; +# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of +# shell script including quotes and variable substitutions, so put them in +# double quotes to make sure that they get re-expanded; and +# * put everything else in single quotes, so that it's not re-expanded. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/batch/gradlew.bat b/batch/gradlew.bat new file mode 100644 index 00000000..107acd32 --- /dev/null +++ b/batch/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/batch/settings.gradle b/batch/settings.gradle new file mode 100644 index 00000000..1ee7c044 --- /dev/null +++ b/batch/settings.gradle @@ -0,0 +1,11 @@ +/* + * This file was generated by the Gradle 'init' task. + * + * The settings file is used to specify which projects to include in your build. + * + * Detailed information about configuring a multi-project build in Gradle can be found + * in the user manual at https://docs.gradle.org/7.4.2/userguide/multi_project_builds.html + */ + +rootProject.name = 'urpItms_30_Batch' + diff --git a/batch/src/etc/tables_mysql.sql b/batch/src/etc/tables_mysql.sql new file mode 100644 index 00000000..f73dc3f1 --- /dev/null +++ b/batch/src/etc/tables_mysql.sql @@ -0,0 +1,168 @@ +# +# Quartz seems to work best with the driver mm.mysql-2.0.7-bin.jar +# +# PLEASE consider using mysql with innodb tables to avoid locking issues +# +# In your Quartz properties file, you'll need to set +# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate +# + +DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; +DROP TABLE IF EXISTS QRTZ_LOCKS; +DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; +DROP TABLE IF EXISTS QRTZ_CALENDARS; + + +CREATE TABLE QRTZ_JOB_DETAILS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + JOB_CLASS_NAME VARCHAR(250) NOT NULL, + IS_DURABLE VARCHAR(1) NOT NULL, + IS_NONCONCURRENT VARCHAR(1) NOT NULL, + IS_UPDATE_DATA VARCHAR(1) NOT NULL, + REQUESTS_RECOVERY VARCHAR(1) NOT NULL, + JOB_DATA BLOB NULL, + PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE QRTZ_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + JOB_NAME VARCHAR(200) NOT NULL, + JOB_GROUP VARCHAR(200) NOT NULL, + DESCRIPTION VARCHAR(250) NULL, + NEXT_FIRE_TIME BIGINT(13) NULL, + PREV_FIRE_TIME BIGINT(13) NULL, + PRIORITY INTEGER NULL, + TRIGGER_STATE VARCHAR(16) NOT NULL, + TRIGGER_TYPE VARCHAR(8) NOT NULL, + START_TIME BIGINT(13) NOT NULL, + END_TIME BIGINT(13) NULL, + CALENDAR_NAME VARCHAR(200) NULL, + MISFIRE_INSTR SMALLINT(2) NULL, + JOB_DATA BLOB NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) + REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) +); + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + REPEAT_COUNT BIGINT(7) NOT NULL, + REPEAT_INTERVAL BIGINT(12) NOT NULL, + TIMES_TRIGGERED BIGINT(10) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CRON_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + CRON_EXPRESSION VARCHAR(200) NOT NULL, + TIME_ZONE_ID VARCHAR(80), + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(1) NULL, + BOOL_PROP_2 VARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_BLOB_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + BLOB_DATA BLOB NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_CALENDARS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + CALENDAR_NAME VARCHAR(200) NOT NULL, + CALENDAR BLOB NOT NULL, + PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) +); + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) +); + +CREATE TABLE QRTZ_FIRED_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + ENTRY_ID VARCHAR(95) NOT NULL, + TRIGGER_NAME VARCHAR(200) NOT NULL, + TRIGGER_GROUP VARCHAR(200) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + FIRED_TIME BIGINT(13) NOT NULL, + SCHED_TIME BIGINT(13) NOT NULL, + PRIORITY INTEGER NOT NULL, + STATE VARCHAR(16) NOT NULL, + JOB_NAME VARCHAR(200) NULL, + JOB_GROUP VARCHAR(200) NULL, + IS_NONCONCURRENT VARCHAR(1) NULL, + REQUESTS_RECOVERY VARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,ENTRY_ID) +); + +CREATE TABLE QRTZ_SCHEDULER_STATE + ( + SCHED_NAME VARCHAR(120) NOT NULL, + INSTANCE_NAME VARCHAR(200) NOT NULL, + LAST_CHECKIN_TIME BIGINT(13) NOT NULL, + CHECKIN_INTERVAL BIGINT(13) NOT NULL, + PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) +); + +CREATE TABLE QRTZ_LOCKS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + LOCK_NAME VARCHAR(40) NOT NULL, + PRIMARY KEY (SCHED_NAME,LOCK_NAME) +); + + +commit; diff --git a/batch/src/main/java/com/urpsys/basebatch/Aes256Test.java b/batch/src/main/java/com/urpsys/basebatch/Aes256Test.java new file mode 100644 index 00000000..2d1d331f --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/Aes256Test.java @@ -0,0 +1,122 @@ +package com.urpsys.basebatch; + +import java.io.InputStream; +import java.security.InvalidKeyException; + +import javax.crypto.Cipher; +import javax.crypto.SecretKey; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; + +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.codec.binary.Hex; + +/** + * Hello world! + * + */ +public class Aes256Test +{ + private static SecretKey keySpec; // keySpec + private static IvParameterSpec ivSpec; // ivSpec + + + public static void main( String[] args ) + { + InputStream fis = null; + String secretKey = null; + + System.out.println( "Hello World!" ); + + secretKey = "52f48aa1c7435bc11bf909d9d7d1d5932f4bacd8184ec5c1eed6d03ee17fe126"; + + args = new String[2]; + + args[0] ="enc"; + args[1] ="kicintf12!"; + + if(args.length !=2 ) + { + System.out.println("Invalid args , args length 2 input "); + System.exit(0); + } + + try + { + byte[] secretKeyBytes = Hex.decodeHex(secretKey); + + if (secretKeyBytes.length != 32) + { + System.out.println("Invalid key (key length is not valid) "); + System.exit(0); + } + + byte[] ivBytes = new byte[16]; + + System.arraycopy(secretKeyBytes, 0, ivBytes, 0, 16); + + keySpec = new SecretKeySpec(secretKeyBytes, "AES"); + ivSpec = new IvParameterSpec(ivBytes); + + if(args[0].equals("enc")) + { + System.out.println( "암호로 변경" ); + + if (args[1] == null) + { + System.out.println("변경할 문자열이 없습니다."); + } + + String encryptedStr = null; + + try + { + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); + byte[] encrypted = cipher.doFinal(args[1].getBytes("UTF-8")); + encryptedStr = new String(Base64.encodeBase64(encrypted)); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + + System.out.println( "["+ args[1] +"] 암호화로 변경 =============>"+ encryptedStr); + } + else if(args[0].equals("dec")) + { + System.out.println( "평문으로 변경" ); + + if (args[1] == null) + { + System.out.println("변경할 문자열이 없습니다."); + } + + String decryptedStr = null; + + try { + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + + cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec); + byte[] byteStr = Base64.decodeBase64(args[1].getBytes("UTF-8")); + decryptedStr = new String(cipher.doFinal(byteStr), "UTF-8"); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + + System.out.println( "["+ args[1] +"] 평문으로 변경 =============>"+ decryptedStr); + } + + + + } + catch(Exception e) + { + e.printStackTrace(); + } + + + } +} diff --git a/batch/src/main/java/com/urpsys/basebatch/common/crypto/Aes256Cipher.java b/batch/src/main/java/com/urpsys/basebatch/common/crypto/Aes256Cipher.java new file mode 100644 index 00000000..e390933d --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/common/crypto/Aes256Cipher.java @@ -0,0 +1,152 @@ +package com.urpsys.basebatch.common.crypto; + +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.security.InvalidKeyException; +import java.util.Properties; + +import javax.crypto.Cipher; +import javax.crypto.SecretKey; +import javax.crypto.spec.IvParameterSpec; +import javax.crypto.spec.SecretKeySpec; + +import com.urpsys.basebatch.common.util.CommonUtil; + +import org.apache.commons.codec.DecoderException; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.codec.binary.Hex; +import org.springframework.core.io.ClassPathResource; + +/** + * aes 256 암호화 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일         수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.03     나혁제         최초작성
+ *
+ * 
+ */ + +public class Aes256Cipher +{ + private SecretKey keySpec; // keySpec + private IvParameterSpec ivSpec; // ivSpec + + /** + * Aes256Cipher 생성자 + * + * @param keyFile 키 파일 위치를 입력 받음 + * @throws IOException 파일 io 시 발생하는 익셉션 + * @throws InvalidKeyException key가 잘못되었을 경우 발생하는 익셉션 + * @throws DecoderException 암호화된 문자열을 decoding할 때 발생하는 익셉션 + */ + public Aes256Cipher() throws IOException, InvalidKeyException, DecoderException + { + + String activeProfile = (CommonUtil.nvl(System.getProperty("spring.profiles.active"))); + + InputStream fis = null; + String secretKey = null; + + try + { + fis = new ClassPathResource("secrets/UrpSystem.keystore").getInputStream(); + + Properties props = new Properties(); + props.load(fis); + secretKey = props.getProperty("aes256.key"); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + finally + { + fis.close(); + } + + byte[] secretKeyBytes = Hex.decodeHex(secretKey); + + if (secretKeyBytes.length != 32) { + throw new InvalidKeyException("Invalid key (key length is not valid) "); + } + + byte[] ivBytes = new byte[16]; + + System.arraycopy(secretKeyBytes, 0, ivBytes, 0, 16); + + keySpec = new SecretKeySpec(secretKeyBytes, "AES"); + ivSpec = new IvParameterSpec(ivBytes); + } + + /** + * encryption 하는 메소드 + * + * @param plainStr 평문을 입력 받음 + * @return 암호화된 문자열 + */ + public String encrypt(String plainStr) + { + if (plainStr == null) + { + return null; + } + + String encryptedStr = null; + + try + { + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec); + byte[] encrypted = cipher.doFinal(plainStr.getBytes("UTF-8")); + encryptedStr = new String(Base64.encodeBase64(encrypted)); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + + return encryptedStr; + } + + /** + * 암호화된 문자열을 복호화하는 메소드 + * + * @param encryptedStr 암호화된 문자열 + * @return 암호화가 해제된 문자열 + */ + public String decrypt(String encryptedStr) + { + if (encryptedStr == null) + { + return null; + } + + String decryptedStr = null; + + try + { + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); + + cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec); + byte[] byteStr = Base64.decodeBase64(encryptedStr.getBytes("UTF-8")); + decryptedStr = new String(cipher.doFinal(byteStr), "UTF-8"); + } + catch (Exception ex) + { + ex.printStackTrace(); + } + + return decryptedStr; + } +} diff --git a/batch/src/main/java/com/urpsys/basebatch/common/exception/CustomException.java b/batch/src/main/java/com/urpsys/basebatch/common/exception/CustomException.java new file mode 100644 index 00000000..6f355f6f --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/common/exception/CustomException.java @@ -0,0 +1,124 @@ +package com.urpsys.basebatch.common.exception; + +import java.sql.SQLSyntaxErrorException; + +import lombok.Getter; + +/** + * Custom exception 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.03    나혁제         최초작성
+ *
+ * 
+ */ + +public class CustomException extends Exception +{ + private static final long serialVersionUID = 3559302713942492181L; + + @Getter + private String errorCode; + + @Getter + private String errorMsg; + + /** + * 생성자(throwable를 받아서 exception 종류에 따라 에러 코드 정의하는 클래스) + * 에러코드 처리 부분은 향후 db에서 에러코드 읽어와서 매핑하는 것으로 + * 변경 가능성 있음 + * @param throwable + */ + public CustomException(Throwable throwable) + { + Throwable rootThrowable = getRootCause(throwable); + + // TODO 에러 코드는 상세 정의해서 define 해야 함 + if(rootThrowable instanceof SQLSyntaxErrorException) + { + this.errorCode = "100"; + this.errorMsg = "SQL 오류"; + } + else if(rootThrowable instanceof ArithmeticException) + { + this.errorCode = "200"; + this.errorMsg = "연산 오류"; + } + else + { + this.errorCode = "900"; + this.errorMsg = "Unknown Error"; + } + } + + /** + * 생성자(에러메시지만 받을 경우 에러코드를 0을 default로 세팅) + * @param errorMsg + */ + public CustomException(String errorMsg) + { + super(errorMsg); + this.errorCode = "0"; + this.errorMsg = errorMsg; + } + + /** + * 생성자(errorcode, errmsg를 받아 세팅, 소스코드에서 편하게 사용하기 위해 + * 에러코드를 int 값으로 받으면 string으로 변환하여 저장) + * @param errorCode + * @param errorMsg + */ + public CustomException(int errorCode, String errorMsg) + { + super(errorMsg); + this.errorCode = String.valueOf(errorCode); + this.errorMsg = errorMsg; + } + + /** + * 생성자(에러코드, 에러메시지를 받아 세팅) + * @param errorCode + * @param errorMsg + */ + public CustomException(String errorCode, String errorMsg) + { + super(errorMsg); + this.errorCode = errorCode; + this.errorMsg = errorMsg; + } + + /** + * stack에서 에러코드 중 root cause를 찾아내는 메소드 + * @param throwable + * @return + */ + private Throwable getRootCause(Throwable throwable) + { + Throwable cause = throwable.getCause(); + + if (cause == null) { + return throwable; + } + + while (true) { + + if(cause.getCause() == null) { + break; + } else { + cause = cause.getCause(); + } + } + + return cause; + } +} diff --git a/batch/src/main/java/com/urpsys/basebatch/common/util/CommonUtil.java b/batch/src/main/java/com/urpsys/basebatch/common/util/CommonUtil.java new file mode 100644 index 00000000..933591ad --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/common/util/CommonUtil.java @@ -0,0 +1,524 @@ +package com.urpsys.basebatch.common.util; + +import java.text.SimpleDateFormat; +import java.util.Arrays; +import java.util.Base64; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Locale; +import java.util.SimpleTimeZone; +import java.util.Vector; + +import com.urpsys.basebatch.common.exception.CustomException; + +/** + * 공통 유틸리티를 모아둔 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.03    나혁제         최초작성
+ *
+ *      
+ */ + +public class CommonUtil +{ + /** + * nvl 메소드 + * @param inputStr + * @return + */ + public static String nvl(String inputStr) + { + return (inputStr != null) ? inputStr.trim() : ""; + } + + /** + * nvl 메소드 + * @param inputStr + * @param defaultValue + * @return + */ + public static String nvl(String inputStr, String defaultValue) + { + return nvl(inputStr).contentEquals("") ? defaultValue : inputStr.trim(); + } + + /** + * nvl 메소드 + * @param inputObj + * @return + */ + public static String nvl(Object inputObj) + { + return (inputObj != null) ? String.valueOf(inputObj).trim() : ""; + } + + /** + * long 타입의 시간을 입력받아 날짜 형태로 변환해서 리턴해주는 함수 + * + * @param longTime long type 시간 + * @param dateFormat 변환할 포맷 + * @return 변환된 날짜 String + * @throws SystemException + */ + public static String getTimeString(long longTime, String dateFormat) throws CustomException + { + SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.KOREA); + + if (longTime < 0) + { + return ""; + } + else + { + try + { + return sdf.format(new Date(longTime)); + } + catch (Exception e) + { + throw new CustomException("Date 변환 오류"); + } + } + } + + /** + * 현재(한국기준) 시간정보를 얻는다.
+ * (예) 입력파리미터인 format string에 "yyyyMMddhh"를 셋팅하면 1998121011과 같이 Return.
+ * (예) format string에 "yyyyMMddHHmmss"를 셋팅하면 19990114232121과 같이 + * 0~23시간 타입으로 Return.
+ * String CurrentDate = CtosUtil2.getKST("yyyyMMddHH");
+ * @param format 얻고자하는 현재시간의 Type + * @return str 현재 한국 시간. + */ + public static String getKST(String format) + { + //1hour(ms) = 60s * 60m * 1000ms + int millisPerHour = 60 * 60 * 1000; + SimpleDateFormat fmt= new SimpleDateFormat(format); + + SimpleTimeZone timeZone = new SimpleTimeZone(9*millisPerHour,"KST"); + fmt.setTimeZone(timeZone); + + long time=System.currentTimeMillis(); + String str=fmt.format(new java.util.Date(time)); + return str; + } + + /** + * 입력한 날짜 기준으로 몇일 전,후 (주의)입력날짜는 구분자가 없는 string형 + * + * @param date + * string date (19991002) + * @param Day + * 기준이 되는 시간 + * @return String + */ + public static String getDatewithSpan(String date, long Day) + { + /* + * int millisPerHour = 60 * 60 * 1000; SimpleDateFormat fmt= new + * SimpleDateFormat("yyyy/MM/dd"); SimpleTimeZone timeZone = new + * SimpleTimeZone(9*millisPerHour,"KST"); fmt.setTimeZone(timeZone); + * + * int year = Integer.valueOf(date.substring(0,4)).intValue(); int month + * = Integer.valueOf(date.substring(4,6)).intValue(); int day = + * Integer.valueOf(date.substring(6,8)).intValue(); + * + * java.util.Calendar aDay = Calendar.getInstance(); + * aDay.set(year+1900,month,day); java.util.Calendar bDay + * =Calendar.getInstance(); bDay.set(1970+1900,1,1); java.util.Date cDay + * = new java.util.Date((aDay.getTime()).getTime() - + * (bDay.getTime()).getTime() + ((Day+1)*86400000) ); + * + * return fmt.format(cDay); + */ + // 2006-09-04 7:03오후 오동원수정 + String vFORMAT = "yyyy/MM/dd"; + return getDatewithSpan(date, Day, "D", vFORMAT); + + } + + /** + * 입력한 날짜 기준으로 몇(일,시간,분) 전,후 (주의)입력날짜는 구분자가 없는 string형
+ * + * @param date + * string date (20000315/2000031509/200003150915) + * @param unit + * long unit: 몇(일,시간,분) 전, 몇(일,시간,분) 후 + * @param type + * String type: D:Day H:Hour M:Minute + * @return String 계산된 문자열의 값. + */ + public static String getDatewithSpan(String date, long unit, String type, String strFormatType) + { + /* + * String formatType = strFormatType; int ihour = 0; int itime = 0; + * + * long dhm = 24 * 60 * 60 * 1000; + * + * if (type.equals("D")) { dhm =dhm + unit * 24 * 60 * 60 * 1000; } else + * if (type.equals("H")){ dhm =dhm + unit * 60 * 60 * 1000; } else if + * (type.equals("M")){ dhm =dhm + unit * 60 * 1000; } else{ return type + * + "은 부적절한 Type값입니다"; } + * + * switch (date.length()){ case (8): if (type.equals("H") || + * type.equals("M")) { return "HM-ERROR"; } + * + * break; case (10): if (type.equals("M")) { return "M-ERROR"; } + * + * ihour = Integer.valueOf(date.substring(8,10)).intValue(); break; case + * (12): + * + * ihour = Integer.valueOf(date.substring(8,10)).intValue(); itime = + * Integer.valueOf(date.substring(10,12)).intValue(); break; default: + * return "date Length Error"; } + * + * int millisPerHour = 60 * 60 * 1000; SimpleDateFormat fmt= new + * SimpleDateFormat(formatType); SimpleTimeZone timeZone = new + * SimpleTimeZone(9*millisPerHour,"KST"); fmt.setTimeZone(timeZone); + * + * int iyear = Integer.valueOf(date.substring(0,4)).intValue(); int + * imonth = Integer.valueOf(date.substring(4,6)).intValue(); int iday = + * Integer.valueOf(date.substring(6,8)).intValue(); java.util.Calendar + * aDay = Calendar.getInstance(); + * aDay.set(iyear+1900,imonth,iday,ihour,itime); java.util.Calendar bDay + * = Calendar.getInstance(); bDay.set(1970+1900,1,1,9,0); java.util.Date + * cDay = new java.util.Date((aDay.getTime()).getTime() - + * (bDay.getTime()).getTime() + dhm); return fmt.format(cDay); + */ + // 2006-09-04 7:03오후 오동원수정 + String formatType = strFormatType; + int ihour = 0; + int itime = 0; + if(!(type.equals("D") || type.equals("H") || type.equals("M"))) + { + return type + "은 부적절한 Type값입니다"; + } + + switch(date.length()) + { + case (8): + if(type.equals("H") || type.equals("M")) + { + return "HM-ERROR"; + } + break; + case (10): + if(type.equals("M")) + { + return "M-ERROR"; + } + ihour = Integer.parseInt(date.substring(8, 10)); + // ihour = Integer.valueOf(date.substring(8, 10)).intValue(); + break; + case (12): + ihour = Integer.parseInt(date.substring(8, 10)); + itime = Integer.parseInt(date.substring(10, 12)); + + // ihour = Integer.valueOf(date.substring(8, 10)).intValue(); + // itime = Integer.valueOf(date.substring(10, 12)).intValue(); + break; + default: + return "date Length Error"; + } + int iyear = Integer.parseInt(date.substring(0, 4)); + int imonth = Integer.parseInt(date.substring(4, 6)); + int iday = Integer.parseInt(date.substring(6, 8)); + + /* + int iyear = Integer.valueOf(date.substring(0, 4)).intValue(); + int imonth = Integer.valueOf(date.substring(4, 6)).intValue(); + int iday = Integer.valueOf(date.substring(6, 8)).intValue(); + */ + + int imonth1 = imonth - 1; // 달은 0달부터 시작한다. + java.util.Calendar zDay = Calendar.getInstance(); + zDay.set(iyear, imonth1, iday, ihour, itime); + + if(type.equals("D")) + { + zDay.add(Calendar.DATE, (int) unit); + } + else if(type.equals("H")) + { + zDay.add(Calendar.HOUR_OF_DAY, (int) unit); + } + else if(type.equals("M")) + { + zDay.add(Calendar.MINUTE, (int) unit); + } + else + { + return type + "은 부적절한 Type값입니다"; + } + java.util.Date z1Day = zDay.getTime(); + java.text.SimpleDateFormat fmt2 = new java.text.SimpleDateFormat(formatType); + return fmt2.format(z1Day); + + } + + /** + * 현재 시간을 기준으로 몇 일후 시간 시간의 형태는 (yyyy/mm/dd) + * + * @param day + * 더하려는 날짜 + * @return str 현재 시간에 입력 시간을 더한 DATE형 시간 + */ + public static String getDatewithSpan(long day) + { + /* + * int millisPerHour = 60 * 60 * 1000; SimpleDateFormat fmt= new + * SimpleDateFormat("yyyy/MM/dd"); SimpleTimeZone timeZone = new + * SimpleTimeZone(9*millisPerHour,"KST"); fmt.setTimeZone(timeZone); + * + * long time = System.currentTimeMillis(); long span = ( 60 * 60 * 1000 + * * 24 ) * day; //하루에 대한 millisecond... long time2 = time + span; + * String str=fmt.format(new java.util.Date(time2)); + * + * return str; + */ + String strSYSDATE = CommonUtil.getKST("yyyyMMddHH"); // 지금 시간 + String vFORMAT = "yyyy/MM/dd"; + return getDatewithSpan(strSYSDATE, day, "D", vFORMAT); + + } + + public static long stol(String str) + { + if(str == null ) return 0; + return (Long.valueOf(str).longValue()); + } + + /** + 문자열을 중 특정 문자열을 변환시킨다. + @version 1.0 + @author Yoon Su-wan + @since JDK1.0 + @param targeter 대상문자열 + @param target_str 변환될 대상문자열 + @param replace_str 변환될 문자열 + @return target_str이 replace_str로 변환된 문자열 + */ + public static String getReplacedString(String targeter, String target_str, String replace_str) + { + if( targeter == null + || target_str == null + || replace_str == null ) + return "debug : parameter value is null"; + + if(target_str.length() == 0) + return targeter; + + StringBuffer str = new StringBuffer(); + int start_ptr = 0; + int current_ptr = 0; + int increment_size = replace_str.length(); + if(increment_size == 0 ) increment_size = 1; + + while((current_ptr = targeter.indexOf(target_str, start_ptr)) != -1) + { + str.append(targeter.substring(start_ptr, current_ptr)); + str.append(replace_str); + start_ptr = current_ptr + increment_size; + if(start_ptr >= targeter.length()) + break; + }//end while + + if(start_ptr == 0) + return targeter; + + if(start_ptr < targeter.length()) + str.append(targeter.substring(start_ptr)); + + return str.toString(); + }//getReplacedString(String targeter, String target_str, String replace_str) + + /** + 받은메세지에서 v_s1값을 찾아서 v_s2로 대치한다. + @version 1.0 + @author Yoon Su-wan + @since JDK1.0 + @param v_msg 대상문자열 + @param v_s1 변환될 대상문자열 + @param v_s2 변환될 문자열 + @return v_s1이 v_s2 변환된 문자열 + */ + + public static String getReplacedString2(String v_msg, String v_s1, String v_s2) + { + int idx = v_msg.indexOf(v_s1); + + if (idx == -1) return v_msg; + else + { + try + { + return v_msg.substring(0, idx) + v_s2 + v_msg.substring(idx+2); + } catch (Exception e) + { + return v_msg.substring(0, idx) + v_s2; + } + } + + } + + public static String getReplacedString3(String sStr, String n1, String n2) + { + int iTmp = 0; + if (sStr == null) return ""; + + String sTmp = sStr; + StringBuffer sbSave = new StringBuffer(); + sbSave.append(""); + while (sTmp.indexOf(n1) > -1) + { + iTmp = sTmp.indexOf(n1); + sbSave.append(sTmp.substring(0,iTmp)); + sbSave.append(n2); + sTmp = sTmp.substring(iTmp + n1.length()); + } + sbSave.append(sTmp); + return sbSave.toString(); + } + + public static Vector arrToDouVector(String strArray, String strDelimt) + { + String[] stArray = strArray.split(strDelimt); + + double[] dArray = Arrays.stream(stArray).mapToDouble(Double::parseDouble).toArray(); + Vector vReturn = new Vector(); + + if(dArray==null) return vReturn; + + for(double dTemp: dArray) + { + vReturn.add(dTemp); + } + + return vReturn; + + } + + public static String arrListToString(List list) + { + String strReturn=""; + + if(list == null ) return ""; + + for(int i=0; i"+strTemp); + // double dou = Double.parseDouble(strTemp); + // strReturn = strReturn+","+dou; + strReturn = strReturn+","+strTemp; + } + + strReturn = strReturn.substring(1); + + return strReturn; + + } + + /** + 보고서 body base64 변환 + front로 부터 받아서 DB저장시 사용 + @version 1.0 + @author 나혁제 + @since 2025.02.06 + @param txt String + @return String + */ + public static String base64encode(String txt) + { + try + { + byte[] bytes = Base64.getEncoder().encode((txt).getBytes("utf-8")); + return new String(bytes); + } + catch(Exception e) + { + e.printStackTrace(); + byte[] bytes = Base64.getEncoder().encode((txt).getBytes()); + return new String(bytes); + } + } + + /** + 서버(DB)에서 front로 전달시 사용 + @version 1.0 + @author 나혁제 + @since 2025.02.06 + @param txt String + @return String + */ + public static String base64decode(String txt) + { + byte[] bytes = Base64.getDecoder().decode(txt.getBytes()); + + try + { + return new String(bytes, "utf-8"); + } + catch(Exception e) + { + e.printStackTrace(); + return new String(bytes); + } + } + + /** + *
+	 * 인자로 받은 String이 null일 경우 "0"로 리턴한다.
+	 * @param src null값일 가능성이 있는 String 값.
+	 * @return 만약 String이 null 값일 경우 "0"로 바꾼 String 값.
+	 *
+ */ + public static int zeroConvert(Object src) + { + String src2 = src+""; + if (src == null || src.equals("null")) + { + return 0; + } + else + { + return Integer.parseInt(((String)src2).trim()); + } + } + + /** + *
+	 * 인자로 받은 String이 null일 경우 ""로 리턴한다.
+	 * @param src null값일 가능성이 있는 String 값.
+	 * @return 만약 String이 null 값일 경우 ""로 바꾼 String 값.
+	 *
+ */ + public static int zeroConvert(String src) + { + + if (src == null || src.equals("null") || "".equals(src) || " ".equals(src)) + { + return 0; + } + else + { + return Integer.parseInt(src.trim()); + } + } + + + +} diff --git a/batch/src/main/java/com/urpsys/basebatch/common/util/ConvertUtils.java b/batch/src/main/java/com/urpsys/basebatch/common/util/ConvertUtils.java new file mode 100644 index 00000000..17eefea3 --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/common/util/ConvertUtils.java @@ -0,0 +1,431 @@ +package com.urpsys.basebatch.common.util; + +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import org.springframework.util.ObjectUtils; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import kong.unirest.json.JSONArray; +import kong.unirest.json.JSONException; +import kong.unirest.json.JSONObject; +import lombok.extern.slf4j.Slf4j; + +/** + * 데이터 유형 변환 처리 모음 Util 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.09 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일         수정자        수정내용
+ * -----------  ---------    ------------------------
+ * 2025.03.20    나혁제         최초작성
+ *s
+ *      
+ */ +@Slf4j +public class ConvertUtils +{ + private ConvertUtils() {} + + /** + Object Type을 Map 타입으로 변환처리 + @version 1.0 + @author 나혁제 + @param Object obj + @return Map + */ + public static Map convertToMap(Object obj) + { + try + { + if (Objects.isNull(obj)) + { + return Collections.emptyMap(); + } + + Map convertMap = new LinkedHashMap<>(); + + Field[] fields = obj.getClass().getDeclaredFields(); + + for (Field field : fields) + { + field.setAccessible(true); + convertMap.put(field.getName(), field.get(obj)); + } + + return convertMap; + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + /** + Object Type의 List을 Map List 타입으로 변환처리 + @version 1.0 + @author 나혁제 + @param List list + @return List> + */ + public static List> convertToMaps(List list) + { + if (list == null || list.isEmpty()) + { + return Collections.emptyList(); + } + + List> convertList = new ArrayList<>(list.size()); + + for (Object obj : list) + { + convertList.add(ConvertUtils.convertToMap(obj)); + } + return convertList; + } + + + /** + Object Type을 Map 타입으로 변환처리 (확장영역까지 변환) + @version 1.0 + @author 나혁제 + @param Object obj + @return Map + */ + public static Map convertToMapAll(Object obj) + { + try + { + if (Objects.isNull(obj)) + { + return Collections.emptyMap(); + } + + Class upType = obj.getClass(); + + Map convertMap = new HashMap<>(); + + while(true) + { + + Field[] fields = upType.getDeclaredFields(); + + for (Field field : fields) + { + field.setAccessible(true); + convertMap.put(field.getName(), field.get(obj)); + } + + if(upType.getSuperclass() == null ) + { + break; + } + else + { + upType = upType.getSuperclass(); + } + } + + return convertMap; + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + /** + Map 데이터를 입력괸 클래스 타입으로 변환처리 + @version 1.0 + @author 나혁제 + @param Map map 입력맵 + Class type 변환 클래스 + @return T 변환된 븤래스 + */ + public static T convertToValueObject(Map map, Class type) + { + try + { + Objects.requireNonNull(type, "Class cannot be null"); + T instance = type.getConstructor().newInstance(); + + if (map == null || map.isEmpty()) + { + return instance; + } + + for (Map.Entry entry : map.entrySet()) + { + Field[] fields = type.getDeclaredFields(); + + for (Field field : fields) + { + field.setAccessible(true); + String name = field.getName(); + + boolean isSameType = entry.getValue().getClass().equals(getReferenceType(field.getType())); + boolean isSameName = entry.getKey().equals(name); + + if (isSameType && isSameName) + { + field.set(instance, map.get(name)); + break; + } + } + } + return instance; + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + /** + Map List 데이터를 입력괸 클래스 타입으로 변환처리 + @version 1.0 + @author 나혁제 + @param List> list + Class type 변환 클래스 + @return T 변환된 리스트 + */ + public static List convertToValueObjects(List> list, Class type) + { + Objects.requireNonNull(type, "Class cannot be null"); + + if (list == null || list.isEmpty()) + { + return Collections.emptyList(); + } + + List convertList = new ArrayList<>(list.size()); + + for (Map map : list) + { + convertList.add(ConvertUtils.convertToValueObject(map, type)); + } + return convertList; + } + + /** + Map List 데이터를 입력괸 클래스 타입으로 변환처리 (확장영역) + @version 1.0 + @author 나혁제 + @param Map map 입력맵 + Class type 변환 클래스 + @return T 변환된 븤래스 + */ + public static T convertToValueObjectAll(Map map, Class type) + { + try + { + Objects.requireNonNull(type, "Class cannot be null"); + T instance = type.getConstructor().newInstance(); + + if (map == null || map.isEmpty()) + { + return instance; + } + + for (Map.Entry entry : map.entrySet()) + { + Class upType = type; + + while(true) + { + Boolean bExist = false; + Field[] fields = upType.getDeclaredFields(); + + if(fields == null || fields.length==0) break; + + for (Field field : fields) + { + field.setAccessible(true); + String name = field.getName(); + + boolean isSameType = entry.getValue().getClass().equals(getReferenceType(field.getType())); + boolean isSameName = entry.getKey().equals(name); + + if (isSameType && isSameName) + { + field.set(instance, map.get(name)); + bExist = true; + break; + } + } + + if(bExist) break; + + if(upType.getSuperclass().getClass() == null) + { + break; + } + else + { + upType = upType.getSuperclass(); + } + } + } + + return instance; + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + /** + Map List 데이터를 입력괸 클래스 타입으로 변환처리 (확장된 클래스 처리) + @version 1.0 + @author 나혁제 + @param v_msg Map + @return List + */ + public static List convertToValueObjectsAll(List> list, Class type) + { + Objects.requireNonNull(type, "Class cannot be null"); + + if (list == null || list.isEmpty()) + { + return Collections.emptyList(); + } + + List convertList = new ArrayList<>(list.size()); + + for (Map map : list) + { + convertList.add(ConvertUtils.convertToValueObjectAll(map, type)); + } + return convertList; + } + + private static Class getReferenceType(Class type) + { + switch (type.getName()) { + case "boolean" : return Boolean.class; + case "byte" : return Byte.class; + case "short" : return Short.class; + case "char" : return Character.class; + case "int" : return Integer.class; + case "long" : return Long.class; + case "float" : return Float.class; + case "double" : return Double.class; + default : return type; + } + } + + /** + Map 데이터를 JSONObject로 변환. + @version 1.0 + @author 나혁제 + @param v_msg Map + @return JSONObject + */ + public static JSONObject getJsonFromMap(Map map) throws JSONException + { + JSONObject jsonData = new JSONObject(); + + for (String key : map.keySet()) + { + Object value = map.get(key); + if (value instanceof Map) + { + value = getJsonFromMap((Map) value); + } + jsonData.put(key, value); + } + return jsonData; + } + + /** + List 데이터를 JSONArray로 변환. + @version 1.0 + @author 나혁제 + @param v_msg Map + @return JSONObject + */ + public static JSONArray getJsonFromList(List> list) throws JSONException + { + + JSONArray jsonArr = new JSONArray(); + + for(Map map : list) + { + JSONObject jsonObj = getJsonFromMap(map); + jsonArr.put(jsonObj); + } + + return jsonArr; + } + + + /** + * jsonObject --> map 으로 변경 + * JSONObject 에 JSONArray 없어야 햠. + * @author 나혁제 + * @param obj + * @return + */ + public static Map getMapFromJSONObject(JSONObject obj) + { + if (ObjectUtils.isEmpty(obj)) + { + log.error("BAD REQUEST obj : {}", obj); + throw new IllegalArgumentException(String.format("BAD REQUEST obj %s", obj)); + } + + try + { + return new ObjectMapper().readValue(obj.toString(), Map.class); + } + catch (Exception e) + { + log.error(e.getMessage(), e); + throw new RuntimeException(e); + } + } + + /** + * json array 를 list map 으로 변경. + * + * @author 나혁제 + * @param jsonArray + * @return 값이 있으면 list map, 없으면 list 빈 값 return + */ + public static List> getListMapFromJsonArray(JSONArray jsonArray) + { + if (ObjectUtils.isEmpty(jsonArray)) + { + log.error("jsonArray is null."); + throw new IllegalArgumentException("jsonArray is null"); + } + + List> list = new ArrayList<>(); + + for (Object jsonObject : jsonArray) + { + list.add(getMapFromJSONObject((JSONObject) jsonObject)); + } + return list; + } + + + + + +} diff --git a/batch/src/main/java/com/urpsys/basebatch/common/util/DataSourceUtil.java b/batch/src/main/java/com/urpsys/basebatch/common/util/DataSourceUtil.java new file mode 100644 index 00000000..7b87c9b2 --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/common/util/DataSourceUtil.java @@ -0,0 +1,113 @@ +package com.urpsys.basebatch.common.util; + +import javax.sql.DataSource; + +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionFactoryBean; +import org.springframework.core.env.Environment; +import org.springframework.core.io.Resource; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; + +import com.urpsys.basebatch.common.crypto.Aes256Cipher; +import com.urpsys.basebatch.common.exception.CustomException; +import com.zaxxer.hikari.HikariConfig; +import com.zaxxer.hikari.HikariDataSource; + +import java.util.LinkedHashMap; + +/** + * Datasource 생성하는 유틸리티 + * + * @author 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.03    나혁제         최초작성
+ *
+ * 
+ */ + +public class DataSourceUtil +{ + /** + * 데이터 소스 만드는 메소드 + * @param dataSourceName + * @param env + * @param cipher + * @return + */ + public static DataSource createDataSource(String dataSourceName, Environment env, Aes256Cipher cipher) + { + HikariConfig config = new HikariConfig(); + + config.setDriverClassName (env.getProperty(dataSourceName + ".driverClassName" )); + config.setJdbcUrl (env.getProperty(dataSourceName + ".jdbcUrl" )); + + config.setUsername (cipher.decrypt(env.getProperty(dataSourceName + ".username"))); + config.setPassword (cipher.decrypt(env.getProperty(dataSourceName + ".password"))); + + config.setAutoCommit(false); + + config.setMaximumPoolSize (Integer.parseInt(env.getProperty(dataSourceName + ".maximumPoolSize" ))); + config.setMinimumIdle (Integer.parseInt(env.getProperty(dataSourceName + ".minimumIdle" ))); + config.setConnectionTimeout (Long.parseLong (env.getProperty(dataSourceName + ".connectionTimeout" ))); + config.setIdleTimeout (Long.parseLong (env.getProperty(dataSourceName + ".idleTimeout" ))); + + config.addDataSourceProperty("cachePrepStmts" , "true"); + config.addDataSourceProperty("prepStmtCacheSize" , "250"); + config.addDataSourceProperty("prepStmtCacheSqlLimit" , "2048"); + + return new HikariDataSource(config); + } + + /** + * SqlSessionFactory 만드는 메소드 + * @param dataSource + * @param configLocation + * @param mapperLocation + * @return + * @throws CustomException + */ + public static SqlSessionFactory createSqlSessionFactory(DataSource dataSource, Resource configLocation, + Resource[] mapperLocation) throws CustomException + { + SqlSessionFactory sqlSessionFactory; + + try { + SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean(); + sessionFactoryBean.setDataSource(dataSource); + sessionFactoryBean.setConfigLocation(configLocation); + sessionFactoryBean.setMapperLocations(mapperLocation); + + sqlSessionFactory = sessionFactoryBean.getObject(); + } + catch (Exception ex) + { + throw new CustomException(ex.getMessage()); + } + + return sqlSessionFactory; + } + + /** + * 트랜잭션 처리 메소드 + * @param dataSource + * @return + */ + public static DataSourceTransactionManager createTxManager(DataSource dataSource) + { + DataSourceTransactionManager txManager = new DataSourceTransactionManager(dataSource); + txManager.setGlobalRollbackOnParticipationFailure(false); + + return txManager; + } + + //end method +} diff --git a/batch/src/main/java/com/urpsys/basebatch/common/util/EgovIdGnrBuilder.java b/batch/src/main/java/com/urpsys/basebatch/common/util/EgovIdGnrBuilder.java new file mode 100644 index 00000000..586fde5c --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/common/util/EgovIdGnrBuilder.java @@ -0,0 +1,97 @@ +package com.urpsys.basebatch.common.util; + +import javax.sql.DataSource; + +import org.egovframe.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl; +import org.egovframe.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl; + +/** + * @ClassName : EgovIdGnrBuilder.java + * @Description : IdGen 정보 builder + * + * @author : urp 인프라본부 나혁제 + * @since : 2025.01.16 + * @version : 1.0 + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일            수정자               수정내용
+ *  -------------  ------------   ---------------------
+ *   2025.01.16      나혁제               최초 생성
+ * 
+ * + */ +public class EgovIdGnrBuilder +{ + + // TODO : 기본값 설정, 예외처리 필요 + + private DataSource dataSource; + private EgovIdGnrStrategyImpl egovIdGnrStrategyImpl; + + private String preFix; + private int cipers; + private char fillChar; + + private int blockSize; + private String table; + private String tableName; + + public EgovIdGnrBuilder setDataSource(DataSource dataSource) { + this.dataSource = dataSource; + return this; + } + + public EgovIdGnrBuilder setEgovIdGnrStrategyImpl(EgovIdGnrStrategyImpl egovIdGnrStrategyImpl) { + this.egovIdGnrStrategyImpl = egovIdGnrStrategyImpl; + return this; + } + + public EgovIdGnrBuilder setPreFix(String preFix) { + this.preFix = preFix; + return this; + } + public EgovIdGnrBuilder setCipers(int cipers) { + this.cipers = cipers; + return this; + } + public EgovIdGnrBuilder setFillChar(char fillChar) { + this.fillChar = fillChar; + return this; + } + public EgovIdGnrBuilder setBlockSize(int blockSize) { + this.blockSize = blockSize; + return this; + } + public EgovIdGnrBuilder setTable(String table) { + this.table = table; + return this; + } + public EgovIdGnrBuilder setTableName(String tableName) { + this.tableName = tableName; + return this; + } + + public EgovTableIdGnrServiceImpl build() { + + EgovTableIdGnrServiceImpl egovTableIdGnrServiceImpl = new EgovTableIdGnrServiceImpl(); + egovTableIdGnrServiceImpl.setDataSource(dataSource); + if(egovIdGnrStrategyImpl != null) { + egovIdGnrStrategyImpl = new EgovIdGnrStrategyImpl(); + egovIdGnrStrategyImpl.setPrefix(preFix); + egovIdGnrStrategyImpl.setCipers(cipers); + egovIdGnrStrategyImpl.setFillChar(fillChar); + + egovTableIdGnrServiceImpl.setStrategy(egovIdGnrStrategyImpl); + } + egovTableIdGnrServiceImpl.setBlockSize(blockSize); + egovTableIdGnrServiceImpl.setTable(table); + egovTableIdGnrServiceImpl.setTableName(tableName); + + return egovTableIdGnrServiceImpl; + } + + + +} diff --git a/batch/src/main/java/com/urpsys/basebatch/common/util/HtmlEmailUtil.java b/batch/src/main/java/com/urpsys/basebatch/common/util/HtmlEmailUtil.java new file mode 100644 index 00000000..ece2611a --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/common/util/HtmlEmailUtil.java @@ -0,0 +1,148 @@ +package com.urpsys.basebatch.common.util; + +import java.io.IOException; + +import javax.mail.MessagingException; +import javax.mail.internet.MimeMessage; +import javax.mail.internet.MimeUtility; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.io.ByteArrayResource; +import org.springframework.mail.MailException; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.MimeMessageHelper; +import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import org.springframework.util.StringUtils; + +import org.apache.commons.io.IOUtils; + +import lombok.extern.slf4j.Slf4j; + +/** + * Html 메일 처리에 필요한 유틸리티 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.02 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일       수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.03.20   나혁제         최초작성
+ *
+ *      
+ */ + + +@Slf4j +@Component("HtmlEmailUtil") +public class HtmlEmailUtil +{ + + @Autowired + private HtmlEmailUtil(JavaMailSender mailSender) + { + this.mailSender = mailSender; + } + + @Value("${custom.sendmail.sendEmail}") + private String strMailAddress; + + @Value("${custom.sendmail.senderName}") + private String strMailSendName; + + private static JavaMailSender mailSender; + + /** + 메일처리 기본함수 + @author 나혁제 + @since 2025.02.11 + @param : String to 받는사람 + String sj 제목 + String cn 메시지 + @return String 처리결과 + * @throws Exception + */ + public String send(String to, String sj, String cn) + { + if (StringUtils.isEmpty(to)) return "수신자 메일이 불문명합니다."; // 수신자가 없을 경우 종료 + + String strReturnErr = ""; + + try + { + MimeMessage message = mailSender.createMimeMessage(); + MimeMessageHelper messageHelper = new MimeMessageHelper(message, false, "UTF-8"); + + messageHelper.setSubject(sj); + messageHelper.setText(cn, true); + messageHelper.setFrom(strMailAddress, strMailSendName); + + String[] toArr = to.split(","); + + messageHelper.setTo(toArr); + + mailSender.send(message); // 메일발송 + + strReturnErr = ""; + } + catch(MailException es) + { + es.printStackTrace(); + strReturnErr = es.toString(); + } + catch(Exception e) + { + e.printStackTrace(); + strReturnErr = e.toString(); + } + + return strReturnErr; + } + + public void sendMultipleMessage( String to + , String cc + , String sj + , String cn + , MultipartFile file) throws MessagingException, IOException + { + MimeMessage message = mailSender.createMimeMessage(); + MimeMessageHelper helper = new MimeMessageHelper(message, true); + + //메일 제목 설정 + helper.setSubject(sj); + + //참조자 설정 + helper.setCc(cc); + + helper.setText(cn, false); + + helper.setFrom(strMailAddress); + + //첨부 파일 설정 + String fileName = StringUtils.cleanPath(file.getOriginalFilename()); + + helper.addAttachment( MimeUtility.encodeText(fileName, "UTF-8", "B") + , new ByteArrayResource(IOUtils.toByteArray(file.getInputStream()))); + + //수신자 개별 전송 +// for(String s : mailDto.getAddress()) { +// helper.setTo(s); +// emailSender.send(message); +// } + //수신자 한번에 전송 + helper.setTo(to); + mailSender.send(message); + log.info("mail multiple send complete."); + + + } + +} diff --git a/batch/src/main/java/com/urpsys/basebatch/common/util/RestApiCallUtil.java b/batch/src/main/java/com/urpsys/basebatch/common/util/RestApiCallUtil.java new file mode 100644 index 00000000..6cffd813 --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/common/util/RestApiCallUtil.java @@ -0,0 +1,375 @@ +package com.urpsys.basebatch.common.util; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.crypto.Mac; +import javax.crypto.spec.SecretKeySpec; + +import org.apache.commons.codec.binary.Base64; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; + +import com.urpsys.basebatch.common.exception.CustomException; +import com.urpsys.basebatch.domain.TokenInfo; +import com.urpsys.basebatch.common.util.ConvertUtils; + +import kong.unirest.HttpRequestWithBody; +import kong.unirest.HttpResponse; +import kong.unirest.JsonNode; +import kong.unirest.Unirest; +import kong.unirest.json.JSONObject; +import lombok.extern.slf4j.Slf4j; + +/** + * Rest Api 을 호출하는 필요한 유틸리티 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.03.20 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일       수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.03.20   나혁제         최초작성
+ *
+ *      
+ */ + + +@Slf4j +@Component("RestApiCallUtil") +public class RestApiCallUtil +{ + @Value("${custom.sendkakaoTalk.serviceId}") + private String strServiceId; + + @Value("${custom.sendkakaoTalk.accessKey}") + private String strAccessKey; + + @Value("${custom.sendkakaoTalk.secretKey}") + private String strSecretKey; + + @Value("${custom.sendkakaoTalk.friendId}") + private String strFriendId; + + @Value("${custom.api_search_server}") + private String strApiSearchSvr; // API 서버 + + + @Value("${custom.api_kic_mail_server}") + private String strKicMailSvr; // KIC 메일서버 + + @Value("${custom.api_kic_msg_server}") + private String strKicMsgSvr; // KIC 메신저서버 + + /** + 네이버 클라우드 카톡 서비스 호출 + @author 나혁제 + @since 2025.03.20 + @param : TokenInfo tokenInfo + , Map bodyMap + , String strRestUrl + @return Map + * @throws CustomException + */ + public Map RestApiCallNaverCloudKaKao(String strTemplateCd, String to, String msg) throws CustomException + { + log.info(">>>>>>>>>>>>>>> RestApiCallNaverCloudKaKao <<<<<<<<<<<<<<<"); + + long timestamp = System.currentTimeMillis(); + + String strTime = timestamp+""; + + String strContentType = "application/json; charset=utf-8" ; + + String strSignature = makeSignature(strTime, strServiceId, strAccessKey, strSecretKey); + + // Header Setting Start --------------------------------- + Map headers = new HashMap<>(); + headers.put("Content-Type" , strContentType ); + headers.put("x-ncp-apigw-timestamp" , strTime ); + headers.put("x-ncp-iam-access-key" , strAccessKey ); + headers.put("x-ncp-apigw-signature-v2" , strSignature ); + // Header Setting End --------------------------------- + + log.info("headers 입력값 확인 => [{}]", headers.toString()); + + Map bodyMap = new HashMap<>(); + + bodyMap.put("plusFriendId" , "@"+strFriendId ); + bodyMap.put("templateCode" , strTemplateCd ); + + List> messagesList = new ArrayList<>(); + + Map messages = new HashMap<>(); + + messages.put("countryCode", "82"); + messages.put("to" , to); + messages.put("content" , msg); + + messagesList.add(messages); + + bodyMap.put("messages", messagesList); + + log.info("body 입력값 확인 json => [{}]", ConvertUtils.getJsonFromMap(bodyMap).toString() ); + + String strFullUrl = "https://sens.apigw.ntruss.com/alimtalk/v2/services/"+strServiceId+"/messages"; + + log.info("strFullUrl => [{}]", strFullUrl); + + HttpResponse jsonResponse = Unirest.post(strFullUrl) + .headers(headers) + .body (bodyMap) + .asJson(); + + JSONObject returnObj = jsonResponse.getBody().getObject(); + // JSONObject returnObjData = new JSONObject(); + + // String strFullReturnData = returnObj.toString(); + + // Map 변환처리 + Map returnMap = null; + + // json to Map 변환처리 + returnMap = ConvertUtils.getMapFromJSONObject(returnObj); + + log.info("전체 리턴값 => [{}]", returnMap.toString()); + + log.info("<<<<<<<<<<<<<<< RestApiCallNaverCloudKaKao >>>>>>>>>>>>>>>"); + + return returnMap; + } + + public String makeSignature(String timestamp, String strServiceId, String strAccessKey, String strSecretKey) + { + String encodeBase64String = ""; + + try + { + String space = " " ; // one space + String newLine = "\n" ; // new line + String method = "POST"; // method + String url = "/alimtalk/v2/services/"+strServiceId+"/messages" ; // url (include query string) + String accessKey = strAccessKey ; // access key id (from portal or Sub Account) + String secretKey = strSecretKey ; + + String message = new StringBuilder() + .append(method) + .append(space) + .append(url) + .append(newLine) + .append(timestamp) + .append(newLine) + .append(accessKey) + .toString(); + + SecretKeySpec signingKey = new SecretKeySpec(secretKey.getBytes("UTF-8"), "HmacSHA256"); + Mac mac = Mac.getInstance("HmacSHA256"); + mac.init(signingKey); + + byte[] rawHmac = mac.doFinal(message.getBytes("UTF-8")); + encodeBase64String = Base64.encodeBase64String(rawHmac); + } + catch(Exception e) + { + e.printStackTrace(); + } + + return encodeBase64String; + } + + /** + RestApi 호출 함수 + @author 나혁제 + @since 2025.01.06 + @param : TokenInfo tokenInfo + , Map bodyMap + , String strRestUrl + @return Map + * @throws CustomException + */ + public Map RestApiCallNoAuth ( Map bodyMap + , String strRestUrl ) throws CustomException + { + log.info(">>>>>>>>>>>>>>> RestApiCallNoAuth <<<<<<<<<<<<<<<"); + + // Header Setting Start --------------------------------- + Map headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + // Header Setting End --------------------------------- + + String strDomain = strApiSearchSvr; + String strFullUrl = strDomain + strRestUrl; + + log.info("입력값 확인 => [{}]", bodyMap.toString()); + log.info("입력값 확인 JSON => [{}]", ConvertUtils.getJsonFromMap(bodyMap)); + log.info("입력 strFullUrl => [{}]", strFullUrl); + + HttpResponse jsonResponse = Unirest.post(strFullUrl) + .headers(headers) + .body(bodyMap) + .asJson(); + + JSONObject returnObj = jsonResponse.getBody().getObject(); + + // JSONObject returnObjData = new JSONObject(); + + log.info("리턴값 확인 => [{}]", returnObj.toString()); + + /* + int iReturnStatus = (int)returnObj.get("status"); + + if(iReturnStatus != 200) + { + String strError = (String)returnObj.get("error"); + String strErrTrace = (String)returnObj.get("trace"); + + throw new CustomException("9000", strErrTrace); + } + else + { + returnObjData = returnObj.getJSONObject("data"); + log.info("리턴값 확인 => [{}]", returnObjData.toString()); + } + */ + + Map returnMap = ConvertUtils.getMapFromJSONObject(returnObj); // Map 변환처리 + + log.info("<<<<<<<<<<<<<<< RestApiCallNoAuth >>>>>>>>>>>>>>>"); + + return returnMap; + } + + /** + RestApi 호출 함수 + @author 나혁제 + @since 2025.06.11 + @param : Map bodyMap + , String strRestUrl + @return Map + * @throws CustomException + */ + public Map RestApiCallNoAuthKicMailTextHtml ( Map bodyMap + , String strRestUrl ) throws CustomException + { + log.info(">>>>>>>>>>>>>>> RestApiCallNoAuthKicMailTextHtml <<<<<<<<<<<<<<<"); + + String strDomain = strKicMailSvr; + String strFullUrl = strDomain + strRestUrl; + + log.info("입력값 확인 JSON => [{}]", ConvertUtils.getJsonFromMap(bodyMap)); + log.info("입력 strFullUrl => [{}]", strFullUrl); + + /* + HttpRequestWithBody request = Unirest.post("https://example.com/api"); + + for (Map.Entry entry : bodyMap.entrySet()) + { + // request = request.field(entry.getKey(), entry.getValue()); + + request = request.field(entry.getKey(), entry.getValue()); + } + */ + + /* + HttpResponse jsonResponse = Unirest.post(strFullUrl) + .field("email" , (String)bodyMap.get("email" )) + .field("to" , (String)bodyMap.get("to" )) + .field("subject" , (String)bodyMap.get("subject" )) + .field("content" , (String)bodyMap.get("content" )) + .field("contentType" , (String)bodyMap.get("contentType")) + .asJson(); + */ + + HttpResponse jsonResponse = Unirest.post(strFullUrl) + .fields(bodyMap) + .asJson(); + + JSONObject returnObj = jsonResponse.getBody().getObject(); + + log.info("리턴값 확인 => [{}]", returnObj.toString()); + + Map returnMap = ConvertUtils.getMapFromJSONObject(returnObj); // Map 변환처리 + + log.info("<<<<<<<<<<<<<<< RestApiCallNoAuthKicMailTextHtml >>>>>>>>>>>>>>>"); + + return returnMap; + } + + /** + RestApi 호출 함수 + @author 나혁제 + @since 2025.01.06 + @param : TokenInfo tokenInfo + , Map bodyMap + , String strRestUrl + @return Map + * @throws CustomException + */ + public Map RestApiCallNoAuthKicMsg ( Map bodyMap + , String strRestUrl ) throws CustomException + { + log.info(">>>>>>>>>>>>>>> RestApiCallNoAuthKicMsg <<<<<<<<<<<<<<<"); + + // Header Setting Start --------------------------------- + Map headers = new HashMap<>(); + headers.put("Content-Type", "application/json"); + // Header Setting End --------------------------------- + + String strDomain = strKicMsgSvr; + String strFullUrl = strDomain + strRestUrl; + + log.info("입력값 확인 => [{}]", bodyMap.toString()); + log.info("입력값 확인 JSON => [{}]", ConvertUtils.getJsonFromMap(bodyMap)); + log.info("입력 strFullUrl => [{}]", strFullUrl); + + HttpResponse jsonResponse = Unirest.post(strFullUrl) + .headers(headers) + .body(bodyMap) + .asJson(); + + JSONObject returnObj = jsonResponse.getBody().getObject(); + + // JSONObject returnObjData = new JSONObject(); + + log.info("리턴값 확인 => [{}]", returnObj.toString()); + + /* + int iReturnStatus = (int)returnObj.get("status"); + + if(iReturnStatus != 200) + { + String strError = (String)returnObj.get("error"); + String strErrTrace = (String)returnObj.get("trace"); + + throw new CustomException("9000", strErrTrace); + } + else + { + returnObjData = returnObj.getJSONObject("data"); + log.info("리턴값 확인 => [{}]", returnObjData.toString()); + } + */ + + Map returnMap = ConvertUtils.getMapFromJSONObject(returnObj); // Map 변환처리 + + log.info("<<<<<<<<<<<<<<< RestApiCallNoAuthKicMsg >>>>>>>>>>>>>>>"); + + return returnMap; + } + + + + + + +} diff --git a/batch/src/main/java/com/urpsys/basebatch/config/EgovConfigAppIdGen.java b/batch/src/main/java/com/urpsys/basebatch/config/EgovConfigAppIdGen.java new file mode 100644 index 00000000..f0dfcadc --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/EgovConfigAppIdGen.java @@ -0,0 +1,1946 @@ +package com.urpsys.basebatch.config; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import com.urpsys.basebatch.common.util.EgovIdGnrBuilder; + +import org.egovframe.rte.fdl.idgnr.impl.EgovTableIdGnrServiceImpl; +import org.egovframe.rte.fdl.idgnr.impl.strategy.EgovIdGnrStrategyImpl; + +/** + * @ClassName : EgovConfigAppIdGen.java + * @Description : IdGeneration 설정 + * + * @author : urp 인프라본부 나혁제 + * @since : 2025.01.16 + * @version : 1.0 + * + *
+ * << 개정이력(Modification Information) >>
+ *
+ *   수정일            수정자          수정내용
+ *  -------------  ------------   ---------------------
+ *   2025.01.16    나혁제              최초 생성
+ * 
+ * + */ +@Configuration +public class EgovConfigAppIdGen +{ + @Autowired + @Qualifier("primaryDataSource") + DataSource dataSource; + + @Autowired + @Qualifier("primaryDataSource") + DataSource egovDataSource; + + // 구현 방법 1: + + /** + * 첨부파일 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovFileIdGnrService() { + EgovTableIdGnrServiceImpl egovTableIdGnrServiceImpl = new EgovTableIdGnrServiceImpl(); + egovTableIdGnrServiceImpl.setDataSource(dataSource); + egovTableIdGnrServiceImpl.setStrategy(fileStrategy()); + egovTableIdGnrServiceImpl.setBlockSize(10); + egovTableIdGnrServiceImpl.setTable("IDS"); + egovTableIdGnrServiceImpl.setTableName("FILE_ID"); + return egovTableIdGnrServiceImpl; + } + + /** + * 첨부파일 ID Generation Strategy Config + * @return + */ + private EgovIdGnrStrategyImpl fileStrategy() { + EgovIdGnrStrategyImpl egovIdGnrStrategyImpl = new EgovIdGnrStrategyImpl(); + egovIdGnrStrategyImpl.setPrefix("FILE_"); + egovIdGnrStrategyImpl.setCipers(15); + egovIdGnrStrategyImpl.setFillChar('0'); + return egovIdGnrStrategyImpl; + } + + + // 구현 방법 2: EgovIdGnrStrategyImpl 사용시 사용 가능 + + /** + * 게시판마스터 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovBBSMstrIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(dataSource).setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("IDS") + .setTableName("BBS_ID") + .setPreFix("BBSMSTR_") + .setCipers(12) + .setFillChar('0') + .build(); + } + + // + /** 게시판템플릿 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovTmplatIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(dataSource).setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("IDS") + .setTableName("TMPLAT_ID") + .setPreFix("TMPLAT_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 부서일정 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl deptSchdulManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(dataSource).setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("IDS") + .setTableName("SCHDUL_ID") + .setPreFix("SCHDUL_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 위키북마크 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovWikiBookmarkIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("WIKI_ID") + .setPreFix("WIKI") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 지식정보제공/지식정보요청 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovRequestOfferIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("KNO_ID2") + .setPreFix("KNO_ID2") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** RSS관리 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovRssTagManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("RSS_ID") + .setPreFix("RSS_ID") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** 쪽지관리 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovNoteManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("NOTE_ID") + .setPreFix("NOTE_ID") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 보낸쪽지함관리 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovNoteTrnsmitIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("NOTE_TRNSMIT_ID") + .setPreFix("NOTE_TR") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 받은쪽지함관리 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovNoteRecptnIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("NOTE_RECPTN_ID") + .setPreFix("NOTE_RE") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 시스템연계 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovSystemCntcIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("CNTC_ID") + .setPreFix("CNTC") + .setCipers(4) + .setFillChar('0') + .build(); + } + + /** 연계기관 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovCntcInsttIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("INSTT_ID") + .setPreFix("INS") + .setCipers(5) + .setFillChar('0') + .build(); + } + + /** 연계시스템 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovCntcSystemIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("SYS_ID") + .setPreFix("SYS") + .setCipers(5) + .setFillChar('0') + .build(); + } + + /** 연계서비스 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovCntcServiceIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("SVC_ID") + .setPreFix("SVC") + .setCipers(5) + .setFillChar('0') + .build(); + } + + /** 연계메시지 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovCntcMessageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("CNTC_MESSAGE_ID") + .setPreFix("MSG") + .setCipers(17) + .setFillChar('0') + .build(); + } + + /** 연계메시지항목 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovCntcMessageItemIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("ITEM_ID") + .setPreFix("ITM") + .setCipers(17) + .setFillChar('0') + .build(); + } + + /** 기관코드 수신 작업 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovInsttCodeRecptnIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("INSTT_CODE_OPERT") + .build(); + } + + /** 행정코드 수신 작업 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovAdministCodeRecptnIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("ADMIN_CODE_OPERT") + .build(); + } + + /** 팝업창관리 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovPopupManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("POPUP_ID") + .setPreFix("POPUP_") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** 최근검색어관리 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovSrchwrdManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("SRCHWRD_MANAGEID") + .setPreFix("SRCMGR_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 최근검색어관리 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovSrchwrdIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("SRCHWRD_ID") + .setPreFix("SRC_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 행정전문용어사전 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovAdministrationWordIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("ADMINIST_WORD_ID") + .setPreFix("ADMINIST_") + .setCipers(11) + .setFillChar('0') + .build(); + } + + /** 개정정보보호정책확인 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovIndvdlInfoPolicyIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("INDVDL_INFO_ID") + .setPreFix("INDVDL_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 통합링크 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovUnityLinkIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("UNITY_LINK_ID") + .setPreFix("ULINK_") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** 온라인메뉴얼 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovOnlineMenualIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("ONLINE_MUL_ID") + .setPreFix("OMUL_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** 온라인POLL관리 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovOnlinePollManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("POLL_MGR_ID") + .setPreFix("POLLMGR_") + .setCipers(12) + .setFillChar('0') + .build(); + } + + /** 온라인POLL항목 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovOnlinePollItemIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("POLL_IEM_ID") + .setPreFix("POLLIEM_") + .setCipers(12) + .setFillChar('0') + .build(); + } + + /** 온라인POLL결과 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovOnlinePollResultIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("POLL_RUT_ID") + .setPreFix("POLLRUT_") + .setCipers(12) + .setFillChar('0') + .build(); + } + + /** 삭제예정 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("ids") + .setTableName("COMTNWORDDICARYINFO") + .setPreFix("SAMPLE-") + .setCipers(5) + .setFillChar('0') + .build(); + } + + /** 게시판용 NTT_ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovNttIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("NTT_ID") + //.setPreFix("SAMPLE-") //TODO : 입력하지 않았을때 처리 필요 + .setCipers(20) + .setFillChar('0') + .build(); + } + + /** Clb ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovClbIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("CLB_ID") + .setPreFix("CLB_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 커뮤니티 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovCmmntyIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("CMMNTY_ID") + .setPreFix("CMMNTY_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 커뮤니티 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovUsrCnfrmIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("USRCNFRM_ID") + .setPreFix("USRCNFRM_") + .setCipers(11) + .setFillChar('0') + .build(); + } + + /** 메일 메세지 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovMailMsgIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("MAILMSG_ID") + .setPreFix("MAILMSG_") + .setCipers(12) + .setFillChar('0') + .build(); + } + + /** RestDe NTT_ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovRestDeIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("RESTDE_ID") + .build(); + } + + /** WordDicary ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovWordDicaryIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("WORD_ID") + .setPreFix("WORDDICARY_") + .setCipers(9) + .setFillChar('0') + .build(); + } + + /** 회의관리 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovMgtIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("MTG_ID") + .setPreFix("MTG_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 행사/이벤트/켐페인 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovEventInfoIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("EVENTINFO_ID") + .setPreFix("EVENT_") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** 외부인사정보 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovExtrlhrInfoIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("EXTRLHRINFO_ID") + .setPreFix("EXTRLHR_") + .setCipers(12) + .setFillChar('0') + .build(); + } + + /** 설문템플릿 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovQustnrTmplatManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("QUSTNRTMPLA_ID") + .setPreFix("QTMPLA_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 설문관리 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovQustnrManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("QUSTNRTMPLA_ID") + .setPreFix("QMANAGE_") + .setCipers(12) + .setFillChar('0') + .build(); + } + + /** 설문문항 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovQustnrQestnManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("QUSTNRQESTN_ID") + .setPreFix("QQESTN_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 설문항목 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovQustnrItemManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("QESTNR_QESITM_ID") + .setPreFix("QESITM_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 설문응답자정보 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl qustnrRespondManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("QESTNR_RPD_ID") + .setPreFix("QRPD_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** 설문조사 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl qustnrRespondInfoIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("QESRSPNS_ID") + .setPreFix("QRSPNS_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 일정관리 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl diaryManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("DIARY_ID") + .setPreFix("DIARY_") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** SiteManage ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovSiteManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("SITE_ID") + .setPreFix("SITE_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** RecomendSiteManage ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovRecomendSiteManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("RECOMEND_SITE_ID") + .setPreFix("RECOMEND_") + .setCipers(11) + .setFillChar('0') + .build(); + } + + /** HPCMManage ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovHpcmManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("HPCM_ID") + .setPreFix("HPCM_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** NewsManage ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovFaqManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("FAQ_ID") + .setPreFix("FAQ_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** FaqManage ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovNewsManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("NEWS_ID") + .setPreFix("NEWS_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** 명함 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovNcrdIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("NCRD_ID") + .setPreFix("NCRD_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** 주소록 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovAdbkIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("ADBK_ID") + .setPreFix("ADBK_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** AdbkUser ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovAdbkUserIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("ADBKUSER_ID") + .setPreFix("ADBKUSER_") + .setCipers(11) + .setFillChar('0') + .build(); + } + + /** 그룹 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovGroupIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("GROUP_ID") + .setPreFix("GROUP_") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** 롤 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovRoleIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("ROLE_ID") + .setPreFix("") + .setCipers(6) + .setFillChar('0') + .build(); + } + + /** StplatManage ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovStplatManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("USE_STPLAT_ID") + .setPreFix("STPLAT_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** CpyrhtPrtcPolicy ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovCpyrhtPrtcPolicyIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("CPYRHT_ID") + .setPreFix("CPYRHT_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** Qna ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovQnaManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("QA_ID") + .setPreFix("QA_") + .setCipers(17) + .setFillChar('0') + .build(); + } + + /** Cnslt ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovCnsltManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("CNSLT_ID") + .setPreFix("CNSLT_") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** Login ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovLoginLogIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("LOGINLOG_ID") + .setPreFix("LOGIN_") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** System Log ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovSysLogIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("SYSLOG_ID") + .setPreFix("SYSLOG_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** Web Log. ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovWebLogIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("WEBLOG_ID") + .setPreFix("WEBLOG_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** Trsmrcv. ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovTrsmrcvLogIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("TRSMRCVLOG_ID") + .setPreFix("TRSMRCV_") + .setCipers(12) + .setFillChar('0') + .build(); + } + + /** 배너. ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovBannerIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("BANNER_ID") + .setPreFix("BANNER_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 로그인화면이미지. ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovLoginScrinImageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("LSI_ID") + .setPreFix("LSI_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 메인화면이미지. ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovMainImageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("MSI_ID") + .setPreFix("MSI_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 인터넷서비스안내 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovIntnetSvcGuidanceIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("ISG_ID") + .setPreFix("ISG_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 마이페이지 컨텐츠 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovIndvdlPgeIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("CNTNTS_ID") + .setPreFix("C") + .setCipers(19) + .setFillChar('0') + .build(); + } + + /** 보고서통계 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovReprtStatsIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("RS_ID") + .setPreFix("RS_") + .setCipers(3) + .setFillChar('0') + .build(); + } + + /** 자료이용현황통계 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovDtaUseStatsIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("DUS_ID") + .setPreFix("DUS_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 자료이용현황통계 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovSmsIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("SMS_ID") + .setPreFix("SMS_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** Scrap ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovScrapIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("SCRAP_ID") + .setPreFix("SCRIP_") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** 부서 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovDeptManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("ORGNZT_ID") + .setPreFix("ORGNZT_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** 네트워크 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovNtwrkIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("NTWRK_ID") + .setPreFix("NID_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 서버장비 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovServerEqpmnIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("SEVEQ_ID") + .setPreFix("SVE_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 서버 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovServerIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("SERVER_ID") + .setPreFix("SRV_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 장애 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovTroblIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("TROBL_ID") + .setPreFix("TBM_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 동기화대상 서버 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovSynchrnServerIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("SYNCHRNSERVER_ID") + .setPreFix("SSY_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 회의실관리 서버 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovMtgPlaceManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("MTG_PLACE_ID") + .setPreFix("MTGP_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** 회의실예약 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovMtgPlaceResveIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("RESVE_ID") + .setPreFix("RESVE_") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** 행사 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovEventManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("EVENT_ID") + .setPreFix("EVENT_") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** 행사접수 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovEventAtdrnIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("APPLCNT_ID") + .setPreFix("APPLCNT_") + .setCipers(12) + .setFillChar('0') + .build(); + } + + /** 포상 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovRwardManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("RWARD_ID") + .setPreFix("RWARD_") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** 경조사 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovCtsnnManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("CTSNN_ID") + .setPreFix("RWARD_") + .setCipers(14) + .setFillChar('0') + .build(); + } + + /** 기념일 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovAnnvrsryManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("ANN_ID") + .setPreFix("ANN_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 간부일정 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovLeaderSchdulIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("LEADER_SCHDUL_ID") + .setPreFix("LDSCHDUL_") + .setCipers(11) + .setFillChar('0') + .build(); + } + + /** 부서업무함 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovDeptJobBxIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("DEPT_JOB_BX_ID") + .setPreFix("DX_") + .setCipers(3) + .setFillChar('0') + .build(); + } + + /** 부서업무 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovDeptJobIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("DEPT_JOB_ID") + .setPreFix("DEPTJOB_") + .setCipers(12) + .setFillChar('0') + .build(); + } + + /** 주간/월간 보고 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovWikMnthngReprtIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("WIKMNTHNG_REPRT") + .setPreFix("WR") + .setCipers(4) + .setFillChar('0') + .build(); + } + + /** 메모 할일 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovMemoTodoIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("MEMO_TODO_ID") + .setPreFix("MEMOTODO_") + .setCipers(11) + .setFillChar('0') + .build(); + } + + /** 메모 보고 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovMemoReprtIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("MEMO_REPRT") + .setPreFix("MR") + .setCipers(4) + .setFillChar('0') + .build(); + } + + /** 약식 결재 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovInfrmlSanctnIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("INFRML_SANCTN") + .setPreFix("SANCTN_") + .setCipers(13) + .setFillChar('0') + .build(); + } + + /** DB서비스모니터링 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovDbMntrngLogIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("DB_MNTRNG_LOG_ID") + .setPreFix("") + .setCipers(20) + .setFillChar('0') + .build(); + } + + /** DB송수신모니터링 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovTrsmrcvMntrngLogIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("TR_MNTRNG_LOG_ID") + .setPreFix("") + .setCipers(20) + .setFillChar('0') + .build(); + } + + /** 배치작업 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovBatchOpertIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("BATCH_OPERT_ID") + .setPreFix("BAT") + .setCipers(17) + .setFillChar('0') + .build(); + } + + /** 배치스케줄 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovBatchSchdulIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("BATCH_SCHDUL_ID") + .setPreFix("BSC") + .setCipers(17) + .setFillChar('0') + .build(); + } + + /** 배치결과 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovBatchResultIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("BATCH_RESULT_ID") + .setPreFix("BRT") + .setCipers(17) + .setFillChar('0') + .build(); + } + + /** 파일시스템모니터링 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovFileSysMntrngIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("FILESYS_MNTRNG") + .setPreFix("FILESYS_") + .setCipers(12) + .setFillChar('0') + .build(); + } + + /** 네트워크서비스모니터링 로그 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovNtwrkSvcMntrngLogIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("NTWRKSVC_LOGID") + .setPreFix("") + .setCipers(20) + .setFillChar('0') + .build(); + } + + /** 파일시스템모니터링 로그 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovFileSysMntrngLogIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("FILESYS_LOGID") + .setPreFix("") + .setCipers(20) + .setFillChar('0') + .build(); + } + + /** 프록시서비스 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovProxySvcIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("PROXYSVC_ID") + .setPreFix("PXY_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** 프록시Log ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovProxyLogIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("PROXYLOG_ID") + .setPreFix("PLG_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** knoManage ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovDamManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("DAM_ID") + .setPreFix("DMID_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** 백업작업 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovBackupOpertIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("BACKUP_OPERT_ID") + .setPreFix("BAK") + .setCipers(17) + .setFillChar('0') + .build(); + } + + /** 백업결과 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovBackupResultIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("BACKUP_RESULT_ID") + .setPreFix("BRT") + .setCipers(17) + .setFillChar('0') + .build(); + } + + /** 서버자원 모니터링 ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovServerResrceMntrngLogIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("SVCRESMONTLOG_ID") + .setPreFix("LOG_") + .setCipers(16) + .setFillChar('0') + .build(); + } + + /** HttpMon ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovHttpManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("HTTP_ID") + .setPreFix("HTTP_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** HttpMonLog ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovHttpLogManageIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("HTTL_ID") + .setPreFix("HTTL_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** HttpMonLog ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovProcessMonIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("PROC_ID") + .setPreFix("PROC_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** ProcessMonLog ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovProcessMonLogIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("PROL_ID") + .setPreFix("PROL_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** ProcessMonLog ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovBlogIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("BLOG_ID") + .setPreFix("BLOG_") + .setCipers(15) + .setFillChar('0') + .build(); + } + + /** ProcessMonLog ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovAnswerNoGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("ANSWER_NO") + .setPreFix("") + .setCipers(20) + .setFillChar('0') + .build(); + } + + + + + /** 개인화메뉴 id + * 권오제 추가 + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl prsnlPortletIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("PORTLET_ID") + .setPreFix("PORTLET_") + .setCipers(10) + .setFillChar('0') + .build(); + } + + /** 포틀릿 이미지 id + * 2023.01.31 권오제 추가 + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl portletImgIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("PORTLET_IMG_ID") + .setPreFix("PORTLET_IMG_") + .setCipers(8) + .setFillChar('0') + .build(); + } + + /** 서비스데스크 인스던트ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovIncientIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("INCI_ID") + .setPreFix("INC_") + .setCipers(6) + .setFillChar('0') + .build(); + } + + /** 보고서ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovRptIdGnrService() { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("RPT_ID") + .setPreFix("RPT_") + .setCipers(6) + .setFillChar('0') + .build(); + } + + /** 메일카톡 고유ID Generation Config + * @return + */ + @Bean(destroyMethod = "destroy") + public EgovTableIdGnrServiceImpl egovNtcnEsntlIdGnrService() + { + return new EgovIdGnrBuilder().setDataSource(egovDataSource) + .setEgovIdGnrStrategyImpl(new EgovIdGnrStrategyImpl()) + .setBlockSize(10) + .setTable("COMTECOPSEQ") + .setTableName("NTCN_ESNTL") + .setPreFix("NTCN_") + .setCipers(6) + .setFillChar('0') + .build(); + } + + + + + + +} diff --git a/batch/src/main/java/com/urpsys/basebatch/config/EgovMessageSource.java b/batch/src/main/java/com/urpsys/basebatch/config/EgovMessageSource.java new file mode 100644 index 00000000..58cbc5af --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/EgovMessageSource.java @@ -0,0 +1,67 @@ +package com.urpsys.basebatch.config; + +import java.util.Locale; + +import org.springframework.context.MessageSource; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.support.ReloadableResourceBundleMessageSource; + +/** + * 메시지 리소스 사용을 위한 MessageSource 인터페이스 및 ReloadableResourceBundleMessageSource 클래스의 구현체 + * + * @author 나혁제 + * @since 2025.01.06 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일       수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.01.06   나혁제         최초작성
+ *
+ * 
+*/ + +// @Configuration +public class EgovMessageSource extends ReloadableResourceBundleMessageSource implements MessageSource +{ + + private ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource; + + /** + * getReloadableResourceBundleMessageSource() + * @param reloadableResourceBundleMessageSource - resource MessageSource + * @return ReloadableResourceBundleMessageSource + */ + public void setReloadableResourceBundleMessageSource(ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource) + { + this.reloadableResourceBundleMessageSource = reloadableResourceBundleMessageSource; + } + + /** + * getReloadableResourceBundleMessageSource() + * @return ReloadableResourceBundleMessageSource + */ + public ReloadableResourceBundleMessageSource getReloadableResourceBundleMessageSource() + { + return reloadableResourceBundleMessageSource; + } + + /** + * 정의된 메세지 조회 + * @param code - 메세지 코드 + * @return String + */ + public String getMessage(String code) + { + // return getReloadableResourceBundleMessageSource().getMessage(code, null, Locale.getDefault()); + // 2025.01.24 나혁제 현재는 korea 버전만 수용 + return getReloadableResourceBundleMessageSource().getMessage(code, null, Locale.KOREA); + } + + + +} diff --git a/batch/src/main/java/com/urpsys/basebatch/config/EncryptConfig.java b/batch/src/main/java/com/urpsys/basebatch/config/EncryptConfig.java new file mode 100644 index 00000000..5004dcde --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/EncryptConfig.java @@ -0,0 +1,39 @@ +package com.urpsys.basebatch.config; + +import java.io.IOException; +import java.security.InvalidKeyException; + +import com.urpsys.basebatch.common.crypto.Aes256Cipher; + +import org.apache.commons.codec.DecoderException; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * 암호화 유틸리티를 등록하는 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.03    나혁제         최초작성
+ *
+ * 
+ */ + +@Configuration +public class EncryptConfig +{ + @Bean(name="aes256Cipher") + public Aes256Cipher aes256Cipher() throws InvalidKeyException, IOException, DecoderException + { + return new Aes256Cipher(); + } +} diff --git a/batch/src/main/java/com/urpsys/basebatch/config/KicInsaDbConfig.java b/batch/src/main/java/com/urpsys/basebatch/config/KicInsaDbConfig.java new file mode 100644 index 00000000..455047a0 --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/KicInsaDbConfig.java @@ -0,0 +1,126 @@ +package com.urpsys.basebatch.config; + +import java.io.IOException; +import java.sql.Connection; + +import javax.sql.DataSource; +import org.apache.ibatis.session.ExecutorType; +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionTemplate; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.env.Environment; +import org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import com.urpsys.basebatch.common.crypto.Aes256Cipher; +import com.urpsys.basebatch.common.exception.CustomException; +import com.urpsys.basebatch.common.util.DataSourceUtil; + +/** + * kic insa db config 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.06.04 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.06.04    나혁제         최초작성
+ *
+ * 
+ */ + +@Configuration +@EnableTransactionManagement +@MapperScan( value={"com.urpsys.kicinsa"} , sqlSessionFactoryRef="kicinsaSqlSessionFactory") +public class KicInsaDbConfig +{ + @Autowired + private Environment env; + + @Autowired + private Aes256Cipher aes256Cipher; + + @Value("${custom.client}") + private String strClient; // 고객확인 + + /** + * 데이터소스 등록하는 메소드 + * @return + */ + @Bean(name="kicinsaDataSource") + public DataSource kicinsaDataSource() + { + DataSource dataSource = null; + + if(strClient.equals("kic")) + { + dataSource = new LazyConnectionDataSourceProxy(DataSourceUtil.createDataSource("kicinsadb", env, aes256Cipher)); + } + else + { + dataSource = new LazyConnectionDataSourceProxy(DataSourceUtil.createDataSource("primarydb", env, aes256Cipher)); + } + + return dataSource; + // return new LazyConnectionDataSourceProxy(DataSourceUtil.createDataSource("kicinsadb", env, aes256Cipher)); + } + + /** + * sqlsessionfactory 등록하는 메소드 + * + * @param dataSource + * @param context + * @return + * @throws SchedulerException + * @throws IOException + */ + @Bean(name="kicinsaSqlSessionFactory") + public SqlSessionFactory kicinsaSqlSessionFactory(@Qualifier("kicinsaDataSource") DataSource dataSource, ApplicationContext context) + throws CustomException, IOException + { + SqlSessionFactory sqlSessionFactory = DataSourceUtil.createSqlSessionFactory( dataSource + , context.getResource ("classpath:mapper/kicinsadb/config/MybatisConfig.xml") + , context.getResources("classpath:mapper/kicinsadb/sqlmap/**/*Mapper*.xml") + ); + + sqlSessionFactory.getConfiguration().setDefaultExecutorType(ExecutorType.SIMPLE); + + return sqlSessionFactory; + } + + /** + * sqlsessiontemplate 등록하는 메소드 + * @param primarySqlSessionFactory + * @return + */ + @Bean("kicinsaSqlSessionTemplate") + public SqlSessionTemplate mainSqlSessionTemplate(@Qualifier("kicinsaSqlSessionFactory") SqlSessionFactory kicinsaSqlSessionFactory) + { + return new SqlSessionTemplate(kicinsaSqlSessionFactory); + } + + /** + * 트랜잭션 매니저 등록하는 메소드 + * @param dataSource + * @return + */ + @Bean(name="kicinsaTxManager") + public PlatformTransactionManager kicinsaTxManager(@Qualifier("kicinsaDataSource") DataSource dataSource) + { + return DataSourceUtil.createTxManager(dataSource); + } +} + diff --git a/batch/src/main/java/com/urpsys/basebatch/config/MailConfig.java b/batch/src/main/java/com/urpsys/basebatch/config/MailConfig.java new file mode 100644 index 00000000..a80eb6f4 --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/MailConfig.java @@ -0,0 +1,85 @@ +package com.urpsys.basebatch.config; + +import java.util.Properties; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.JavaMailSenderImpl; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import com.urpsys.basebatch.common.crypto.Aes256Cipher; + +import lombok.extern.slf4j.Slf4j; + +/** + * html 메일 설정 클리스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.03.20    나혁제         최초작성
+ *
+ * 
+ */ + +@Slf4j +@Component +public class MailConfig +{ + @Value("${custom.sendmail.id}") + private String strMailId; + + @Value("${custom.sendmail.password}") + private String strMailPass; + + @Value("${custom.sendmail.port}") + private int strMailPort; + + @Value("${custom.sendmail.host}") + private String strMailHost; + + @Value("${custom.sendmail.socketFactory-class}") + private String strSocketFactoryClass; + + @Autowired + private Aes256Cipher aes256Cipher; + + Properties pt = new Properties(); + + @Bean + public JavaMailSender javaMailService() + { + JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl(); + + javaMailSender.setHost (this.strMailHost ); + javaMailSender.setUsername (aes256Cipher.decrypt(this.strMailId) ); + javaMailSender.setPassword (aes256Cipher.decrypt(this.strMailPass) ); + javaMailSender.setPort (this.strMailPort ); + + pt.put("mail.smtp.socketFactory.port" , this.strMailPort); + pt.put("mail.smtp.auth" , true); + pt.put("mail.smtp.starttls.enable" , true); + pt.put("mail.smtp.starttls.required" , true); + pt.put("mail.smtp.socketFactory.fallback", false); + + // pt.put("mail.smtp.socketFactory.class" , this.strSocketFactoryClass); // SSL 접속처리 + + javaMailSender.setJavaMailProperties(pt); + javaMailSender.setDefaultEncoding("UTF-8"); + + return javaMailSender; + } + +} diff --git a/batch/src/main/java/com/urpsys/basebatch/config/MessageConfig.java b/batch/src/main/java/com/urpsys/basebatch/config/MessageConfig.java new file mode 100644 index 00000000..0beb94d2 --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/MessageConfig.java @@ -0,0 +1,112 @@ +package com.urpsys.basebatch.config; + +import java.util.Locale; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.support.ReloadableResourceBundleMessageSource; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; +import org.springframework.web.servlet.i18n.SessionLocaleResolver; + +import com.urpsys.basebatch.config.EgovMessageSource; + +/** + * 메시지 리소스 사용을 위한 MessageSource 인터페이스 및 ReloadableResourceBundleMessageSource 클래스의 구현체 + * + * @author urp 인프라본부 나혁제 + * @since 2025.01.06 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일       수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.01.06   나혁제         최초작성
+ *
+ * 
+ */ + +@Configuration +public class MessageConfig implements WebMvcConfigurer +{ + + /** + * 메세지 소스를 생성한다. + */ + @Bean + public ReloadableResourceBundleMessageSource messageSource() + { + + ReloadableResourceBundleMessageSource source = new ReloadableResourceBundleMessageSource(); + + source.addBasenames("classpath:/messages/message-common"); + source.addBasenames("classpath:/messages/urp/message"); + + // 기본 인코딩을 지정한다. + source.setDefaultEncoding("UTF-8"); + + // 프로퍼티 파일의 변경을 감지할 시간 간격을 지정한다. + source.setCacheSeconds(60); + + // 없는 메세지일 경우 예외를 발생시키는 대신 코드를 기본 메세지로 한다. + source.setUseCodeAsDefaultMessage(true); + source.setFallbackToSystemLocale(false); + + return source; + } + + /** + * 변경된 언어 정보를 기억할 로케일 리졸버를 생성한다. + * 여기서는 세션에 저장하는 방식을 사용한다. + * @return + */ + @Bean + public SessionLocaleResolver localeResolver() + { + return new SessionLocaleResolver(); + } + + /** + * 언어 변경을 위한 인터셉터를 생성한다. + */ + @Bean + public LocaleChangeInterceptor localeChangeInterceptor() + { + LocaleChangeInterceptor interceptor = new LocaleChangeInterceptor(); + interceptor.setParamName("lang"); + return interceptor; + } + + /** + * 인터셉터를 등록한다. + */ + @Override + public void addInterceptors(InterceptorRegistry registry) + { + registry.addInterceptor(localeChangeInterceptor()); + } + + /** + * @return [Resource 설정] 메세지 소스 등록 + */ + @Bean + public EgovMessageSource egovMessageSource() + { + EgovMessageSource egovMessageSource = new EgovMessageSource(); + egovMessageSource.setReloadableResourceBundleMessageSource(messageSource()); + return egovMessageSource; + } + + + + + + + +} + diff --git a/batch/src/main/java/com/urpsys/basebatch/config/PrimaryDbConfig.java b/batch/src/main/java/com/urpsys/basebatch/config/PrimaryDbConfig.java new file mode 100644 index 00000000..2e827d1b --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/PrimaryDbConfig.java @@ -0,0 +1,113 @@ +package com.urpsys.basebatch.config; + +import java.io.IOException; +import java.sql.Connection; + +import javax.sql.DataSource; +import org.apache.ibatis.session.ExecutorType; +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionTemplate; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.core.env.Environment; +import org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import com.urpsys.basebatch.common.crypto.Aes256Cipher; +import com.urpsys.basebatch.common.exception.CustomException; +import com.urpsys.basebatch.common.util.DataSourceUtil; + +/** + * primary db config 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.03    나혁제         최초작성
+ *
+ * 
+ */ + +@Configuration +@EnableTransactionManagement +@MapperScan( value={"com.urpsys.basebatch","com.urpsys.itmsbatch"} + , sqlSessionFactoryRef="primarySqlSessionFactory") +public class PrimaryDbConfig +{ + @Autowired + private Environment env; + + @Autowired + private Aes256Cipher aes256Cipher; + + /** + * 데이터소스 등록하는 메소드 + * @return + */ + @Bean(name="primaryDataSource") + public DataSource primaryDataSource() + { + return new LazyConnectionDataSourceProxy(DataSourceUtil.createDataSource("primarydb", env, aes256Cipher)); + } + + /** + * sqlsessionfactory 등록하는 메소드 + * + * @param dataSource + * @param context + * @return + * @throws SchedulerException + * @throws IOException + */ + @Bean(name="primarySqlSessionFactory") + public SqlSessionFactory primarySqlSessionFactory(@Qualifier("primaryDataSource") DataSource dataSource, ApplicationContext context) + throws CustomException, IOException + { + SqlSessionFactory sqlSessionFactory = DataSourceUtil.createSqlSessionFactory( dataSource + , context.getResource ("classpath:mapper/primarydb/config/MybatisConfig.xml") + , context.getResources("classpath:mapper/primarydb/sqlmap/**/*Mapper*.xml") + ); + + sqlSessionFactory.getConfiguration().setDefaultExecutorType(ExecutorType.SIMPLE); + + return sqlSessionFactory; + } + + /** + * sqlsessiontemplate 등록하는 메소드 + * @param primarySqlSessionFactory + * @return + */ + @Bean("primarySqlSessionTemplate") + public SqlSessionTemplate mainSqlSessionTemplate(@Qualifier("primarySqlSessionFactory") SqlSessionFactory primarySqlSessionFactory) + { + return new SqlSessionTemplate(primarySqlSessionFactory); + } + + /** + * 트랜잭션 매니저 등록하는 메소드 + * @param dataSource + * @return + */ + @Bean(name="primaryTxManager") + @Primary + public PlatformTransactionManager primaryTxManager(@Qualifier("primaryDataSource") DataSource dataSource) + { + return DataSourceUtil.createTxManager(dataSource); + } +} + diff --git a/batch/src/main/java/com/urpsys/basebatch/config/quartz/AutoWiringSpringBeanJobFactory.java b/batch/src/main/java/com/urpsys/basebatch/config/quartz/AutoWiringSpringBeanJobFactory.java new file mode 100644 index 00000000..0ad5723f --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/quartz/AutoWiringSpringBeanJobFactory.java @@ -0,0 +1,47 @@ +package com.urpsys.basebatch.config.quartz; + +import org.quartz.spi.TriggerFiredBundle; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.AutowireCapableBeanFactory; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.scheduling.quartz.SpringBeanJobFactory; + +/** + * 시스템에서 사용중인 Bean 수집 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.03    나혁제         최초작성
+ *
+ * 
+ */ + +public class AutoWiringSpringBeanJobFactory extends SpringBeanJobFactory implements ApplicationContextAware +{ + private transient AutowireCapableBeanFactory beanFactory; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException + { + beanFactory = applicationContext.getAutowireCapableBeanFactory(); + } + + @Override + protected Object createJobInstance(TriggerFiredBundle bundle) throws Exception + { + final Object job = super.createJobInstance(bundle); + beanFactory.autowireBean(job); + return job; + } +} + diff --git a/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzConfig.java b/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzConfig.java new file mode 100644 index 00000000..ef9c35e2 --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzConfig.java @@ -0,0 +1,129 @@ +package com.urpsys.basebatch.config.quartz; + +import java.io.IOException; +import java.util.Properties; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.config.PropertiesFactoryBean; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.core.io.ClassPathResource; +import org.springframework.scheduling.quartz.SchedulerFactoryBean; +import org.springframework.transaction.PlatformTransactionManager; + +import com.urpsys.basebatch.common.crypto.Aes256Cipher; +import com.urpsys.basebatch.common.util.CommonUtil; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +/** + * Quartz 설정 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see : https://pooney.tistory.com/99#article-17--qrtz_cron_triggers + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.03    나혁제         최초작성
+ *
+ * 
+ */ + +@Configuration +@Slf4j +public class QuartzConfig +{ + @Autowired + private Aes256Cipher aes256Cipher; + + private final DataSource dataSource; + private final ApplicationContext applicationContext; + private final PlatformTransactionManager platformTransactionManager; + + public QuartzConfig( @Qualifier("primaryDataSource") DataSource dataSource + , ApplicationContext applicationContext + , @Qualifier("primaryTxManager") PlatformTransactionManager platformTransactionManager + ) + { + this.dataSource = dataSource; + this.applicationContext = applicationContext; + this.platformTransactionManager = platformTransactionManager; + } + + /* + public QuartzConfig(@Qualifier("primaryDataSource") DataSource dataSource) { + this.dataSource = dataSource; + applicationContext = null; + platformTransactionManager = null; + } + */ + + @Bean + public SchedulerFactoryBean schedulerFactoryBean() + { + SchedulerFactoryBean schedulerFactoryBean = new SchedulerFactoryBean(); + + AutoWiringSpringBeanJobFactory autoWiringSpringBeanJobFactory = new AutoWiringSpringBeanJobFactory(); + + autoWiringSpringBeanJobFactory.setApplicationContext(applicationContext); + + schedulerFactoryBean.setJobFactory (autoWiringSpringBeanJobFactory); + schedulerFactoryBean.setDataSource (dataSource); + schedulerFactoryBean.setOverwriteExistingJobs (true); + schedulerFactoryBean.setAutoStartup (true); + schedulerFactoryBean.setTransactionManager (platformTransactionManager); + schedulerFactoryBean.setQuartzProperties (quartzProperties()); + + return schedulerFactoryBean; + } + + private Properties quartzProperties() + { + log.info(">>>>>>>>>> quartzProperties <<<<<<<<<<"); + + String activeProfile = (CommonUtil.nvl(System.getProperty("spring.profiles.active"))); + + PropertiesFactoryBean propertiesFactoryBean = new PropertiesFactoryBean(); + + String strProFile = "quartz-"+activeProfile+".properties"; + log.info("strProFile [{}]", strProFile); + + propertiesFactoryBean.setLocation(new ClassPathResource(strProFile)); + + Properties properties = null; + + try + { + propertiesFactoryBean.afterPropertiesSet(); + properties = propertiesFactoryBean.getObject(); + + String strDbUser = aes256Cipher.decrypt((String)properties.get("org.quartz.dataSource.pooney.user")); + String strDbPassword = aes256Cipher.decrypt((String)properties.get("org.quartz.dataSource.pooney.password")); + + properties.setProperty("org.quartz.dataSource.pooney.user" , strDbUser ); + properties.setProperty("org.quartz.dataSource.pooney.password", strDbPassword ); + + // System.out.println("자 봅시다 =>"+ properties.get("org.quartz.dataSource.pooney.user") ); + // System.out.println("자 봅시다 =>"+ properties.get("org.quartz.dataSource.pooney.password") ); + } + catch (IOException e) + { + log.error("quartzProperties parse error : {}", e); + } + + log.info("<<<<<<<<<< quartzProperties >>>>>>>>>>"); + + return properties; + } +} \ No newline at end of file diff --git a/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzConfigService.java b/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzConfigService.java new file mode 100644 index 00000000..e486acdd --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzConfigService.java @@ -0,0 +1,162 @@ +package com.urpsys.basebatch.config.quartz; + + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; + +import org.quartz.CronScheduleBuilder; +import org.quartz.Job; +import org.quartz.JobBuilder; +import org.quartz.JobDataMap; +import org.quartz.JobDetail; +import org.quartz.Scheduler; +import org.quartz.SchedulerException; +import org.quartz.Trigger; +import org.quartz.TriggerBuilder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; + +import com.urpsys.basebatch.service.QuartzService; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +/** + * Job 및 트리거 설정 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.03    나혁제         최초작성
+ *
+ * 
+ */ + + +@Slf4j +@Configuration +@RequiredArgsConstructor +public class QuartzConfigService +{ + private final Scheduler scheduler; + + @Autowired + QuartzService quartzService; + + @PostConstruct + public void init() + { + try + { + //스케줄러 초기화 -> DB도 CLAER + scheduler.clear(); + + //Job 리스너 등록 + scheduler.getListenerManager().addJobListener(new QuartzJobListner()); + + //Trigger 리스너 등록 + scheduler.getListenerManager().addTriggerListener(new QuartzTriggerListener()); + + // DB 작업처리로 변경 + List> jobList = quartzService.selectSchedJobInfo(); + + for(LinkedHashMap tempJob : jobList) + { + List> jobParamList = quartzService.selectSchedJobParamInfo((String)tempJob.get("jobName")); + + //Job에 필요한 Parameter 생성 + Map paramsMap = new HashMap<>(); + for(LinkedHashMap tempJobParam : jobParamList) + { + paramsMap.put(tempJobParam.get("jobParamKey"), tempJobParam.get("jobParamValue")); + } + + //Job의 실행횟수 및 실행시간 + paramsMap.put("executeCount", 1); + paramsMap.put("date", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + Class QuartzClass = (Class) Class.forName((String)tempJob.get("jobClass")); + + String strJobName = (String)tempJob.get("jobName"); + String jobDescription = (String)tempJob.get("jobDescription"); + String cronExpression = (String)tempJob.get("cronExpression"); + + addJob(QuartzClass, strJobName, jobDescription, paramsMap, cronExpression); + } + + /* + //Job에 필요한 Parameter 생성 + Map paramsMap = new HashMap<>(); + + //Job의 실행횟수 및 실행시간 + paramsMap.put("executeCount", 1); + paramsMap.put("date", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + Class QuartzClass = (Class) Class.forName("com.urpsys.basebatch.config.quartz.QuartzJob"); + + // Job 생성 및 Scheduler에 등록 + // addJob(QuartzJob.class, "QuartzJob", "Quartz Job 입니다", paramsMap, "0/5 * * * * ?"); + addJob(QuartzClass, "QuartzJob", "Quartz Job 입니다", paramsMap, "0 * * * * ?"); + + */ + } + catch (Exception e) + { + log.error("addJob error : {}", e); + + } + } + + // Job 추가 + public void addJob( Class job ,String name + , String dsec, Map paramsMap, String cron) throws SchedulerException + { + JobDetail jobDetail = buildJobDetail(job,name,dsec,paramsMap); + + Trigger trigger = buildCronTrigger(cron); + + if(scheduler.checkExists(jobDetail.getKey())) + { + scheduler.deleteJob(jobDetail.getKey()); + } + + scheduler.scheduleJob(jobDetail,trigger); + } + + // JobDetail 생성 + public JobDetail buildJobDetail( Class job, String name, String desc + , Map paramsMap) + { + JobDataMap jobDataMap = new JobDataMap(); + jobDataMap.putAll(paramsMap); + + return JobBuilder + .newJob(job) + .withIdentity(name) + .withDescription(desc) + .usingJobData(jobDataMap) + .build(); + } + + // Trigger 생성 + private Trigger buildCronTrigger(String cronExp) + { + return TriggerBuilder.newTrigger() + .withSchedule(CronScheduleBuilder.cronSchedule(cronExp)) + .build(); + } +} \ No newline at end of file diff --git a/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzJob.java b/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzJob.java new file mode 100644 index 00000000..f8fe2174 --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzJob.java @@ -0,0 +1,63 @@ +package com.urpsys.basebatch.config.quartz; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import org.quartz.DisallowConcurrentExecution; +import org.quartz.Job; +import org.quartz.JobDataMap; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.PersistJobDataAfterExecution; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import lombok.extern.slf4j.Slf4j; + +/** + * QuartzJob 실행 클래스 예시 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.03    나혁제         최초작성
+ *
+ * 
+ */ + +@Slf4j +@Component +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +public class QuartzJob implements Job +{ + @Override + public void execute(JobExecutionContext context) throws JobExecutionException + { + log.info(">>>>> Quartz Job Executed <<<<< "); + + JobDataMap dataMap = context.getJobDetail().getJobDataMap(); + + log.info("dataMap date : {}", dataMap.get("date")); + log.info("dataMap executeCount : {}", dataMap.get("executeCount")); + + //JobDataMap를 통해 Job의 실행 횟수를 받아서 횟수 + 1을한다. + int cnt = (int) dataMap.get("executeCount"); + dataMap.put("executeCount", ++cnt); + dataMap.put("date", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + + log.info("<<<<< Quartz Job Executed >>>>> "); + } + + +} \ No newline at end of file diff --git a/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzJobListner.java b/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzJobListner.java new file mode 100644 index 00000000..6f5b953e --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzJobListner.java @@ -0,0 +1,60 @@ +package com.urpsys.basebatch.config.quartz; + +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.JobListener; + +import lombok.extern.slf4j.Slf4j; + +/** + * Job 리스너 설정 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.03    나혁제         최초작성
+ *
+ * 
+ */ + +@Slf4j +public class QuartzJobListner implements JobListener +{ + @Override + public String getName() + { + return this.getClass().getName(); + } + + @Override + public void jobToBeExecuted(JobExecutionContext context) + { + log.info(">>>>> <<<<<"); + log.info("Job 수행 되기 전"); + log.info("<<<<< >>>>> "); + } + + @Override + public void jobExecutionVetoed(JobExecutionContext context) + { + log.info(">>>>> <<<<<"); + log.info("Job 중단"); + log.info("<<<<< >>>>> "); + } + + @Override + public void jobWasExecuted(JobExecutionContext context, JobExecutionException jobException) + { + log.info(">>>>> <<<<<"); + log.info("Job 수행 완료 후"); + log.info("<<<<< >>>>> "); + } +} \ No newline at end of file diff --git a/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzTriggerListener.java b/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzTriggerListener.java new file mode 100644 index 00000000..b2dfc91d --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/config/quartz/QuartzTriggerListener.java @@ -0,0 +1,105 @@ +package com.urpsys.basebatch.config.quartz; + +import org.quartz.JobDataMap; +import org.quartz.JobExecutionContext; +import org.quartz.Trigger; +import org.quartz.TriggerListener; + +import lombok.extern.slf4j.Slf4j; + +/** + * 트리거 설정 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.03 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.03    나혁제         최초작성
+ *
+ * 
+ */ + +@Slf4j +public class QuartzTriggerListener implements TriggerListener +{ + @Override + public String getName() + { + return this.getClass().getName(); + } + + /** + * Trigger가 실행된 상태 + * 리스너 중에서 가장 먼저 실행됨 + */ + @Override + public void triggerFired(Trigger trigger, JobExecutionContext context) + { + log.info("Trigger 실행"); + } + + /** + * Trigger가 중단된 상태 + */ + @Override + public void triggerMisfired(Trigger trigger) + { + + } + + /** + * Trigger가 완료된 상태 + */ + @Override + public void triggerComplete(Trigger trigger, JobExecutionContext context, Trigger.CompletedExecutionInstruction triggerInstructionCode) + { + log.info("Trigger 성공"); + + } + + + /** + * Trigger 중단 여부를 확인하는 메소드 + * Job을 수행하기 전 상태 + * + * 반환값이 false인 경우, Job 수행 + * 반환값이 true인 경우, Job을 수행하지않고 'SchedulerListtener.jobExecutionVetoed'로 넘어감 + * + */ + @Override + public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context) { + // TODO Auto-generated method stub + return false; + } + + + /** + * @Content : 결과가 true이면 JobListener jobExecutionVetoed(JOB중단) 실행 + */ + /* + @Override + public boolean vetoJobExecution(Trigger trigger, JobExecutionContext context) + { + log.info("Trigger 상태 체크"); + JobDataMap map = context.getJobDetail().getJobDataMap(); + + int executeCount = 1; + + if (map.containsKey("executeCount")) + { + executeCount = (int) map.get("executeCount"); + } + + return executeCount >= 3; + } + */ + + +} diff --git a/batch/src/main/java/com/urpsys/basebatch/dao/QuartzDao.java b/batch/src/main/java/com/urpsys/basebatch/dao/QuartzDao.java new file mode 100644 index 00000000..68d3365a --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/dao/QuartzDao.java @@ -0,0 +1,38 @@ +package com.urpsys.basebatch.dao; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * 배치 작업정보에 대한 DAO 클래스를 정의 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.02 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일     수정자            수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.02   나혁제          최초작성
+ *
+ *      
+ */ + +@Mapper +@Repository +public interface QuartzDao +{ + // 배치작업정보 추출 목록 + public List> selectSchedJobInfo(); + + // 배치작업 인자 정보 추출 목록 + public List> selectSchedJobParamInfo(String strJobName); + +} diff --git a/batch/src/main/java/com/urpsys/basebatch/domain/JWTKey.java b/batch/src/main/java/com/urpsys/basebatch/domain/JWTKey.java new file mode 100644 index 00000000..d82d80b2 --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/domain/JWTKey.java @@ -0,0 +1,24 @@ +package com.urpsys.basebatch.domain; + +import org.springframework.util.StringUtils; + +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Data +public class JWTKey +{ + + String alg = ""; + String value = ""; + + public String getValue() + { + if (!StringUtils.isEmpty(value)) + { + return value; + } + return ""; + } +} diff --git a/batch/src/main/java/com/urpsys/basebatch/domain/TokenInfo.java b/batch/src/main/java/com/urpsys/basebatch/domain/TokenInfo.java new file mode 100644 index 00000000..e8408201 --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/domain/TokenInfo.java @@ -0,0 +1,46 @@ +package com.urpsys.basebatch.domain; + +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; + +import lombok.Data; + +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +@Data +public class TokenInfo +{ + private String userName; + private String clientId; + + private String strMEM_ID; + private String strPWD; + private String strPWD_HINT; + private String strPWD_RANS; + private String strRRNO; + private String strMEM_NM; + private String strZIP_NO; + private String strADDR; + private String strREGN_NO; + private String strMEM_STACD; + private String strADDR2; + private String strEND_TELNO; + private String strMOVE_TELNO; + private String strGRP_ID; + private String strMEM_FAX_NO; + private String strMEM_EML_ADDR; + private String strMDL_TELNO; + private String strJOIN_DTM; + private String strSEX_CD; + private String strESNTL_ID; + private String strLOCK_AT; + private String strLOCK_NCNT; + private String strLAST_CHG_DTM; + private String strLAST_PWD_CHG_DTM; + private String userSe; + private String orgnztId; + + private List authorities; +} diff --git a/batch/src/main/java/com/urpsys/basebatch/service/QuartzService.java b/batch/src/main/java/com/urpsys/basebatch/service/QuartzService.java new file mode 100644 index 00000000..e52a1acf --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/service/QuartzService.java @@ -0,0 +1,54 @@ +package com.urpsys.basebatch.service; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.urpsys.basebatch.dao.QuartzDao; + +/** + * 배치작업정보에 관한 일반 로직 구현 클래스를 정의 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.02 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일     수정자      수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.02   나혁제      최초작성
+ *
+ *      
+ */ + +@Service +@Transactional +public class QuartzService +{ + @Autowired + QuartzDao quartzDao; + + // 작업정보 추출 목록 + public List> selectSchedJobInfo() + { + return quartzDao.selectSchedJobInfo(); + } + + // 배치작업 인자 정보 추출 목록 + public List> selectSchedJobParamInfo(String strJobName) + { + return quartzDao.selectSchedJobParamInfo(strJobName); + } + + + + + +} diff --git a/batch/src/main/java/com/urpsys/basebatch/urpBaseBatchApplication.java b/batch/src/main/java/com/urpsys/basebatch/urpBaseBatchApplication.java new file mode 100644 index 00000000..994eb19c --- /dev/null +++ b/batch/src/main/java/com/urpsys/basebatch/urpBaseBatchApplication.java @@ -0,0 +1,134 @@ +package com.urpsys.basebatch; + +import com.urpsys.basebatch.common.util.CommonUtil; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.ComponentScan; + +/** + * Batch 서버 기본 실행 클래스 + * + * @author 나혁제 + * @since 2025.04.02 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2024.01.08    나혁제         최초작성
+ *
+ *      
+ */ + +@SpringBootApplication +@ComponentScan(basePackages = {"com.urpsys"}) +public class urpBaseBatchApplication +{ + public static void main(String[] args) + { + String activeProfile = (CommonUtil.nvl(System.getProperty("spring.profiles.active"))); + + if(activeProfile.equals("local")) + { + System.out.println("################################################"); + System.out.println("############# local Env ########################"); + System.out.println("################################################"); + } + else if(activeProfile.equals("infra_server")) + { + System.out.println("################################################"); + System.out.println("############# infra_server Env #################"); + System.out.println("################################################"); + } + // KIC(한국투장공사) 개발 + else if(activeProfile.equals("kic_dev")) + { + System.out.println("################################################"); + System.out.println("############# kic_dev Env ######################"); + System.out.println("################################################"); + } + // KIC(한국투장공사) 운영 + else if(activeProfile.equals("kic_rel")) + { + System.out.println("################################################"); + System.out.println("############# kic_rel Env ######################"); + System.out.println("################################################"); + } + // KEITI(한국환경산업기술원) + else if(activeProfile.equals("keiti_prod")) + { + System.out.println("################################################"); + System.out.println("############# keiti_prod Env ###################"); + System.out.println("################################################"); + } + // 2025.09.12 나혁제 킨텍스 추가 + else if(activeProfile.equals("kintex_prod")) + { + System.out.println("################################################"); + System.out.println("############# kintex_prod Env ##################"); + System.out.println("################################################"); + } + // 2026.01.28 나혁제 노원구청 추가 + else if(activeProfile.equals("nowon")) + { + System.out.println("################################################"); + System.out.println("############# nowon Env ########################"); + System.out.println("################################################"); + } + // 2026.02.26 나혁제 양평군청 추가 + else if(activeProfile.equals("yp21")) + { + System.out.println("################################################"); + System.out.println("############# yp21 Env #########################"); + System.out.println("################################################"); + } + // 2026.03.19 나혁제 노인인력개발원 추가 + else if(activeProfile.equals("kordi")) + { + System.out.println("################################################"); + System.out.println("############# kordi Env ########################"); + System.out.println("################################################"); + } + // 2026.04.21 나혁제 헌법재판소 추가 + else if(activeProfile.equals("ccourt")) + { + System.out.println("################################################"); + System.out.println("############# ccourt Env #######################"); + System.out.println("################################################"); + } + // 2026.04.27 나혁제 문화원연합회 추가 + else if(activeProfile.equals("kccf")) + { + System.out.println("################################################"); + System.out.println("############# kccf Env #########################"); + System.out.println("################################################"); + } + // 2026.04.28 나혁제 국립생물자원관 추가 + else if(activeProfile.equals("nibr")) + { + System.out.println("################################################"); + System.out.println("############# nibr Env #########################"); + System.out.println("################################################"); + } + // 2026.04.28 나혁제 성신여대 추가 + else if(activeProfile.equals("sungshin")) + { + System.out.println("################################################"); + System.out.println("############# sungshin Env #####################"); + System.out.println("################################################"); + } + else + { + System.out.println("################################################"); + System.out.println("############# No Define ########################"); + System.out.println("################################################"); + } + + SpringApplication.run(urpBaseBatchApplication.class, args); + } +} diff --git a/batch/src/main/java/com/urpsys/itmsbatch/bbs/dao/BbsInfoHistDao.java b/batch/src/main/java/com/urpsys/itmsbatch/bbs/dao/BbsInfoHistDao.java new file mode 100644 index 00000000..7425d24c --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/bbs/dao/BbsInfoHistDao.java @@ -0,0 +1,36 @@ +package com.urpsys.itmsbatch.bbs.dao; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * 게시물 관련 Dao Class + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.24 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일       수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.24   나혁제         최초작성
+ *
+ *  
+ */ + +@Mapper +@Repository +public interface BbsInfoHistDao +{ + public List> getBbsInfoHistList() ; // 게시물 이력 데이터 추출 + public int updateBbsInfoHist (LinkedHashMap inMap) ; // 게시물 이력 데이터 변경 + + +} diff --git a/batch/src/main/java/com/urpsys/itmsbatch/bbs/service/BbsInfoHistService.java b/batch/src/main/java/com/urpsys/itmsbatch/bbs/service/BbsInfoHistService.java new file mode 100644 index 00000000..e213d874 --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/bbs/service/BbsInfoHistService.java @@ -0,0 +1,52 @@ +package com.urpsys.itmsbatch.bbs.service; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.urpsys.itmsbatch.bbs.dao.BbsInfoHistDao; + +/** + * 보고서 정보 관한 일반 로직 구현 클래스를 정의 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.02 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일     수정자      수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.02   나혁제      최초작성
+ *
+ *      
+ */ + +@Service +@Transactional +public class BbsInfoHistService +{ + @Autowired + BbsInfoHistDao bbsInfoHistDao; + + // 보고서 이력 추출 목록 + public List> getBbsInfoHistList() + { + return bbsInfoHistDao.getBbsInfoHistList(); + } + + // 보고서 이력 검색시스쳄 송신 이력 변경 + public int updateBbsInfoHist (LinkedHashMap inMap) + { + return bbsInfoHistDao.updateBbsInfoHist(inMap); + } + + + +} diff --git a/batch/src/main/java/com/urpsys/itmsbatch/cmm/dao/CmmUseDao.java b/batch/src/main/java/com/urpsys/itmsbatch/cmm/dao/CmmUseDao.java new file mode 100644 index 00000000..6210bb6c --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/cmm/dao/CmmUseDao.java @@ -0,0 +1,41 @@ +package com.urpsys.itmsbatch.cmm.dao; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * 공통처리 추출 하는 Dao Class + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.09 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일       수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.09   나혁제         최초작성
+ *
+ *  
+ */ + +@Mapper +@Repository +public interface CmmUseDao +{ + public List> selectCmmCodeDetail (LinkedHashMap inMap) throws Exception; // 공통코드 추출 + + public List> selectOgrnztIdDetail(LinkedHashMap inMap) throws Exception; // 조직정보 추출 + public List> selectGroupIdDetail (LinkedHashMap inMap) throws Exception; // 그룹코드정보 추출 + + // 상세코드 + public LinkedHashMap selectCmmCodeDetailAsCd (LinkedHashMap inMap) throws Exception; + + +} diff --git a/batch/src/main/java/com/urpsys/itmsbatch/cmm/dao/KicItsmDao.java b/batch/src/main/java/com/urpsys/itmsbatch/cmm/dao/KicItsmDao.java new file mode 100644 index 00000000..ccdffda4 --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/cmm/dao/KicItsmDao.java @@ -0,0 +1,45 @@ +package com.urpsys.itmsbatch.cmm.dao; + +import java.util.LinkedHashMap; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * Kic 인사시스템 연동처리 Dao Class + * + * @author urp 인프라본부 나혁제 + * @since 2025.06.16 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일       수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.06.16   나혁제         최초작성
+ *
+ *  
+ */ + +@Mapper +@Repository +public interface KicItsmDao +{ + public String selectItmsOrgId (String strIn) throws Exception; // Itsm 조직정보 추출 + + public int insertDeptManage (LinkedHashMap inMap) throws Exception; // 조직정보 입력 + public int insertKicOrgMap (LinkedHashMap inMap) throws Exception; // KIC/ITSM 조직 맵핑 정보 입력 + public int insertItsmUser (LinkedHashMap inMap) throws Exception; // 사용자 정보 입력 + public int insertItsmUserMenu(LinkedHashMap inMap) throws Exception; // 사용자 메뉴 입력 + public int updateItsmUser (LinkedHashMap inMap) throws Exception; // 사용자 정보 변경 + + public LinkedHashMap selectItsmUser (String strIn) throws Exception; // Itsm 사용자정보 추출 + + + + + +} diff --git a/batch/src/main/java/com/urpsys/itmsbatch/cmm/dao/MailKaTalkDao.java b/batch/src/main/java/com/urpsys/itmsbatch/cmm/dao/MailKaTalkDao.java new file mode 100644 index 00000000..db7c60b9 --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/cmm/dao/MailKaTalkDao.java @@ -0,0 +1,41 @@ +package com.urpsys.itmsbatch.cmm.dao; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * 알림(메일,카톡) 처리 작업정보에 대한 DAO 클래스를 정의 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.02 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일     수정자            수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.02   나혁제          최초작성
+ *
+ *      
+ */ + +@Mapper +@Repository +public interface MailKaTalkDao +{ + // 전송대상 목록 조회 + public List> selectNctnProcSndInfo(); + + // 전송대상 전송후 처리결과 갱신 + public int updateNtcnProcSndInfo(LinkedHashMap inMap); + + + + +} diff --git a/batch/src/main/java/com/urpsys/itmsbatch/cmm/excute/KicInsaInterJob.java b/batch/src/main/java/com/urpsys/itmsbatch/cmm/excute/KicInsaInterJob.java new file mode 100644 index 00000000..769f0025 --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/cmm/excute/KicInsaInterJob.java @@ -0,0 +1,77 @@ +package com.urpsys.itmsbatch.cmm.excute; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +import org.quartz.DisallowConcurrentExecution; +import org.quartz.Job; +import org.quartz.JobDataMap; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.PersistJobDataAfterExecution; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.urpsys.itmsbatch.cmm.service.KicInsaInterService; + +import lombok.extern.slf4j.Slf4j; + +/** + * KIC(한국투자공사) 인사시스템 연동 처리 실행 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.06.16 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.06.16    나혁제         최초작성
+ *
+ * 
+ */ + +@Slf4j +@Component +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +public class KicInsaInterJob implements Job +{ + @Autowired + KicInsaInterService kicInsaInterService; + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException + { + log.info(" >>>>>>>>>> KicInsaInterJob Executed <<<<<<<<<< "); + + JobDataMap dataMap = context.getJobDetail().getJobDataMap(); + + log.info("dataMap date : {}", dataMap.get("date")); + log.info("dataMap executeCount : {}", dataMap.get("executeCount")); + + try + { + kicInsaInterService.kicInsaItsmInter(); + } + catch(Exception e) + { + e.printStackTrace(); + } + + + //JobDataMap를 통해 Job의 실행 횟수를 받아서 횟수 + 1을한다. + int cnt = (int) dataMap.get("executeCount"); + dataMap.put("executeCount", ++cnt); + dataMap.put("date", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + log.info(" <<<<<<<<<< KicInsaInterJob Executed >>>>>>>>>> "); + } + + +} \ No newline at end of file diff --git a/batch/src/main/java/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendJob.java b/batch/src/main/java/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendJob.java new file mode 100644 index 00000000..115c9c16 --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendJob.java @@ -0,0 +1,135 @@ +package com.urpsys.itmsbatch.cmm.excute; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.quartz.DisallowConcurrentExecution; +import org.quartz.Job; +import org.quartz.JobDataMap; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.PersistJobDataAfterExecution; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.stereotype.Component; + +import com.urpsys.basebatch.common.util.CommonUtil; +import com.urpsys.basebatch.common.util.HtmlEmailUtil; +import com.urpsys.basebatch.common.util.RestApiCallUtil; +import com.urpsys.itmsbatch.cmm.dao.MailKaTalkDao; +import com.urpsys.itmsbatch.cmm.service.MailKaTalkService; + +import lombok.extern.slf4j.Slf4j; + +/** + * 메일/카톡 처리 실행 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.02 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.02    나혁제         최초작성
+ *
+ * 
+ */ + +@Slf4j +@Component +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +public class MailKaTalkSendJob implements Job +{ + @Autowired + MailKaTalkService mailKaTalkService; + + @Autowired + HtmlEmailUtil htmlEmailUtil; + + @Autowired + RestApiCallUtil restApiCallUtil; + + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException + { + log.info(" >>>>>>>>>> MailKaTalkSendJob Executed <<<<<<<<<< "); + + JobDataMap dataMap = context.getJobDetail().getJobDataMap(); + + log.info("dataMap date : {}", dataMap.get("date")); + log.info("dataMap executeCount : {}", dataMap.get("executeCount")); + + // 전송메일 대상 조회 + List> listNctn = mailKaTalkService.selectNctnProcSndInfo(); + + for(LinkedHashMap tempMap : listNctn) + { + String strProcRsltCn = ""; + String strProcRsltCd = ""; + + // 메일 처리 + if(tempMap.get("procTy").equals("1")) + { + /* 2025.09.01 나혁제 메일보내기 잠시 Stop */ + /* 2025.11.07 나혁제 메일보내기 잠시 Open */ + strProcRsltCn = htmlEmailUtil.send( CommonUtil.nvl(tempMap.get("rcvrAddr")) + , CommonUtil.nvl(tempMap.get("ttl")) + , CommonUtil.nvl(tempMap.get("bdy")) ); + + strProcRsltCd = (strProcRsltCn.equals("")) ? "0" : "-1"; + } + // 카톡처리 + else if(tempMap.get("procTy").equals("2")) + { + try + { + Map retMap = restApiCallUtil.RestApiCallNaverCloudKaKao( CommonUtil.nvl(tempMap.get("ttl")) + , CommonUtil.nvl(tempMap.get("rcvrAddr")) + , CommonUtil.nvl(tempMap.get("bdy")) + ); + strProcRsltCn = retMap.toString(); + strProcRsltCd = "0"; + } + catch(Exception e) + { + strProcRsltCn = e.toString(); + strProcRsltCd = "-2"; + } + } + // 오류처리 + else + { + strProcRsltCn = "알수 없는 구분값"; + strProcRsltCd = (strProcRsltCn.equals("")) ? "0" : "-1"; + } + + LinkedHashMap inputMap = new LinkedHashMap(); + + inputMap.put("procRsltCn" , strProcRsltCn); + inputMap.put("procRsltCd" , strProcRsltCd); + inputMap.put("nctnEsntlId" , tempMap.get("nctnEsntlId")); + + mailKaTalkService.updateNtcnProcSndInfo(inputMap); + } + + //JobDataMap를 통해 Job의 실행 횟수를 받아서 횟수 + 1을한다. + int cnt = (int) dataMap.get("executeCount"); + dataMap.put("executeCount", ++cnt); + dataMap.put("date", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + log.info(" <<<<<<<<<< MailKaTalkSendJob Executed >>>>>>>>>> "); + } + + +} \ No newline at end of file diff --git a/batch/src/main/java/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendKiccJob.java b/batch/src/main/java/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendKiccJob.java new file mode 100644 index 00000000..5ed90291 --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendKiccJob.java @@ -0,0 +1,206 @@ +package com.urpsys.itmsbatch.cmm.excute; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.quartz.DisallowConcurrentExecution; +import org.quartz.Job; +import org.quartz.JobDataMap; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.PersistJobDataAfterExecution; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.stereotype.Component; + +import com.urpsys.basebatch.common.util.CommonUtil; +import com.urpsys.basebatch.common.util.ConvertUtils; +import com.urpsys.basebatch.common.util.HtmlEmailUtil; +import com.urpsys.basebatch.common.util.RestApiCallUtil; +import com.urpsys.itmsbatch.cmm.dao.MailKaTalkDao; +import com.urpsys.itmsbatch.cmm.service.MailKaTalkService; + +import kong.unirest.json.JSONObject; +import lombok.extern.slf4j.Slf4j; + +/** + * KIC(한국투자공사) 메일/카톡 처리 실행 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.06.11 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.06.11    나혁제         최초작성
+ *
+ * 
+ */ + +@Slf4j +@Component +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +public class MailKaTalkSendKiccJob implements Job +{ + @Autowired + MailKaTalkService mailKaTalkService; + + @Autowired + HtmlEmailUtil htmlEmailUtil; + + @Autowired + RestApiCallUtil restApiCallUtil; + + @Value("${custom.api_kic_msg_key}") + private String strApiKicMsgKey; // KIC 메신저서버 api key + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException + { + log.info(" >>>>>>>>>> MailKaTalkSendKiccJob Executed <<<<<<<<<< "); + + JobDataMap dataMap = context.getJobDetail().getJobDataMap(); + + log.info("dataMap date : {}", dataMap.get("date")); + log.info("dataMap executeCount : {}", dataMap.get("executeCount")); + + // 전송메일 대상 조회 + List> listNctn = mailKaTalkService.selectNctnProcSndInfo(); + + for(LinkedHashMap tempMap : listNctn) + { + String strProcRsltCn = ""; + String strProcRsltCd = ""; + + // 메일 처리 + if(tempMap.get("procTy").equals("1")) + { + Map bodyMap = new HashMap(); + + String strMailAddress = CommonUtil.nvl(tempMap.get("rcvrAddr")); + + // 2025.07.01 나혁제 자기 메일로 처리 + // bodyMap.put("email" , "hong@kic.go.kr"); + bodyMap.put("email" , CommonUtil.nvl(tempMap.get("rcvrAddr")) ); + bodyMap.put("to" , CommonUtil.nvl(tempMap.get("rcvrAddr")) ); + bodyMap.put("subject" , CommonUtil.nvl(tempMap.get("ttl")) ); + bodyMap.put("content" , CommonUtil.nvl(tempMap.get("bdy")) ); + // bodyMap.put("content" , "itms 메일테스트 입니다. 메일 삭제해주세요." ); + bodyMap.put("contentType" , "text/html" ); + + try + { + // 메일주소가 없는경우 오류 처리 + if(strMailAddress.equals("")) + { + strProcRsltCn = "메일주소 존재하지 않음"; + strProcRsltCd = "-1"; + } + else + { + // Map retMap = restApiCallUtil.RestApiCallNoAuthKicMailTextHtml(bodyMap, "/test/kicMailTest.do"); + Map retMap = restApiCallUtil.RestApiCallNoAuthKicMailTextHtml(bodyMap, "/api/mail/send/json"); + + strProcRsltCn = retMap.toString(); + strProcRsltCd = "0"; + } + } + catch(Exception e) + { + e.printStackTrace(); + + strProcRsltCn = e.toString(); + strProcRsltCd = "-2"; + } + } + // 메신저 처리 + else if(tempMap.get("procTy").equals("3")) + { + String strTtl = CommonUtil.nvl(tempMap.get("ttl")); + String strRcvrAddr = CommonUtil.nvl(tempMap.get("rcvrAddr")); + String strBdy = CommonUtil.nvl(tempMap.get("bdy")); + String[] srBdy = strBdy.split(","); + + try + { + Map bodyMap = new HashMap(); + + List> targetsList = new ArrayList<>(); + + // 기본정보 Setting + Map targetMap = new HashMap(); + targetMap.put("targetCode", strRcvrAddr); + targetMap.put("targetType", "UR"); + targetsList.add(targetMap); + + // 메세지 Body Setting + JSONObject jsonObj = new JSONObject(); + jsonObj.put("name", "상세페이지로이동"); + jsonObj.put("type", "link"); + jsonObj.put("data", srBdy[1]); + + JSONObject jObj = new JSONObject(); + jObj.put("title" , strTtl); + jObj.put("context", srBdy[0]); + jObj.put("func", jsonObj); + + StringBuilder strBulider = new StringBuilder(100); + + strBulider.append(jObj.toString().replaceAll("\"", "\\\"")); + + // bodyMap 구성 + bodyMap.put("SubjectCode", strApiKicMsgKey); + bodyMap.put("targets" , targetsList ); + + bodyMap.put("message" , strBulider.toString() ); + + Map retMap = restApiCallUtil.RestApiCallNoAuthKicMsg( bodyMap, "/server/na/notice"); + + strProcRsltCn = retMap.toString(); + strProcRsltCd = "0"; + } + catch(Exception e) + { + strProcRsltCn = e.toString(); + strProcRsltCd = "-2"; + } + } + // 오류처리 + else + { + strProcRsltCn = "알수 없는 구분값"; + strProcRsltCd = (strProcRsltCn.equals("")) ? "0" : "-1"; + } + + LinkedHashMap inputMap = new LinkedHashMap(); + + inputMap.put("procRsltCn" , strProcRsltCn); + inputMap.put("procRsltCd" , strProcRsltCd); + inputMap.put("nctnEsntlId" , tempMap.get("nctnEsntlId")); + + mailKaTalkService.updateNtcnProcSndInfo(inputMap); + } + + //JobDataMap를 통해 Job의 실행 횟수를 받아서 횟수 + 1을한다. + int cnt = (int) dataMap.get("executeCount"); + dataMap.put("executeCount", ++cnt); + dataMap.put("date", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + log.info(" <<<<<<<<<< MailKaTalkSendKiccJob Executed >>>>>>>>>> "); + } + + +} \ No newline at end of file diff --git a/batch/src/main/java/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendKiccJob.java.20250703 b/batch/src/main/java/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendKiccJob.java.20250703 new file mode 100644 index 00000000..df86c71d --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/cmm/excute/MailKaTalkSendKiccJob.java.20250703 @@ -0,0 +1,259 @@ +package com.urpsys.itmsbatch.cmm.excute; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.quartz.DisallowConcurrentExecution; +import org.quartz.Job; +import org.quartz.JobDataMap; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.PersistJobDataAfterExecution; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.stereotype.Component; + +import com.urpsys.basebatch.common.util.CommonUtil; +import com.urpsys.basebatch.common.util.ConvertUtils; +import com.urpsys.basebatch.common.util.HtmlEmailUtil; +import com.urpsys.basebatch.common.util.RestApiCallUtil; +import com.urpsys.itmsbatch.cmm.dao.MailKaTalkDao; +import com.urpsys.itmsbatch.cmm.service.MailKaTalkService; + +import kong.unirest.json.JSONObject; +import lombok.extern.slf4j.Slf4j; + +/** + * KIC(한국투자공사) 메일/카톡 처리 실행 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.06.11 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.06.11    나혁제         최초작성
+ *
+ * 
+ */ + +@Slf4j +@Component +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +public class MailKaTalkSendKiccJob2 implements Job +{ + @Autowired + MailKaTalkService mailKaTalkService; + + @Autowired + HtmlEmailUtil htmlEmailUtil; + + @Autowired + RestApiCallUtil restApiCallUtil; + + @Value("${custom.api_kic_msg_key}") + private String strApiKicMsgKey; // KIC 메신저서버 api key + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException + { + log.info(" >>>>>>>>>> MailKaTalkSendKiccJob Executed <<<<<<<<<< "); + + JobDataMap dataMap = context.getJobDetail().getJobDataMap(); + + log.info("dataMap date : {}", dataMap.get("date")); + log.info("dataMap executeCount : {}", dataMap.get("executeCount")); + + // 전송메일 대상 조회 + List> listNctn = mailKaTalkService.selectNctnProcSndInfo(); + + for(LinkedHashMap tempMap : listNctn) + { + String strProcRsltCn = ""; + String strProcRsltCd = ""; + + // 메일 처리 + if(tempMap.get("procTy").equals("1")) + { + Map bodyMap = new HashMap(); + + String strMailAddress = CommonUtil.nvl(tempMap.get("rcvrAddr")); + + // 2025.07.01 나혁제 자기 메일로 처리 + // bodyMap.put("email" , "hong@kic.go.kr"); + bodyMap.put("email" , CommonUtil.nvl(tempMap.get("rcvrAddr")) ); + bodyMap.put("to" , CommonUtil.nvl(tempMap.get("rcvrAddr")) ); + bodyMap.put("subject" , CommonUtil.nvl(tempMap.get("ttl")) ); + bodyMap.put("content" , CommonUtil.nvl(tempMap.get("bdy")) ); + // bodyMap.put("content" , "itms 메일테스트 입니다. 메일 삭제해주세요." ); + bodyMap.put("contentType" , "text/html" ); + + try + { + // 메일주소가 없는경우 오류 처리 + if(strMailAddress.equals("")) + { + strProcRsltCn = "메일주소 존재하지 않음"; + strProcRsltCd = "-1"; + } + else + { + // Map retMap = restApiCallUtil.RestApiCallNoAuthKicMailTextHtml(bodyMap, "/test/kicMailTest.do"); + Map retMap = restApiCallUtil.RestApiCallNoAuthKicMailTextHtml(bodyMap, "/api/mail/send/json"); + + strProcRsltCn = retMap.toString(); + strProcRsltCd = "0"; + } + } + catch(Exception e) + { + e.printStackTrace(); + + strProcRsltCn = e.toString(); + strProcRsltCd = "-2"; + } + } + // 메신저 처리 + else if(tempMap.get("procTy").equals("3")) + { + String strTtl = CommonUtil.nvl(tempMap.get("ttl")); + String strRcvrAddr = CommonUtil.nvl(tempMap.get("rcvrAddr")); + String strBdy = CommonUtil.nvl(tempMap.get("bdy")); + String[] srBdy = strBdy.split(","); + + try + { + /* + Map messageMap = new HashMap(); + + messageMap.put("\""+"title" +"\"" , "\""+strTtl+"\"" ); + messageMap.put("\""+"context" +"\"" , "\""+srBdy[0]+"\"" ); + + Map messageFuncMap = new HashMap(); + + messageFuncMap.put("\""+"name" +"\"", "\""+"상세페이지로이동"+"\"" ); + messageFuncMap.put("\""+"type" +"\"", "\""+"link" +"\"" ); + messageFuncMap.put("\""+"data" +"\"", "\""+srBdy[1] +"\"" ); + + messageMap.put("\""+"func"+"\"", messageFuncMap); + */ + + // JSONParser parser = new JSONParser(); + + /* + Map messageMap = new HashMap(); + + messageMap.put("title" , strTtl ); + messageMap.put("context" , srBdy[0] ); + + Map messageFuncMap = new HashMap(); + + messageFuncMap.put("name" , "상세페이지로이동" ); + messageFuncMap.put("type" , "link" ); + messageFuncMap.put("data" , srBdy[1] ); + + messageMap.put("func", messageFuncMap); + + StringBuilder strBulider = new StringBuilder(1000); + + strBulider.append("\""); + strBulider.append(messageMap.toString().replaceAll("\"", "\\\"")); + strBulider.append("\""); + */ + + // 변환처리 + // JSONObject jsonObj = ConvertUtils.getJsonFromMap(messageMap); + + + Map bodyMap = new HashMap(); + + List> targetsList = new ArrayList<>(); + + Map targetMap = new HashMap(); + targetMap.put("targetCode", strRcvrAddr); + targetMap.put("targetType", "UR"); + targetsList.add(targetMap); + + JSONObject jsonObj = new JSONObject(); + + // String str = "\"; + + jsonObj.put("name", "상세페이지로이동"); + jsonObj.put("type", "link"); + jsonObj.put("data", srBdy[1]); + + JSONObject jObj = new JSONObject(); + + jObj.put("title" , strTtl); + jObj.put("context", srBdy[0]); + + jObj.put("func", jsonObj); + + StringBuilder strBulider = new StringBuilder(100); + + // strBulider.append("\""); + strBulider.append(jObj.toString().replaceAll("\"", "\\\"")); + // strBulider.append("\""); + + // bodyMap 구성 + bodyMap.put("SubjectCode", strApiKicMsgKey); + bodyMap.put("targets" , targetsList ); + + // bodyMap.put("message" , jsonObj.toString() ); + + bodyMap.put("message" , strBulider.toString() ); + // bodyMap.put("message" , messageMap.toString() ); + // bodyMap.put("message" , messageMap ); + // bodyMap.put("message" , "테스트" ); + + // Map retMap = restApiCallUtil.RestApiCallNoAuthKicMsg( bodyMap, "/test/kicMsgTest.do"); + Map retMap = restApiCallUtil.RestApiCallNoAuthKicMsg( bodyMap, "/server/na/notice"); + + strProcRsltCn = retMap.toString(); + strProcRsltCd = "0"; + } + catch(Exception e) + { + strProcRsltCn = e.toString(); + strProcRsltCd = "-2"; + } + } + // 오류처리 + else + { + strProcRsltCn = "알수 없는 구분값"; + strProcRsltCd = (strProcRsltCn.equals("")) ? "0" : "-1"; + } + + LinkedHashMap inputMap = new LinkedHashMap(); + + inputMap.put("procRsltCn" , strProcRsltCn); + inputMap.put("procRsltCd" , strProcRsltCd); + inputMap.put("nctnEsntlId" , tempMap.get("nctnEsntlId")); + + mailKaTalkService.updateNtcnProcSndInfo(inputMap); + } + + //JobDataMap를 통해 Job의 실행 횟수를 받아서 횟수 + 1을한다. + int cnt = (int) dataMap.get("executeCount"); + dataMap.put("executeCount", ++cnt); + dataMap.put("date", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + log.info(" <<<<<<<<<< MailKaTalkSendKiccJob Executed >>>>>>>>>> "); + } + + +} \ No newline at end of file diff --git a/batch/src/main/java/com/urpsys/itmsbatch/cmm/service/CmmUseService.java b/batch/src/main/java/com/urpsys/itmsbatch/cmm/service/CmmUseService.java new file mode 100644 index 00000000..215f90e7 --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/cmm/service/CmmUseService.java @@ -0,0 +1,64 @@ +package com.urpsys.itmsbatch.cmm.service; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.urpsys.itmsbatch.cmm.dao.CmmUseDao; + +/** + * 공토코드 추출하는 비즈니스 구현 클래스를 정의 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.09 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일     수정자      수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.09   나혁제      최초작성
+ *
+ *      
+ */ + +@Service +@Transactional +public class CmmUseService +{ + @Autowired + CmmUseDao cmmUseDao; + + // 공통코드 추출 + public List> selectCmmCodeDetail(LinkedHashMap inMap) throws Exception + { + return cmmUseDao.selectCmmCodeDetail(inMap); + } + + // 조직정보 추출 + public List> selectOgrnztIdDetail(LinkedHashMap inMap) throws Exception + { + return cmmUseDao.selectOgrnztIdDetail(inMap); + } + + // 그룹코드정보 추출 + public List> selectGroupIdDetail(LinkedHashMap inMap) throws Exception + { + return cmmUseDao.selectGroupIdDetail(inMap); + } + + // 상세코드조회 + public LinkedHashMap selectCmmCodeDetailAsCd (LinkedHashMap inMap) throws Exception + { + return cmmUseDao.selectCmmCodeDetailAsCd(inMap); + } + + + +} diff --git a/batch/src/main/java/com/urpsys/itmsbatch/cmm/service/KicInsaInterService.java b/batch/src/main/java/com/urpsys/itmsbatch/cmm/service/KicInsaInterService.java new file mode 100644 index 00000000..b11fbc0d --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/cmm/service/KicInsaInterService.java @@ -0,0 +1,126 @@ +package com.urpsys.itmsbatch.cmm.service; + +import java.util.LinkedHashMap; +import java.util.List; + +import javax.annotation.Resource; + +import org.egovframe.rte.fdl.idgnr.EgovIdGnrService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.urpsys.basebatch.common.util.CommonUtil; +import com.urpsys.itmsbatch.cmm.dao.KicItsmDao; +import com.urpsys.itmsbatch.cmm.excute.KicInsaInterJob; +import com.urpsys.kicinsa.dao.KicGroupwareDao; + +import lombok.extern.slf4j.Slf4j; + +/** + * kic 인사시스템 연동 비즈니스 구현 클래스를 정의 + * + * @author urp 인프라본부 나혁제 + * @since 2025.06.16 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일     수정자      수정내용
+ * -----------  ---------    ------------------------
+ * 2025.06.06   나혁제      최초작성
+ *
+ *      
+ */ + +@Slf4j +@Service +@Transactional +public class KicInsaInterService +{ + @Autowired + KicGroupwareDao groupwareDao; + + @Autowired + KicItsmDao kicItsmDao; + + /** Message ID Generation 부서ID */ + @Resource(name = "egovDeptManageIdGnrService") + private EgovIdGnrService egovDeptManageIdGnrService; + + /** egovUsrCnfrmIdGnrService usr_id */ + @Resource(name="egovUsrCnfrmIdGnrService") + private EgovIdGnrService idgenUseService; + + // 인사시스템 연동처리 + public void kicInsaItsmInter() throws Exception + { + List> listKicInsaInfo = groupwareDao.getKicInsaList(); + + LinkedHashMap mapInsUpd = new LinkedHashMap<>(); + + for(LinkedHashMap mapTemp : listKicInsaInfo) + { + String strKicOrgId = (String)mapTemp.get("deptCode" ); + String strKicOrgIdNm = (String)mapTemp.get("deptName" ); + String strUserCode = (String)mapTemp.get("userCode" ); + + if(strUserCode.length() > 20) + { + log.info("20자리 오버 strUserCode : {}", strUserCode); + continue; + } + + // 부서 존재 여부 조회 + String strItsmsOrgId = kicItsmDao.selectItmsOrgId(strKicOrgId); + + // Itsm 조직정보가 없는경우 새롭게 추출 + if(strItsmsOrgId == null || strItsmsOrgId.equals("")) + { + strItsmsOrgId = egovDeptManageIdGnrService.getNextStringId(); + + mapInsUpd = new LinkedHashMap<>(); + + mapInsUpd.put("orgId" , strItsmsOrgId ); + mapInsUpd.put("kicOrgId" , strKicOrgId ); + mapInsUpd.put("kicOrgIdNm" , strKicOrgIdNm ); + + kicItsmDao.insertKicOrgMap (mapInsUpd); + kicItsmDao.insertDeptManage(mapInsUpd); + } + + // ITSM 사용자 정보 조회 + LinkedHashMap mapItmsUser = kicItsmDao.selectItsmUser((String)mapTemp.get("userCode")); + + String strUniqId = ""; + // String strUniqId = CommonUtil.nvl( mapItmsUser.get("uniqId") ); + + // ITMS 사용자 정보가 없는경우 입력처리(insert) + if(mapItmsUser == null ) + { + strUniqId = idgenUseService.getNextStringId(); + + mapTemp.put("uniqId", strUniqId); + mapTemp.put("orgId" , strItsmsOrgId ); + + kicItsmDao.insertItsmUser (mapTemp); // 사용자 정보 입력 + kicItsmDao.insertItsmUserMenu(mapTemp); // 사용자 기본메뉴정보 입력 + } + // ITSM 정보가 있는경우(update) + else + { + strUniqId = CommonUtil.nvl( mapItmsUser.get("uniqId") ); + + mapTemp.put("uniqId", strUniqId ); + mapTemp.put("orgId" , strItsmsOrgId ); + + kicItsmDao.updateItsmUser(mapTemp); + } + } + } + + +} diff --git a/batch/src/main/java/com/urpsys/itmsbatch/cmm/service/MailKaTalkService.java b/batch/src/main/java/com/urpsys/itmsbatch/cmm/service/MailKaTalkService.java new file mode 100644 index 00000000..add892aa --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/cmm/service/MailKaTalkService.java @@ -0,0 +1,52 @@ +package com.urpsys.itmsbatch.cmm.service; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.urpsys.basebatch.dao.QuartzDao; +import com.urpsys.itmsbatch.cmm.dao.MailKaTalkDao; + +/** + * 알림(메일,카톡) 처리에 관한 일반 로직 구현 클래스를 정의 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.02 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일     수정자      수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.02   나혁제      최초작성
+ *
+ *      
+ */ + +@Service +@Transactional +public class MailKaTalkService +{ + @Autowired + MailKaTalkDao mailKaTalkDao; + + // 전송대상 목록 조회 + public List> selectNctnProcSndInfo() + { + return mailKaTalkDao.selectNctnProcSndInfo(); + } + + // 전송대상 전송후 처리결과 갱신 + public int updateNtcnProcSndInfo(LinkedHashMap inMap) + { + return mailKaTalkDao.updateNtcnProcSndInfo(inMap); + } + + +} diff --git a/batch/src/main/java/com/urpsys/itmsbatch/srm/dao/IncidentHistDao.java b/batch/src/main/java/com/urpsys/itmsbatch/srm/dao/IncidentHistDao.java new file mode 100644 index 00000000..3f1c4f6e --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/srm/dao/IncidentHistDao.java @@ -0,0 +1,36 @@ +package com.urpsys.itmsbatch.srm.dao; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * 인스던트 관련 Dao Class + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.24 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일       수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.24   나혁제         최초작성
+ *
+ *  
+ */ + +@Mapper +@Repository +public interface IncidentHistDao +{ + public List> getIncidentHistList() ; // 인스던트 이력 데이터 추출 + public int updateIncidentHist (LinkedHashMap inMap) ; // 인스던트 이력 데이터 변경 + + +} diff --git a/batch/src/main/java/com/urpsys/itmsbatch/srm/dao/ReportHistDao.java b/batch/src/main/java/com/urpsys/itmsbatch/srm/dao/ReportHistDao.java new file mode 100644 index 00000000..fa71e4a3 --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/srm/dao/ReportHistDao.java @@ -0,0 +1,36 @@ +package com.urpsys.itmsbatch.srm.dao; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * Report 관련 Dao Class + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.24 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일       수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.24   나혁제         최초작성
+ *
+ *  
+ */ + +@Mapper +@Repository +public interface ReportHistDao +{ + public List> getReportHistList() ; // 보고서 이력 데이터 추출 + public int updateReportHist (LinkedHashMap inMap) ; // 보고서 이력 데이터 변경 + + +} diff --git a/batch/src/main/java/com/urpsys/itmsbatch/srm/excute/SendSearchSysJob.java b/batch/src/main/java/com/urpsys/itmsbatch/srm/excute/SendSearchSysJob.java new file mode 100644 index 00000000..806f2e7e --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/srm/excute/SendSearchSysJob.java @@ -0,0 +1,330 @@ +package com.urpsys.itmsbatch.srm.excute; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import org.quartz.DisallowConcurrentExecution; +import org.quartz.Job; +import org.quartz.JobDataMap; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.PersistJobDataAfterExecution; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import com.urpsys.basebatch.common.util.CommonUtil; +import com.urpsys.basebatch.common.util.RestApiCallUtil; +import com.urpsys.itmsbatch.bbs.service.BbsInfoHistService; +import com.urpsys.itmsbatch.srm.service.IncidentHistService; +import com.urpsys.itmsbatch.srm.service.ReportHistService; + +import lombok.extern.slf4j.Slf4j; + +/** + * 검색 데이터 검색 시스템 송신 실행 클래스 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.24 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일        수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.24    나혁제         최초작성
+ *
+ * 
+ */ + +@Slf4j +@Component +@PersistJobDataAfterExecution +@DisallowConcurrentExecution +public class SendSearchSysJob implements Job +{ + @Autowired + IncidentHistService incidentHistService; + + @Autowired + ReportHistService reportHistService; + + @Autowired + BbsInfoHistService bbsInfoHistService; + + @Autowired + RestApiCallUtil restApiCallUtil; + + + @Override + public void execute(JobExecutionContext context) throws JobExecutionException + { + log.info(" >>>>>>>>>> SendSearchSysJob Executed <<<<<<<<<< "); + + JobDataMap dataMap = context.getJobDetail().getJobDataMap(); + + log.info("dataMap date : {}", dataMap.get("date")); + log.info("dataMap executeCount : {}", dataMap.get("executeCount")); + + SearchSendIncidentHist(); + SearchSendReportHist(); + SearchSendBbsInfoHist(); + + //JobDataMap를 통해 Job의 실행 횟수를 받아서 횟수 + 1을한다. + int cnt = (int) dataMap.get("executeCount"); + + dataMap.put("executeCount", ++cnt); + dataMap.put("date", LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); + + log.info(" <<<<<<<<<< SendSearchSysJob Executed >>>>>>>>>> "); + } + + /** + * 인스던트 이력 데이터 검색시스템 전송처리 + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.04.24 + */ + public void SearchSendIncidentHist() + { + // 인스던트 검색시스템 전송 대상 조회 + List> listIncidentHist = incidentHistService.getIncidentHistList(); + + int iTotalProCnt=0; + for(LinkedHashMap tempMap : listIncidentHist) + { + // if(iTotalProCnt > 10) break; + + Map bodyMap = new LinkedHashMap(); + Map metaDataMap = new LinkedHashMap(); + + metaDataMap.put("vc_incident_num" , tempMap.get("vcIncidentNum")); + metaDataMap.put("vc_charge_user" , tempMap.get("vcChargeUser")); + + bodyMap.put("id" , tempMap.get("inIncidentSeq")); + bodyMap.put("title" , tempMap.get("vcIncidentTitle")); + bodyMap.put("text" , CommonUtil.base64decode((String)tempMap.get("txIncidentBody")) ); + bodyMap.put("user" , tempMap.get("vcRegUser")); + bodyMap.put("last_date" , tempMap.get("dtReceiptDatetime")); + + bodyMap.put("metadata", metaDataMap); + + String strUrl = "/api/v1/1/"; + + if(tempMap.get("eventType").equals("INSERT")) + { + strUrl = strUrl+"C"; + } + else if(tempMap.get("eventType").equals("UPDATE")) + { + strUrl = strUrl+"U"; + } + else if(tempMap.get("eventType").equals("DELETE")) + { + strUrl = strUrl+"D"; + } + + // 기본데이터 추출 + int inIncidentSeq = (int)tempMap.get("inIncidentSeq"); + String strEventTime = (String)tempMap.get("eventTime"); + String strEventType = (String)tempMap.get("eventType"); + String strSrchProcYn = ""; + String strSrchProcSndMsg = ""; + + try + { + Map returnMap = restApiCallUtil.RestApiCallNoAuth(bodyMap, strUrl); + + strSrchProcYn = "Y"; + strSrchProcSndMsg = returnMap.toString(); + } + catch(Exception e) + { + e.printStackTrace(); + + strSrchProcYn = "E"; + strSrchProcSndMsg = e.toString(); + } + + LinkedHashMap inMap = new LinkedHashMap(); + + inMap.put("inIncidentSeq" , inIncidentSeq ); + inMap.put("eventTime" , strEventTime ); + inMap.put("eventType" , strEventType ); + inMap.put("srchProcYn" , strSrchProcYn ); + inMap.put("srchProcSndMsg" , strSrchProcSndMsg); + + incidentHistService.updateIncidentHist(inMap); + + iTotalProCnt++; + } + } + + /** + * 보고서 이력 데이터 검색시스템 전송처리 + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.04.24 + */ + public void SearchSendReportHist() + { + // 인스던트 검색시스템 전송 대상 조회 + List> listReportHist = reportHistService.getReportHistList(); + + int iTotalProCnt=0; + for(LinkedHashMap tempMap : listReportHist) + { + // if(iTotalProCnt > 0) break; + + Map bodyMap = new LinkedHashMap(); + Map metaDataMap = new LinkedHashMap(); + + metaDataMap.put("vc_report_id" , tempMap.get("vcReportId")); + metaDataMap.put("in_task" , tempMap.get("inTask")); + + bodyMap.put("id" , tempMap.get("inReportSeq")); + bodyMap.put("title" , tempMap.get("vcReportTitle")); + bodyMap.put("text" , CommonUtil.base64decode((String)tempMap.get("txReportBody")) ); + bodyMap.put("user" , tempMap.get("vcRegUser")); + bodyMap.put("last_date" , tempMap.get("dtLastUpdate")); + + bodyMap.put("metadata", metaDataMap); + + String strUrl = "/api/v1/2/"; + + if(tempMap.get("eventType").equals("INSERT")) + { + strUrl = strUrl+"C"; + } + else if(tempMap.get("eventType").equals("UPDATE")) + { + strUrl = strUrl+"U"; + } + else if(tempMap.get("eventType").equals("DELETE")) + { + strUrl = strUrl+"D"; + } + + // 기본데이터 추출 + int inReportSeq = CommonUtil.zeroConvert(tempMap.get("inReportSeq")); + String strEventTime = (String)tempMap.get("eventTime"); + String strEventType = (String)tempMap.get("eventType"); + String strSrchProcYn = ""; + String strSrchProcSndMsg = ""; + + try + { + Map returnMap = restApiCallUtil.RestApiCallNoAuth(bodyMap, strUrl); + + strSrchProcYn = "Y"; + strSrchProcSndMsg = returnMap.toString(); + } + catch(Exception e) + { + e.printStackTrace(); + + strSrchProcYn = "E"; + strSrchProcSndMsg = e.toString(); + } + + LinkedHashMap inMap = new LinkedHashMap(); + + inMap.put("inReportSeq" , inReportSeq ); + inMap.put("eventTime" , strEventTime ); + inMap.put("eventType" , strEventType ); + inMap.put("srchProcYn" , strSrchProcYn ); + inMap.put("srchProcSndMsg" , strSrchProcSndMsg); + + reportHistService.updateReportHist(inMap); + + iTotalProCnt++; + } + } + + /** + * 게시물 이력 데이터 검색시스템 전송처리 + * @author urp 인프라본부 나혁제 + * 작성일 : 2025.04.24 + */ + public void SearchSendBbsInfoHist() + { + // 인스던트 검색시스템 전송 대상 조회 + List> listBbsInfoHist = bbsInfoHistService.getBbsInfoHistList(); + + int iTotalProCnt=0; + for(LinkedHashMap tempMap : listBbsInfoHist ) + { + // if(iTotalProCnt > 0) break; + + Map bodyMap = new LinkedHashMap(); + Map metaDataMap = new LinkedHashMap(); + + metaDataMap.put("bbs_id" , tempMap.get("bbsId")); + metaDataMap.put("ntt_no" , tempMap.get("nttNo")); + + bodyMap.put("id" , tempMap.get("nttId") ); + bodyMap.put("title" , tempMap.get("nttSj") ); + bodyMap.put("text" , tempMap.get("nttCn") ); + bodyMap.put("user" , tempMap.get("frstRegisterNm")); + bodyMap.put("last_date" , tempMap.get("frstRegisterPnttm")); + + bodyMap.put("metadata", metaDataMap); + + String strUrl = "/api/v1/3/"; + + if(tempMap.get("eventType").equals("INSERT")) + { + strUrl = strUrl+"C"; + } + else if(tempMap.get("eventType").equals("UPDATE")) + { + strUrl = strUrl+"U"; + } + else if(tempMap.get("eventType").equals("DELETE")) + { + strUrl = strUrl+"D"; + } + + // 기본데이터 추출 + int nttId = CommonUtil.zeroConvert(tempMap.get("nttId")); + String strEventTime = (String)tempMap.get("eventTime"); + String strEventType = (String)tempMap.get("eventType"); + String strSrchProcYn = ""; + String strSrchProcSndMsg = ""; + + try + { + Map returnMap = restApiCallUtil.RestApiCallNoAuth(bodyMap, strUrl); + + strSrchProcYn = "Y"; + strSrchProcSndMsg = returnMap.toString(); + } + catch(Exception e) + { + e.printStackTrace(); + + strSrchProcYn = "E"; + strSrchProcSndMsg = e.toString(); + } + + LinkedHashMap inMap = new LinkedHashMap(); + + inMap.put("nttId" , nttId ); + inMap.put("eventTime" , strEventTime ); + inMap.put("eventType" , strEventType ); + inMap.put("srchProcYn" , strSrchProcYn ); + inMap.put("srchProcSndMsg" , strSrchProcSndMsg); + + bbsInfoHistService.updateBbsInfoHist(inMap); + + iTotalProCnt++; + } + } + + + +} \ No newline at end of file diff --git a/batch/src/main/java/com/urpsys/itmsbatch/srm/service/IncidentHistService.java b/batch/src/main/java/com/urpsys/itmsbatch/srm/service/IncidentHistService.java new file mode 100644 index 00000000..d16e7b6e --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/srm/service/IncidentHistService.java @@ -0,0 +1,52 @@ +package com.urpsys.itmsbatch.srm.service; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.urpsys.itmsbatch.srm.dao.IncidentHistDao; + +/** + * 인스던트 정보 관한 일반 로직 구현 클래스를 정의 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.02 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일     수정자      수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.02   나혁제      최초작성
+ *
+ *      
+ */ + +@Service +@Transactional +public class IncidentHistService +{ + @Autowired + IncidentHistDao svcDeskDao; + + // 작업정보 추출 목록 + public List> getIncidentHistList() + { + return svcDeskDao.getIncidentHistList(); + } + + // 배치작업 인자 정보 추출 목록 + public int updateIncidentHist (LinkedHashMap inMap) + { + return svcDeskDao.updateIncidentHist(inMap); + } + + + +} diff --git a/batch/src/main/java/com/urpsys/itmsbatch/srm/service/ReportHistService.java b/batch/src/main/java/com/urpsys/itmsbatch/srm/service/ReportHistService.java new file mode 100644 index 00000000..821eceb1 --- /dev/null +++ b/batch/src/main/java/com/urpsys/itmsbatch/srm/service/ReportHistService.java @@ -0,0 +1,58 @@ +package com.urpsys.itmsbatch.srm.service; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import com.urpsys.itmsbatch.srm.dao.ReportHistDao; +import com.urpsys.kicinsa.dao.KicGroupwareDao; + +/** + * 보고서 정보 관한 일반 로직 구현 클래스를 정의 + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.02 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일     수정자      수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.02   나혁제      최초작성
+ *
+ *      
+ */ + +@Service +@Transactional +public class ReportHistService +{ + @Autowired + ReportHistDao reportDao; + + // @Autowired + // GroupwareDao groupwareDao; + + // 보고서 이력 추출 목록 + public List> getReportHistList() + { + // groupwareDao.getInsaList(); + return reportDao.getReportHistList(); + } + + // 보고서 이력 검색시스쳄 송신 이력 변경 + public int updateReportHist (LinkedHashMap inMap) + { + + return reportDao.updateReportHist(inMap); + } + + + +} diff --git a/batch/src/main/java/com/urpsys/kicinsa/dao/KicGroupwareDao.java b/batch/src/main/java/com/urpsys/kicinsa/dao/KicGroupwareDao.java new file mode 100644 index 00000000..b3fb22e2 --- /dev/null +++ b/batch/src/main/java/com/urpsys/kicinsa/dao/KicGroupwareDao.java @@ -0,0 +1,36 @@ +package com.urpsys.kicinsa.dao; + +import java.util.LinkedHashMap; +import java.util.List; + +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Repository; + +/** + * Report 관련 Dao Class + * + * @author urp 인프라본부 나혁제 + * @since 2025.04.24 + * @version 1.0.0 + * @see + * + *
+ *
+ * << 개정이력(Modification information) >>
+ *
+ *   수정일       수정자         수정내용
+ * -----------  ---------    ------------------------
+ * 2025.04.24   나혁제         최초작성
+ *
+ *  
+ */ + +@Mapper +@Repository +public interface KicGroupwareDao +{ + public List> getKicInsaList() ; // 보고서 이력 데이터 추출 + + + +} diff --git a/batch/src/main/resources/application-ccourt.yml b/batch/src/main/resources/application-ccourt.yml new file mode 100644 index 00000000..10f38e37 --- /dev/null +++ b/batch/src/main/resources/application-ccourt.yml @@ -0,0 +1,81 @@ +# 헌법재판소 설정 +# Service port + server: + port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://10.38.101.101:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.168.8.132:1521:XE + username: Lp1nYnFre15DjG/Y36UNWA== ## TEST01 + password: E4SOtjDqqO79BQERc/eaTw== ## 123456 + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://10.38.101.101:48381 # 개발 + # kicc 메일서버 + api_kic_mail_server : http://localhost:9002 + # kicc 메신저 서버 + api_kic_msg_server : http://localhost:9002 + api_kic_msg_key : testKey + client : + \ No newline at end of file diff --git a/batch/src/main/resources/application-infra_server.yml b/batch/src/main/resources/application-infra_server.yml new file mode 100644 index 00000000..67f2132f --- /dev/null +++ b/batch/src/main/resources/application-infra_server.yml @@ -0,0 +1,69 @@ + # URP 인프라 형상서버 + +# Service port + server: + port: 9002 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://109.26.11.21:3307/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://109.26.11.21:48381 + # kicc 메일서버 + api_kic_mail_server : http://localhost:9002 + # kicc 메신저 서버 + api_kic_msg_server : http://localhost:9002 + api_kic_msg_key : testKey + client : + \ No newline at end of file diff --git a/batch/src/main/resources/application-kccf.yml b/batch/src/main/resources/application-kccf.yml new file mode 100644 index 00000000..24a7f9fe --- /dev/null +++ b/batch/src/main/resources/application-kccf.yml @@ -0,0 +1,81 @@ +# 문화원연합회 설정 +# Service port + server: + port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://10.10.10.167:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.168.8.132:1521:XE + username: Lp1nYnFre15DjG/Y36UNWA== ## TEST01 + password: E4SOtjDqqO79BQERc/eaTw== ## 123456 + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://10.10.10.167:48381 # 개발 + # kicc 메일서버 + api_kic_mail_server : http://localhost:9002 + # kicc 메신저 서버 + api_kic_msg_server : http://localhost:9002 + api_kic_msg_key : testKey + client : + \ No newline at end of file diff --git a/batch/src/main/resources/application-keiti_prod.yml b/batch/src/main/resources/application-keiti_prod.yml new file mode 100644 index 00000000..a5642e91 --- /dev/null +++ b/batch/src/main/resources/application-keiti_prod.yml @@ -0,0 +1,85 @@ +# Service port + server: + port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://192.168.100.76:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.10.10.19:1521:gwdev + username: mLq9nSgZHzZBmuOmyvjahQ== + password: C7+TsdsHhTcGiH6JSupSeA== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + # 검색서버 + api_search_server: http://192.168.100.76:48381 + # kicc 메일서버 + api_kic_mail_server : https://devkicmail.kic.go.kr + # api_kic_mail_server : https://kicmail.kic.go.kr + # kicc 메신저 서버 + api_kic_msg_server : http://devtalk.kic.go.kr + api_kic_msg_key : 73f26d49-b014-41a9-a184-24c34c893701 + # api_kic_msg_server : http://talk.kic.go.kr + # api_kic_msg_key : eebe896f-1608-456f-80ff-282d1024c25c + client : keiti + + \ No newline at end of file diff --git a/batch/src/main/resources/application-kic_dev.yml b/batch/src/main/resources/application-kic_dev.yml new file mode 100644 index 00000000..a3f2b797 --- /dev/null +++ b/batch/src/main/resources/application-kic_dev.yml @@ -0,0 +1,85 @@ +# Service port + server: + port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://192.10.10.203:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.10.10.19:1521:gwdev + username: mLq9nSgZHzZBmuOmyvjahQ== + password: C7+TsdsHhTcGiH6JSupSeA== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + # 검색서버 + api_search_server: http://192.10.10.203:48381 + # kicc 메일서버 + api_kic_mail_server : https://devkicmail.kic.go.kr + # api_kic_mail_server : https://kicmail.kic.go.kr + # kicc 메신저 서버 + api_kic_msg_server : http://devtalk.kic.go.kr + api_kic_msg_key : 73f26d49-b014-41a9-a184-24c34c893701 + # api_kic_msg_server : http://talk.kic.go.kr + # api_kic_msg_key : eebe896f-1608-456f-80ff-282d1024c25c + client : kic + + \ No newline at end of file diff --git a/batch/src/main/resources/application-kic_rel.yml b/batch/src/main/resources/application-kic_rel.yml new file mode 100644 index 00000000..1e98c878 --- /dev/null +++ b/batch/src/main/resources/application-kic_rel.yml @@ -0,0 +1,81 @@ +# Service port + server: + port: 12030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://192.10.10.203:3306/ur_itms_rel_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: YvRZ5jyhmB6gwVSUGBOqNMQB00k6OZZSfUH5ZU4GEFs= + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.10.10.242:1521:gwprd2 + username: mLq9nSgZHzZBmuOmyvjahQ== + password: F4KWP/A4aPptqZO9gZUdqg== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://192.10.10.203:49381 + # kicc 메일서버 + api_kic_mail_server : https://kicmail.kic.go.kr + # kicc 메신저 서버 + api_kic_msg_server : http://talk.kic.go.kr + api_kic_msg_key : eebe896f-1608-456f-80ff-282d1024c25c + client : kic + \ No newline at end of file diff --git a/batch/src/main/resources/application-kintex_prod.yml b/batch/src/main/resources/application-kintex_prod.yml new file mode 100644 index 00000000..b289097f --- /dev/null +++ b/batch/src/main/resources/application-kintex_prod.yml @@ -0,0 +1,85 @@ +# Service port + server: + port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://10.2.11.37:3307/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.10.10.19:1521:gwdev + username: mLq9nSgZHzZBmuOmyvjahQ== + password: C7+TsdsHhTcGiH6JSupSeA== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + # 검색서버 + api_search_server: http://10.2.11.37:48381 + # kicc 메일서버 + api_kic_mail_server : https://devkicmail.kic.go.kr + # api_kic_mail_server : https://kicmail.kic.go.kr + # kicc 메신저 서버 + api_kic_msg_server : http://devtalk.kic.go.kr + api_kic_msg_key : 73f26d49-b014-41a9-a184-24c34c893701 + # api_kic_msg_server : http://talk.kic.go.kr + # api_kic_msg_key : eebe896f-1608-456f-80ff-282d1024c25c + client : kintex + + \ No newline at end of file diff --git a/batch/src/main/resources/application-kordi.yml b/batch/src/main/resources/application-kordi.yml new file mode 100644 index 00000000..5265b08f --- /dev/null +++ b/batch/src/main/resources/application-kordi.yml @@ -0,0 +1,82 @@ +# 노인인력개발원 + +# Service port +# server: +# port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://192.168.102.204:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.168.8.132:1521:XE + username: Lp1nYnFre15DjG/Y36UNWA== ## TEST01 + password: E4SOtjDqqO79BQERc/eaTw== ## 123456 + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://192.168.102.204:48381 # 개발 + # kicc 메일서버 + api_kic_mail_server : http://localhost:9002 + # kicc 메신저 서버 + api_kic_msg_server : http://localhost:9002 + api_kic_msg_key : testKey + client : + \ No newline at end of file diff --git a/batch/src/main/resources/application-local.yml b/batch/src/main/resources/application-local.yml new file mode 100644 index 00000000..182758b2 --- /dev/null +++ b/batch/src/main/resources/application-local.yml @@ -0,0 +1,80 @@ +# Service port +# server: +# port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://192.168.8.131:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.168.8.132:1521:XE + username: Lp1nYnFre15DjG/Y36UNWA== ## TEST01 + password: E4SOtjDqqO79BQERc/eaTw== ## 123456 + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://192.168.8.138:48381 # 검색시스템 연동 + # kicc 메일서버 + api_kic_mail_server : http://localhost:9002 + # kicc 메신저 서버 + api_kic_msg_server : http://localhost:9002 + api_kic_msg_key : testKey + client : + \ No newline at end of file diff --git a/batch/src/main/resources/application-nibr.yml b/batch/src/main/resources/application-nibr.yml new file mode 100644 index 00000000..c01304aa --- /dev/null +++ b/batch/src/main/resources/application-nibr.yml @@ -0,0 +1,81 @@ +# 국립생물자원관 설정 +# Service port + server: + port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://10.101.130.249:43306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.168.8.132:1521:XE + username: Lp1nYnFre15DjG/Y36UNWA== ## TEST01 + password: E4SOtjDqqO79BQERc/eaTw== ## 123456 + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://10.101.130.249:48381 # 개발 + # kicc 메일서버 + api_kic_mail_server : http://localhost:9002 + # kicc 메신저 서버 + api_kic_msg_server : http://localhost:9002 + api_kic_msg_key : testKey + client : + \ No newline at end of file diff --git a/batch/src/main/resources/application-nowon.yml b/batch/src/main/resources/application-nowon.yml new file mode 100644 index 00000000..a2d55830 --- /dev/null +++ b/batch/src/main/resources/application-nowon.yml @@ -0,0 +1,80 @@ +# Service port +# server: +# port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://98.11.2.93:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.168.8.132:1521:XE + username: Lp1nYnFre15DjG/Y36UNWA== ## TEST01 + password: E4SOtjDqqO79BQERc/eaTw== ## 123456 + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://98.11.2.93:48381 # 개발 + # kicc 메일서버 + api_kic_mail_server : http://localhost:9002 + # kicc 메신저 서버 + api_kic_msg_server : http://localhost:9002 + api_kic_msg_key : testKey + client : + \ No newline at end of file diff --git a/batch/src/main/resources/application-sungshin.yml b/batch/src/main/resources/application-sungshin.yml new file mode 100644 index 00000000..32d9177d --- /dev/null +++ b/batch/src/main/resources/application-sungshin.yml @@ -0,0 +1,81 @@ +# 헌법재판소 설정 +# Service port + server: + port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://172.16.25.167:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.168.8.132:1521:XE + username: Lp1nYnFre15DjG/Y36UNWA== ## TEST01 + password: E4SOtjDqqO79BQERc/eaTw== ## 123456 + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://172.16.25.167:48381 # 개발 + # kicc 메일서버 + api_kic_mail_server : http://localhost:9002 + # kicc 메신저 서버 + api_kic_msg_server : http://localhost:9002 + api_kic_msg_key : testKey + client : + \ No newline at end of file diff --git a/batch/src/main/resources/application-unikorea.yml b/batch/src/main/resources/application-unikorea.yml new file mode 100644 index 00000000..bfbcd70e --- /dev/null +++ b/batch/src/main/resources/application-unikorea.yml @@ -0,0 +1,81 @@ +# 헌법재판소 설정 +# Service port + server: + port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://10.63.121.150:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.168.8.132:1521:XE + username: Lp1nYnFre15DjG/Y36UNWA== ## TEST01 + password: E4SOtjDqqO79BQERc/eaTw== ## 123456 + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://10.63.121.150:48381 # 개발 + # kicc 메일서버 + api_kic_mail_server : http://localhost:9002 + # kicc 메신저 서버 + api_kic_msg_server : http://localhost:9002 + api_kic_msg_key : testKey + client : + \ No newline at end of file diff --git a/batch/src/main/resources/application-vmware.yml b/batch/src/main/resources/application-vmware.yml new file mode 100644 index 00000000..f35138eb --- /dev/null +++ b/batch/src/main/resources/application-vmware.yml @@ -0,0 +1,68 @@ +# Service port +# server: +# port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://192.168.8.140:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm +# api_search_server: http://109.26.11.21:48381 + api_search_server: http://192.168.8.140:48381 + # kicc 메일서버 + api_kic_mail_server : http://localhost:9002 + # kicc 메신저 서버 + api_kic_msg_server : http://localhost:9002 + api_kic_msg_key : testKey + client : + \ No newline at end of file diff --git a/batch/src/main/resources/application-yp21.yml b/batch/src/main/resources/application-yp21.yml new file mode 100644 index 00000000..02b78c9e --- /dev/null +++ b/batch/src/main/resources/application-yp21.yml @@ -0,0 +1,80 @@ +# Service port +# server: +# port: 11030 + +# JPA 설정, JSP 설정 + spring: + devtools: + livereload: + enabled: true + +# Primary db information + primarydb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:mariadb://105.29.2.26:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true + username: g9IwFesTyIloXVpUnfOX0g== + password: E4SOtjDqqO79BQERc/eaTw== + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + + # kicinsadb db information + kicinsadb: + driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy + jdbcUrl: jdbc:log4jdbc:oracle:thin:@192.168.8.132:1521:XE + username: Lp1nYnFre15DjG/Y36UNWA== ## TEST01 + password: E4SOtjDqqO79BQERc/eaTw== ## 123456 + maximumPoolSize: 35 + minimumIdle: 2 + connectionTimeout: 3000 + idleTimeout: 300000 + testOnBorrow: true + validationQuery: SELECT 1 + +# SQL Log 관련 setting + log4jdbc: + spylogdelegator: + name: net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + dump: + sql: + maxlinelength: 0 + + logging.level.jdbc.sqltiming: false + logging.level.jdbc.audit: false + logging.level.jdbc.resultset: false + logging.level.jdbc.connection: false + +# 개발중 + logging.level.jdbc.sqlonly: info + logging.level.jdbc.resultsettable: info +# 운영중 +# logging.level.jdbc.sqlonly: false +# logging.level.jdbc.resultsettable: false +# custom 설정 + custom: + api_server : null + sendmail: + id: tW9kMpd3SiAnf3RQBOZapw== + password: Tkkj8p2PYfZ+AmpQMPLHF8ksj8vrtJouj6xczU8ShM8= + port: 587 + host: smtp.gmail.com + sendEmail: hhjj0701@gmail.com + senderName: 나혁제 + socketFactory-class: javax.net.ssl.SSLSocketFactory + supplier: gmail.com + sendkakaoTalk: + serviceId: ncp:kkobizmsg:kr:349487487272:uritms + accessKey: ncp_iam_BPAMKR4Le2ali6vfRCsG + secretKey: ncp_iam_BPKMKRIOXMe91u5YQoPjmk5WZ2A1FNEcoR + friendId: 유알피-uritsm + api_search_server: http://105.29.2.26:48381 # 개발 + # kicc 메일서버 + api_kic_mail_server : http://localhost:9002 + # kicc 메신저 서버 + api_kic_msg_server : http://localhost:9002 + api_kic_msg_key : testKey + client : + \ No newline at end of file diff --git a/batch/src/main/resources/log4jdbc.log4j2.properties b/batch/src/main/resources/log4jdbc.log4j2.properties new file mode 100644 index 00000000..85d1ede9 --- /dev/null +++ b/batch/src/main/resources/log4jdbc.log4j2.properties @@ -0,0 +1,2 @@ +log4jdbc.spylogdelegator.name = net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator +log4jdbc.dump.sql.maxlinelength=0 \ No newline at end of file diff --git a/batch/src/main/resources/logback-spring.xml b/batch/src/main/resources/logback-spring.xml new file mode 100644 index 00000000..825e85e5 --- /dev/null +++ b/batch/src/main/resources/logback-spring.xml @@ -0,0 +1,102 @@ + + + ${HOSTNAME} + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger{36} - %msg%n + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/src/main/resources/mapper/kicinsadb/config/MybatisConfig.xml b/batch/src/main/resources/mapper/kicinsadb/config/MybatisConfig.xml new file mode 100644 index 00000000..1d2a105d --- /dev/null +++ b/batch/src/main/resources/mapper/kicinsadb/config/MybatisConfig.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/src/main/resources/mapper/kicinsadb/sqlmap/insa/KicGroupwareMapper.xml b/batch/src/main/resources/mapper/kicinsadb/sqlmap/insa/KicGroupwareMapper.xml new file mode 100644 index 00000000..28aa8899 --- /dev/null +++ b/batch/src/main/resources/mapper/kicinsadb/sqlmap/insa/KicGroupwareMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/src/main/resources/mapper/kicinsadb/sqlmap/insa/KicGroupwareMapper.xml.20250701 b/batch/src/main/resources/mapper/kicinsadb/sqlmap/insa/KicGroupwareMapper.xml.20250701 new file mode 100644 index 00000000..71736f70 --- /dev/null +++ b/batch/src/main/resources/mapper/kicinsadb/sqlmap/insa/KicGroupwareMapper.xml.20250701 @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/src/main/resources/mapper/primarydb/config/MybatisConfig.xml b/batch/src/main/resources/mapper/primarydb/config/MybatisConfig.xml new file mode 100644 index 00000000..78cf9a7c --- /dev/null +++ b/batch/src/main/resources/mapper/primarydb/config/MybatisConfig.xml @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/src/main/resources/mapper/primarydb/sqlmap/QuartzMapper.xml b/batch/src/main/resources/mapper/primarydb/sqlmap/QuartzMapper.xml new file mode 100644 index 00000000..34d91a35 --- /dev/null +++ b/batch/src/main/resources/mapper/primarydb/sqlmap/QuartzMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/src/main/resources/mapper/primarydb/sqlmap/bbs/BbsInfoHistMapper.xml b/batch/src/main/resources/mapper/primarydb/sqlmap/bbs/BbsInfoHistMapper.xml new file mode 100644 index 00000000..d3261fa3 --- /dev/null +++ b/batch/src/main/resources/mapper/primarydb/sqlmap/bbs/BbsInfoHistMapper.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + /* BbsInfoHistDao.updateBbsInfoHist */ + UPDATE TB_BBS_INFO_HIST + SET SRCH_PROC_YN = #{srchProcYn} + , SRCH_PROC_SND_TM = NOW() + , SRCH_PROC_SND_MSG = #{srchProcSndMsg} + WHERE NTT_ID = #{nttId} + AND EVENT_TIME = #{eventTime} + AND EVENT_TYPE = #{eventType} + + + + + + + + + + \ No newline at end of file diff --git a/batch/src/main/resources/mapper/primarydb/sqlmap/cmm/CmmUseMapper.xml b/batch/src/main/resources/mapper/primarydb/sqlmap/cmm/CmmUseMapper.xml new file mode 100644 index 00000000..7fb44af1 --- /dev/null +++ b/batch/src/main/resources/mapper/primarydb/sqlmap/cmm/CmmUseMapper.xml @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/batch/src/main/resources/mapper/primarydb/sqlmap/cmm/KicItsmMapper.xml b/batch/src/main/resources/mapper/primarydb/sqlmap/cmm/KicItsmMapper.xml new file mode 100644 index 00000000..f5babd49 --- /dev/null +++ b/batch/src/main/resources/mapper/primarydb/sqlmap/cmm/KicItsmMapper.xml @@ -0,0 +1,182 @@ + + + + + + + + + /* KicItsmDao.insertDeptManage */ + INSERT INTO TB_KIC_ORG_MAP + ( ORG_ID + , KIC_ORGID + , KIC_ORGID_NM + , REG_DTM + ) + VALUES + ( #{orgId} + , #{kicOrgId} + , #{kicOrgIdNm} + , SYSDATE() + ) + + + + + /* KicItsmDao.insertDeptManage */ + INSERT INTO TB_ORG_INFO + ( ORG_ID + , ORG_NM + , ORG_DESC + ) + VALUES + ( #{orgId} + , #{kicOrgIdNm} + , #{kicOrgIdNm}) + + + + + + + + /* KicItsmDao.insertItsmUser */ + INSERT INTO TB_TASK_USER_INFO + ( ESNTL_ID + , TASK_USER_ID + , USER_NM + , PWD + , EMPNO + , SEX_CD + , REGN_NO + , HOUSE_MIDDLE_TELNO + , HOUSE_END_TELNO + , OFFM_TELNO + , MOVE_TELNO + , EML_ADDR + , JBPS_NM + , ORG_ID + , USER_STACD + , JOIN_DTM + , LAST_PWD_CHG_DTM + , HOUSE_ADRES + , PWD_HINT + , PWD_RANS + , ZIP_NO + , OTSD_CONN_YN + ) + VALUES ( + #{uniqId} + , #{userCode} + , #{userName} + , '$2a$10$ysPl0nYOLZXSVemDz1HQFukyaiSs05J9iwdBtwWxK7hrXrdG0MN2W' + , #{userCode} + , '' + , '0000' + , '0000' + , '0000' + , '' + , #{mobile} + , #{mailAddress} + , #{jobPositionName} + , #{orgId} + , CASE WHEN ISNULL(#{retireDate}) || #{retireDate} = '' THEN 'P' + ELSE 'D' + END + , sysdate() + , sysdate() + , '주소없음' + , 'P01' + , '한국투자공사' + , '' + , 'Y' + ) + + + + + + /* KicItsmDao.insertItsmUserMenu */ + INSERT INTO TB_USER_CRYP_CNF + ( CRYP_CNF_TRG_ID + , MEM_TYCD + , AUTH_CD + ) + VALUES ( + #{uniqId} + , 'USR03' + , 'ROLE_EMPTY' + ) + + + + /* KicItsmDao.insertItsmUser */ + UPDATE TB_TASK_USER_INFO + SET USER_NM = #{userName} + , MOVE_TELNO = #{mobile} + , EML_ADDR = #{mailAddress} + , JBPS_NM = #{jobPositionName} + , ORG_ID = #{orgId} + , USER_STACD = CASE WHEN ISNULL(#{retireDate}) || #{retireDate} = '' THEN 'P' + ELSE 'D' + END + , LAST_PWD_CHG_DTM = sysdate() + , OTSD_CONN_YN = 'Y' + WHERE ESNTL_ID = #{uniqId} + + + + + + + + + + + + + diff --git a/batch/src/main/resources/mapper/primarydb/sqlmap/cmm/KicItsmMapper.xml,20250701 b/batch/src/main/resources/mapper/primarydb/sqlmap/cmm/KicItsmMapper.xml,20250701 new file mode 100644 index 00000000..7f1246ca --- /dev/null +++ b/batch/src/main/resources/mapper/primarydb/sqlmap/cmm/KicItsmMapper.xml,20250701 @@ -0,0 +1,167 @@ + + + + + + + + + /* KicItsmDao.insertDeptManage */ + INSERT INTO TB_KIC_ORG_MAP + ( ORG_ID + , KIC_ORGID + , KIC_ORGID_NM + , REG_DTM + ) + VALUES + ( #{orgId} + , #{kicOrgId} + , #{kicOrgIdNm} + , SYSDATE() + ) + + + + + /* KicItsmDao.insertDeptManage */ + INSERT INTO TB_ORG_INFO + ( ORG_ID + , ORG_NM + , ORG_DESC + ) + VALUES + ( #{orgId} + , #{kicOrgIdNm} + , #{kicOrgIdNm}) + + + + + + + + /* KicItsmDao.insertItsmUser */ + INSERT INTO TB_TASK_USER_INFO + ( ESNTL_ID + , TASK_USER_ID + , USER_NM + , PWD + , EMPNO + , SEX_CD + , REGN_NO + , HOUSE_MIDDLE_TELNO + , HOUSE_END_TELNO + , OFFM_TELNO + , MOVE_TELNO + , EML_ADDR + , JBPS_NM + , ORG_ID + , USER_STACD + , JOIN_DTM + , LAST_PWD_CHG_DTM + , HOUSE_ADRES + , PWD_HINT + , PWD_RANS + , ZIP_NO + ) + VALUES ( + #{uniqId} + , #{empId} + , #{empNm} + , '$2a$10$ysPl0nYOLZXSVemDz1HQFukyaiSs05J9iwdBtwWxK7hrXrdG0MN2W' + , #{empId} + , #{sex} + , '0000' + , '0000' + , '0000' + , #{tel} + , #{htel} + , #{emailComp} + , #{posgrdCdNm} + , #{orgId} + , CASE WHEN #{serviceCd} = 'Y' THEN 'P' + WHEN #{serviceCd} = 'H' THEN 'A' + WHEN #{serviceCd} = 'N' THEN 'D' + END + , sysdate() + , sysdate() + , '주소없음' + , 'P01' + , '한국투자공사' + , '' + ) + + + + /* KicItsmDao.insertItsmUser */ + UPDATE TB_TASK_USER_INFO + SET USER_NM = #{empNm} + , SEX_CD = #{sex} + , OFFM_TELNO = #{tel} + , MOVE_TELNO = #{htel} + , EML_ADDR = #{emailComp} + , JBPS_NM = #{posgrdCdNm} + , ORG_ID = #{orgId} + , USER_STACD = CASE WHEN #{serviceCd} = 'Y' THEN 'P' + WHEN #{serviceCd} = 'H' THEN 'A' + WHEN #{serviceCd} = 'N' THEN 'D' + END + , LAST_PWD_CHG_DTM = sysdate() + WHERE ESNTL_ID = #{uniqId} + + + + + + + + + + + + + diff --git a/batch/src/main/resources/mapper/primarydb/sqlmap/cmm/MailKaTalkMapper.xml b/batch/src/main/resources/mapper/primarydb/sqlmap/cmm/MailKaTalkMapper.xml new file mode 100644 index 00000000..c126b76b --- /dev/null +++ b/batch/src/main/resources/mapper/primarydb/sqlmap/cmm/MailKaTalkMapper.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + /* CmmUseDao.insertNtcnProcSndInfo */ + UPDATE TB_NTCN_PROC_SND_INFO + SET PROC_DT = SYSDATE() + , PROC_RSLT_CD = #{procRsltCd} + , PROC_RSLT_CN = #{procRsltCn} + WHERE NTCN_ESNTL_ID = #{nctnEsntlId} + + + + + + + + + + + \ No newline at end of file diff --git a/batch/src/main/resources/mapper/primarydb/sqlmap/ind/NcrdMapper.xml b/batch/src/main/resources/mapper/primarydb/sqlmap/ind/NcrdMapper.xml new file mode 100644 index 00000000..9f12afc6 --- /dev/null +++ b/batch/src/main/resources/mapper/primarydb/sqlmap/ind/NcrdMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/batch/src/main/resources/mapper/primarydb/sqlmap/srm/IncidentHistMapper.xml b/batch/src/main/resources/mapper/primarydb/sqlmap/srm/IncidentHistMapper.xml new file mode 100644 index 00000000..99a07dc3 --- /dev/null +++ b/batch/src/main/resources/mapper/primarydb/sqlmap/srm/IncidentHistMapper.xml @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE CM_INCIDENT_HIST + SET SRCH_PROC_YN = #{srchProcYn} + , SRCH_PROC_SND_TM = NOW() + , SRCH_PROC_SND_MSG = #{srchProcSndMsg} + WHERE IN_INCIDENT_SEQ = #{inIncidentSeq} + AND EVENT_TIME = #{eventTime} + AND EVENT_TYPE = #{eventType} + + + + + + + + + + + + + + + + + + + + + + + diff --git a/batch/src/main/resources/mapper/primarydb/sqlmap/srm/ReportHistMapper.xml b/batch/src/main/resources/mapper/primarydb/sqlmap/srm/ReportHistMapper.xml new file mode 100644 index 00000000..44a4556c --- /dev/null +++ b/batch/src/main/resources/mapper/primarydb/sqlmap/srm/ReportHistMapper.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* ReportHistDao.updateReportHist */ + UPDATE CM_REPORT_HIST + SET SRCH_PROC_YN = #{srchProcYn} + , SRCH_PROC_SND_TM = NOW() + , SRCH_PROC_SND_MSG = #{srchProcSndMsg} + WHERE IN_REPORT_SEQ = #{inReportSeq} + AND EVENT_TIME = #{eventTime} + AND EVENT_TYPE = #{eventType} + + + + + + + + + \ No newline at end of file diff --git a/batch/src/main/resources/messages/message-common.properties b/batch/src/main/resources/messages/message-common.properties new file mode 100644 index 00000000..fc3577a6 --- /dev/null +++ b/batch/src/main/resources/messages/message-common.properties @@ -0,0 +1,467 @@ +fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +fail.common.sql=sql \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! error code: {0}, error msg: {1} +info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. + +#UI Common resource# +table.num=\ubc88\ud638 +table.regdate=\ub4f1\ub85d\uc77c +table.reger=\ub4f1\ub85d\uc790 +table.select=\uc120\ud0dd +title.html=egovframe common component +title.detail=\uc0c1\uc138\uc870\ud68c +title.inquire=\uc870\ud68c +title.update=\uc218\uc815 +title.create=\ub4f1\ub85d +title.delete=\uc0ad\uc81c +title.save=\uc800\uc7a5 +title.list=\ubaa9\ub85d +title.searchCondition=\uac80\uc0c9\uc870\uac74 +title.search=\uac80\uc0c9\uc5b4 +title.reply=\ub2f5\uae00 +title.scrap=\uc2a4\ud06c\ub7a9 +title.comment=\ub313\uae00 +title.attachedFileSelect=\ud30c\uc77c\uc120\ud0dd +title.attachedFileDelete=\ud30c\uc77c\uc0ad\uc81c +title.link=\ub9c1\ud06c +title.management=\uad00\ub9ac +title.all=\uc804\uccb4 + +input.select=\uc120\ud0dd\ud558\uc138\uc694 +input.cSelect=\uc120\ud0dd +input.input=\uc785\ub825 +input.button=\ubc84\ud2bc +input.selectAll.title=\uc804\uccb4\uc120\ud0dd\uccb4\ud06c\ubc15\uc2a4 +input.yes=\uc608 +input.no=\uc544\ub2c8\uc624 + +select.searchCondition=\uc870\ud68c\uc870\uac74 \uc120\ud0dd + +button.select=\uc120\ud0dd +button.search=\uac80\uc0c9 +button.use=\uc0ac\uc6a9 +button.notUsed=\uc0ac\uc6a9\uc911\uc9c0 +button.inquire=\uc870\ud68c +button.update=\uc218\uc815 +button.create=\ub4f1\ub85d +button.delete=\uc0ad\uc81c +button.deleteDatabase=\uc644\uc804\uc0ad\uc81c +button.close=\ub2eb\uae30 +button.save=\uc800\uc7a5 +button.list=\ubaa9\ub85d +button.reset=\ucde8\uc18c +button.passwordUpdate=\uc554\ud638\ubcc0\uacbd +button.subscribe=\uac00\uc785\uc2e0\uccad +button.realname=\uc2e4\uba85\ud655\uc778 +button.moveToGpin=GPIN\uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.moveToIhidnum=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 \uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.agree=\ub3d9\uc758 +button.disagree=\ube44\ub3d9\uc758 +button.possible=\uac00\ub2a5 +button.impossible=\ubd88\uac00\ub2a5 +button.qnaregist=Q&A\ub4f1\ub85d +button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d +button.preview=\ubbf8\ub9ac\ubcf4\uae30 +button.next=\ub2e4\uc74c +button.add=\ubc14\ub85c\ucd94\uac00 +button.confirm=\ud655\uc778 +button.back = \ub4a4\ub85c +button.yes = \uc608 +button.no = \uc544\ub2c8\uc624 +button.home = \ud648 +button.user = \uc0ac\uc6a9\uc790\uc9c0\uc6d0 +button.cop = \ud611\uc5c5 +button.wrkstart = \ucd9c\uadfc +button.wrkend = \ud1f4\uadfc +button.reply = \ub2f5\uae00 +button.scrap = \uc2a4\ud06c\ub7a9 +button.comment = \ub313\uae00 +button.excel = \uc5d1\uc140 +button.init=\ucd08\uae30\ud654 +button.acknowledgment=\uc2b9\uc778 +button.cancelAcknowledgment=\uc2b9\uc778\ucde8\uc18c +button.bulkUpload=\uc77c\uad04\ub4f1\ub85d +button.log = \ub85c\uadf8 +button.set = \uc124\uc815 +button.move = \uc774\ub3d9 +button.answer = \ub2f5\ubcc0 + +#UI Common Message# +common.noScriptTitle.msg=\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c\ub294 \uc77c\ubd80 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uc2e4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.searchCondition.msg=\uc774 \ub808\uc774\uc544\uc6c3\uc740 \ud558\ub2e8 \uc815\ubcf4\ub97c \ub300\ud55c \uac80\uc0c9 \uc815\ubcf4\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. + +common.summary.list={0}\uc758 \ub0b4\uc5ed\uc5d0 \ub300\ud55c \ubaa9\ub85d\uc744 \ucd9c\ub825\ud569\ub2c8\ub2e4. +common.summary.regist={0}\uc758 \ub4f1\ub85d \uac00\ub2a5\ud55c \ub0b4\uc6a9\uc744 \uc785\ub825\ud558\uc5ec \ub4f1\ub85d \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \ub4f1\ub85d\ud55c\ub2e4. +common.summary.update={0}\uc758 \ub4f1\ub85d \uac00\ub2a5\ud55c \ub0b4\uc6a9\uc744 \uc785\ub825\ud558\uc5ec \ub4f1\ub85d \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \uc218\uc815\ud55c\ub2e4. +common.summary.inqire={0}\uc758 \ub0b4\uc5ed\uc5d0 \ub300\ud55c \uc0c1\uc138\uc870\ud68c \ub0b4\uc5ed\uc744 \ucd9c\ub825\ud569\ub2c8\ub2e4. + +common.save.msg=\uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.regist.msg=\ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.delete.msg=\uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.update.msg=\uc218\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nodata.msg=\uc790\ub8cc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uac80\uc0c9\uc870\uac74\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694 +common.required.msg=(\uc740)\ub294 \ud544\uc218\uc785\ub825\ud56d\ubaa9\uc785\ub2c8\ub2e4. +common.acknowledgement.msg=\uc2b9\uc778\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.acknowledgementcancel.msg=\uc2b9\uc778\ucde8\uc18c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nocomment.msg=\ub313\uae00\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. +common.noguest.msg=\uc791\uc131\ub41c \ubc29\uba85\ub85d\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. + +success.request.msg = \uc694\uccad\ucc98\ub9ac\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc218\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.select=\uc815\uc0c1\uc801\uc73c\ub85c \uc870\ud68c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.insert=\uc815\uc0c1\uc801\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.update=\uc815\uc0c1\uc801\uc73c\ub85c \uc218\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.delete=\uc815\uc0c1\uc801\uc73c\ub85c \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +common.imposbl.fileupload = \ub354 \uc774\uc0c1 \ud30c\uc77c\uc744 \ucca8\ubd80\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.isConfmDe.msg=\uc2b9\uc778\uc77c\uc790\ub97c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4. +common.isExist.msg = \uc774\ubbf8 \uc874\uc7ac\ud558\uac70\ub098 \uacfc\uac70\uc5d0 \ub4f1\ub85d\uc774 \ub418\uc5c8\ub358 \uc0c1\ud0dc\uc785\ub2c8\ub2e4. + +fail.common.insert = \uc0dd\uc131\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.update = \uc218\uc815\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete = \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete.upperMenuExist = \ucc38\uc870\ub418\ub294 \uba54\ub274\uac00 \uc788\uc5b4 \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.select = \uc870\ud68c\uc5d0 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.login = \ub85c\uadf8\uc778 \uc815\ubcf4\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.common.loginIncorrect = {0}\ud68c \uc774\uc0c1 \ub85c\uadf8\uc778 \uc811\uc18d\uc774 \uc2dc\ub3c4 \ub418\uc5b4 \uacc4\uc815\uc774 \uc7a0\uaca8\uc2b5\ub2c8\ub2e4! +fail.common.login.password = \ud328\uc2a4\uc6cc\ub4dc \uc790\ub9ac \uc218\uac00 \uc77c\uce58 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.(8\uc790\ub9ac \uc774\uc0c1 20\uc790\ub9ac \uc774\ud558) +fail.common.idsearch = \uc544\uc774\ub514\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.common.pwsearch = \ube44\ubc00\ubc88\ud638\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.request.msg = \uc694\uccad\ucc98\ub9ac\ub97c \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.login.ip = \ub4f1\ub85d\ub41c IP\uac00 \uc544\ub2c8\ubbc0\ub85c \ub85c\uadf8\uc778\uc774 \uac70\ubd80\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +#UI User Message# +fail.user.passwordUpdate1=\ud604\uc7ac \ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.passwordUpdate2=\ube44\ubc00\ubc88\ud638\uc640 \ube44\ubc00\ubc88\ud638 \ud655\uc778\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +info.user.rlnmCnfirm=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.connectFail=\uc2dc\uc2a4\ud15c \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.(\uc778\uc99d\uc11c\ubc84 \uc5f0\uacb0 \uc2e4\ud328) +info.user.rlnmPinCnfirm=\uacf5\uacf5 \uc544\uc774\ud540 \uc544\uc774\ub514\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#Vlidator Errors# +errors.prefix=
+errors.suffix=

+ +errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.invalid={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uac12\uc785\ub2c8\ub2e4. +errors.minInteger={0}\uc740(\ub294) \uc720\ud6a8\ud55c \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4. 1 \uc774\uc0c1\uc758 \uac12\uc744 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.byte={0}\uc740(\ub294) byte\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0}\uc740(\ub294) short\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0}\uc740(\ub294) integer \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.long={0}\uc740(\ub294) long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0}\uc740(\ub294) float \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0}\uc740(\ub294) double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. + +errors.date={0}\uc740(\ub294) \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0}\uc740(\ub294) {1}\uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. +errors.ip=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 IP\uc8fc\uc18c\uc785\ub2c8\ub2e4. +errors.english={0}\uc740(\ub294) \uc601\ubb38\ub9cc \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc788\uc2b5\ub2c8\ub2e4. +errors.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +errors.password1={0}\uc740(\ub294) 8~20\uc790 \ub0b4\uc5d0\uc11c \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.password2={0}\uc740(\ub294) \ud55c\uae00,\ud2b9\uc218\ubb38\uc790,\ub744\uc5b4\uc4f0\uae30\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +errors.password3={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.password4={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.pwdcheckcomb3={0}\uc740(\ub294) \uc601\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569\uc73c\ub85c \uc774\ub8e8\uc5b4 \uc838\uc57c \ud569\ub2c8\ub2e4. +errors.pwdcheckcomb4={0}\uc740(\ub294) \uc601\ubb38\ub300\ubb38\uc790,\uc601\ubb38\uc18c\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569\uc73c\ub85c \uc774\ub8e8\uc5b4 \uc838\uc57c \ud569\ub2c8\ub2e4. +errors.pwdcheckseries={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 3\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.pwdcheckrepeat={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 3\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +error.security.runtime.error = error + +info.password.rule.password1 = - 8\uc774\uc0c1 20\uc790\ub9ac \uc774\ud558 +info.password.rule.pwdcheckcomb3 = - \uc601\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569 +info.password.rule.pwdcheckcomb4 = - \uc601\ubb38\ub300\ubb38\uc790,\uc601\ubb38\uc18c\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569 +info.password.rule.pwdcheckseries = - 3\uc790\ub9ac \uc774\uc0c1 \ubc18\ubcf5 \ub610\ub294 \uc5f0\uc18d\ub41c \ubb38\uc790 \uc0ac\uc6a9 \uae08\uc9c0. \uc608)kkk , 321 \ub4f1 \uc0ac\uc6a9\uae08\uc9c0 + +#Xss Errors# +errors.xss.checkerUser=\ud574\ub2f9 \uae30\ub2a5\uc5d0 \ub300\ud55c \uc0ac\uc6a9 \ubc0f \ucc98\ub9ac \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. + +#File Upload / Download +errors.file.extension=\uc9c0\uc6d0\ub418\ub294 \ud30c\uc77c\uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.file.transfer=\ud30c\uc77c\uc804\uc1a1\uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. +success.file.transfer=\ud30c\uc77c\uc804\uc1a1\uc774 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +#common# +comCmmErr.button=\uc774\uc804 \ud398\uc774\uc9c0 + +#accessDenied# +comCmmErr.accessDenied.title=\ud604\uc7ac \ud398\uc774\uc9c0\uc5d0 \ub300\ud55c \uc811\uadfc\uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4! +comCmmErr.accessDenied.code=\uc0ac\uc6a9\uc790\uc811\uadfc\uad8c\ud55c \uc5d0\ub7ec + +#dataAccessFailure# +comCmmErr.dataAccessFailure.title=\ub370\uc774\ud130 \ucc98\ub9ac \uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4! +comCmmErr.dataAccessFailure.code=\ub370\uc774\ud130\ucc98\ub9ac \uc5d0\ub7ec + +#bizException# +comCmmErr.bizException.title=\ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1 \ucc98\ub9ac \uc911 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +comCmmErr.bizException.code=\ube44\uc988\ub2c8\uc2a4\ub85c\uc9c1\ucc98\ub9ac \uc5d0\ub7ec + +#runtimeException# +comCmmErr.runtimeException.title=\uc54c \uc218 \uc5c6\ub294 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +comCmmErr.runtimeException.code=\uc2dc\uc2a4\ud15c \uc5d0\ub7ec + +#sessionException# +comCmmErr.sessionException.title=\uc138\uc158\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4! +comCmmErr.sessionException.code=\uc138\uc158\ub9cc\ub8cc \uc5d0\ub7ec + + +#top# +comCmm.top.title=\uc804\uc790\uc815\ubd80 \ud45c\uc900\ud504\ub808\uc784\uc6cc\ud06c \uacf5\ud1b5\ucef4\ud3ec\ub10c\ud2b8 VERSION 4.0 +comCmm.top.leftSessionTime=\uc138\uc158\ub9cc\ub8cc \ub0a8\uc740\uc2dc\uac04 +comCmm.top.incSessionTime=\uc2dc\uac04\uc5f0\uc7a5 +comCmm.top.expiredSessionTime=\uc2dc\uac04\ub9cc\ub8cc +comCmm.top.expireSessionTimeInfo=\ub85c\uadf8\uc778 \uc138\uc158\uc2dc\uac04\uc774 \ub9cc\ub8cc \ub418\uc5c8\uc2b5\ub2c8\ub2e4. +comCmm.top.cantIncSessionTime=\uc2dc\uac04\uc744 \uc5f0\uc7a5\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +#left# +comCmm.mai.title=\ud3ec\ud138(\uc608\uc81c) \uba54\uc778\ud654\uba74 +comCmm.uat.title=\uc0ac\uc6a9\uc790\ub514\ub809\ud1a0\ub9ac/\ud1b5\ud569\uc778\uc99d +comCmm.sec.title=\ubcf4\uc548 +comCmm.sts.title=\ud1b5\uacc4/\ub9ac\ud3ec\ud305 +comCmm.cop.title=\ud611\uc5c5 +comCmm.uss.title=\uc0ac\uc6a9\uc790\uc9c0\uc6d0 +comCmm.sym.title=\uc2dc\uc2a4\ud15c\uad00\ub9ac +comCmm.ssi.title=\uc2dc\uc2a4\ud15c/\uc11c\ube44\uc2a4\uc5f0\uacc4 +comCmm.dam.title=\ub514\uc9c0\ud138 \uc790\uc0b0 \uad00\ub9ac +comCmm.com.title=\uc694\uc18c\uae30\uc220 +comCmm.ext.title=\uc678\ubd80 \ucd94\uac00 \ucef4\ud3ec\ub10c\ud2b8 + +#component# +#\ud3ec\ud0c8 \uba54\uc778\ud654\uba74# +comCmm.left.1=\ud3ec\ud138(\uc608\uc81c) \uba54\uc778\ud654\uba74 + +#\uc0ac\uc6a9\uc790\ub514\ub809\ud1a0\ub9ac/\ud1b5\ud569\uc778\uc99d# +comCmm.left.10=\ub85c\uadf8\uc778 +comCmm.left.30=\ub85c\uadf8\uc778\uc815\ucc45\uad00\ub9ac + +#\ubcf4\uc548# +comCmm.left.60=\uad8c\ud55c\uad00\ub9ac +comCmm.left.70=\uad8c\ud55c\uadf8\ub8f9\uad00\ub9ac +comCmm.left.80=\uadf8\ub8f9\uad00\ub9ac +comCmm.left.90=\ub864\uad00\ub9ac +comCmm.left.100=\ubd80\uc11c\uad8c\ud55c\uad00\ub9ac + +#\ud1b5\uacc4/\ub9ac\ud3ec\ud305# +comCmm.left.120=\uac8c\uc2dc\ubb3c\ud1b5\uacc4 +comCmm.left.130=\uc0ac\uc6a9\uc790\ud1b5\uacc4 +comCmm.left.140=\uc811\uc18d\ud1b5\uacc4 +comCmm.left.150=\ud654\uba74\ud1b5\uacc4 +comCmm.left.160=\ubcf4\uace0\uc11c\ud1b5\uacc4 +comCmm.left.161=\uc790\ub8cc\uc774\uc6a9\ud604\ud669\ud1b5\uacc4 + +\ud611\uc5c5 +comCmm.left.170=\ube14\ub85c\uadf8\uad00\ub9ac +comCmm.left.180=\uac8c\uc2dc\ud310\uad00\ub9ac +comCmm.left.190=\uac8c\uc2dc\ud310\uc0ac\uc6a9\uc815\ubcf4 +comCmm.left.200=\ud15c\ud50c\ub9bf\uad00\ub9ac +comCmm.left.250=\uc2a4\ud06c\ub7a9 \ubaa9\ub85d +comCmm.left.270=\ucee4\ubba4\ub2c8\ud2f0\uad00\ub9ac +comCmm.left.310=\ubb38\uc790\uba54\uc2dc\uc9c0 +comCmm.left.320=\ubd80\uc11c\uc77c\uc815\uad00\ub9ac +comCmm.left.330=\uc77c\uc815\uad00\ub9ac +comCmm.left.340=\uc77c\uc9c0\uad00\ub9ac +comCmm.left.350=\uc804\uccb4\uc77c\uc815\uad00\ub9ac +comCmm.left.360=\uba54\uc77c\ubc1c\uc1a1 +comCmm.left.361=\ubc1c\uc1a1\uba54\uc77c\ub0b4\uc5ed +comCmm.left.370=\uba85\ud568\uad00\ub9ac +comCmm.left.371=\ub0b4\uba85\ud568\ubaa9\ub85d +comCmm.left.380=\uc8fc\uc18c\ub85d\uad00\ub9ac +comCmm.left.390=\uac04\ubd80\uc77c\uc815\uad00\ub9ac +comCmm.left.400=\ubd80\uc11c\uc5c5\ubb34\ud568\uad00\ub9ac +comCmm.left.401=\ubd80\uc11c\uc5c5\ubb34\uc815\ubcf4 +comCmm.left.410=\uc8fc\uac04/\uc6d4\uac04\ubcf4\uace0\uad00\ub9ac +comCmm.left.420=\uba54\ubaa8\ud560\uc77c\uad00\ub9ac +comCmm.left.430=\uba54\ubaa8\ubcf4\uace0 + +#\uc0ac\uc6a9\uc790\uc9c0\uc6d0# +comCmm.left.450=\uae30\uc5c5\ud68c\uc6d0\uad00\ub9ac +comCmm.left.460=\uc5c5\ubb34\uc0ac\uc6a9\uc790\uad00\ub9ac +comCmm.left.461=\ubd80\uc11c\uad00\ub9ac +comCmm.left.470=\uc77c\ubc18\ud68c\uc6d0\uad00\ub9ac +comCmm.left.480=\ub9c8\uc774\ud398\uc774\uc9c0\uad00\ub9ac +comCmm.left.490=\uc57d\uad00\uad00\ub9ac +comCmm.left.500=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45 +comCmm.left.510=\uac1c\uc778\uc815\ubcf4\ubcf4\ud638\uc815\ucc45\ud655\uc778 +comCmm.left.520=\ub3c4\uc6c0\ub9d0 +comCmm.left.530=\uc6a9\uc5b4\uc0ac\uc804 +comCmm.left.540=FAQ\uad00\ub9ac +comCmm.left.550=Q&A\uad00\ub9ac +comCmm.left.551=Q&A\ub2f5\ubcc0\uad00\ub9ac +comCmm.left.560=\ud589\uc815\uc804\ubb38\uc6a9\uc5b4\uc0ac\uc804 +comCmm.left.561=\ud589\uc815\uc804\ubb38\uc6a9\uc5b4\uc0ac\uc804\uad00\ub9ac +comCmm.left.570=\uc628\ub77c\uc778\ub9e4\ub274\uc5bc +comCmm.left.571=\uc0ac\uc6a9\uc790\uc628\ub77c\uc778\ub9e4\ub274\uc5bc +comCmm.left.580=\uc0c1\ub2f4\uad00\ub9ac +comCmm.left.581=\uc0c1\ub2f4\ub2f5\ubcc0\uad00\ub9ac +comCmm.left.590=\uc124\ubb38\uad00\ub9ac +comCmm.left.600=\uc124\ubb38\uc870\uc0ac +comCmm.left.610=\uc124\ubb38\ud15c\ud50c\ub9bf\uad00\ub9ac +comCmm.left.620=\uc751\ub2f5\uc790\uad00\ub9ac +comCmm.left.630=\uc9c8\ubb38\uad00\ub9ac +comCmm.left.640=\ud56d\ubaa9\uad00\ub9ac +comCmm.left.650=\ud68c\uc758\uad00\ub9ac +comCmm.left.660=\uc628\ub77c\uc778poll\uad00\ub9ac +comCmm.left.661=\uc628\ub77c\uc778poll\ucc38\uc5ec +comCmm.left.670=\ub274\uc2a4\uad00\ub9ac +comCmm.left.680=\uc0ac\uc774\ud2b8\uad00\ub9ac +comCmm.left.700=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uad00\ub9ac +comCmm.left.710=\ud589\uc0ac/\uc774\ubca4\ud2b8/\ucea0\ud398\uc778 +comCmm.left.711=\uc678\ubd80\uc778\uc0ac\uc815\ubcf4 +comCmm.left.720=\ud31d\uc5c5\ucc3d\uad00\ub9ac +comCmm.left.730=\uc815\ubcf4\uc54c\ub9bc\uc774 +comCmm.left.740=\ubc30\ub108\uad00\ub9ac +comCmm.left.741=MYPAGE\ubc30\ub108\uad00\ub9ac +comCmm.left.750=\ub85c\uadf8\uc778\ud654\uba74\uc774\ubbf8\uc9c0\uad00\ub9ac +comCmm.left.760=\ucd5c\uadfc\uac80\uc0c9\uc5b4 \uc870\ud68c +comCmm.left.770=\uba54\uc778\uc774\ubbf8\uc9c0\uad00\ub9ac +comCmm.left.771=\uba54\uc778\uc774\ubbf8\uc9c0 \ubc18\uc601\uacb0\uacfc\ubcf4\uae30 +comCmm.left.780=\ud1b5\ud569\ub9c1\ud06c\uad00\ub9ac +comCmm.left.790=\uc0ac\uc6a9\uc790\ubd80\uc7ac\uad00\ub9ac +comCmm.left.800=\uc778\ud130\ub137\uc11c\ube44\uc2a4\uc548\ub0b4\ubc0f\uad00\ub9ac +comCmm.left.810=Wiki\uae30\ub2a5 +comCmm.left.820=RSS\ud0dc\uadf8\uad00\ub9ac +comCmm.left.822=RSS\ud0dc\uadf8\uc11c\ube44\uc2a4 +comCmm.left.830=Twitter\uc5f0\ub3d9 +comCmm.left.831=Facebook \uc5f0\ub3d9 +comCmm.left.840=\ucabd\uc9c0\uad00\ub9ac +comCmm.left.850=\ubc1b\uc740\ucabd\uc9c0\ud568\uad00\ub9ac +comCmm.left.860=\ubcf4\ub0b8\ucabd\uc9c0\ud568\uad00\ub9ac +comCmm.left.870=\ud68c\uc758\uc2e4\uad00\ub9ac +comCmm.left.871=\ud68c\uc758\uc2e4\uc608\uc57d\uad00\ub9ac +comCmm.left.890=\uc9c1\uc6d0\uacbd\uc870\uc0ac\uad00\ub9ac +comCmm.left.891=\uc9c1\uc6d0\uacbd\uc870\uc0ac\uc2b9\uc778\uad00\ub9ac +comCmm.left.900=\ud734\uac00\uad00\ub9ac +comCmm.left.901=\ud734\uac00\uc2b9\uc778\uad00\ub9ac +comCmm.left.902=\uac1c\uc778\uc5f0\ucc28\uad00\ub9ac +comCmm.left.910=\ub2f9\uc9c1\uad00\ub9ac +comCmm.left.911=\ub2f9\uc9c1\uccb4\ud06c\uad00\ub9ac +comCmm.left.920=\ud3ec\uc0c1\uad00\ub9ac +comCmm.left.921=\ud3ec\uc0c1\uc2b9\uc778\uad00\ub9ac +comCmm.left.930=\uae30\ub150\uc77c\uad00\ub9ac +comCmm.left.931=\uae30\ub150\uc77c\ubaa9\ub85d(\ud655\uc778\uc6a9) +comCmm.left.940=\ud589\uc0ac\uc2e0\uccad\uad00\ub9ac +comCmm.left.941=\ud589\uc0ac\uc811\uc218\uad00\ub9ac +comCmm.left.942=\ud589\uc0ac\uc811\uc218\uc2b9\uc778\uad00\ub9ac +comCmm.left.943=\uc57d\ub3c4 \uad00\ub9ac +comCmm.left.950=\ucd9c\ud1f4\uadfc\uad00\ub9ac + +#\uc2dc\uc2a4\ud15c\uad00\ub9ac# +comCmm.left.960=\uacf5\ud1b5\ubd84\ub958\ucf54\ub4dc +comCmm.left.970=\uacf5\ud1b5\uc0c1\uc138\ucf54\ub4dc +comCmm.left.980=\uacf5\ud1b5\ucf54\ub4dc +comCmm.left.1000=\uc6b0\ud3b8\ubc88\ud638\uad00\ub9ac +comCmm.left.1010=\ud589\uc815\ucf54\ub4dc\uad00\ub9ac +comCmm.left.1020=\uae30\uad00\ucf54\ub4dc\uc218\uc2e0 +comCmm.left.1030=\ub85c\uadf8\uad00\ub9ac +comCmm.left.1040=\uc0ac\uc6a9\ub85c\uadf8\uad00\ub9ac +comCmm.left.1050=\uc1a1/\uc218\uc2e0\ub85c\uadf8\uad00\ub9ac +comCmm.left.1060=\uc2dc\uc2a4\ud15c\uc774\ub825\uad00\ub9ac +comCmm.left.1070=\uc6f9\ub85c\uadf8\uad00\ub9ac +comCmm.left.1080=\uc811\uc18d\ub85c\uadf8\uad00\ub9ac +comCmm.left.1085=\uac1c\uc778\uc815\ubcf4\uc870\ud68c\ub85c\uadf8\uad00\ub9ac +comCmm.left.1090=\uba54\ub274\ub9ac\uc2a4\ud2b8\uad00\ub9ac +comCmm.left.1091=\uba54\ub274\uad00\ub9ac\ub9ac\uc2a4\ud2b8 +comCmm.left.1100=\uba54\ub274\uc0dd\uc131\uad00\ub9ac +comCmm.left.1101=\uc0ac\uc774\ud2b8\ub9f5 +comCmm.left.1110=\ubc14\ub85c\uac00\uae30\uba54\ub274\uad00\ub9ac +comCmm.left.1111=\ud504\ub85c\uadf8\ub7a8\uad00\ub9ac +comCmm.left.1112=\ud504\ub85c\uadf8\ub7a8\ubcc0\uacbd\uc694\uccad\uad00\ub9ac +comCmm.left.1113=\ud504\ub85c\uadf8\ub7a8\ubcc0\uacbd\uc694\uccad\ucc98\ub9ac +comCmm.left.1114=\ud504\ub85c\uadf8\ub7a8\ubcc0\uacbd\uc774\ub825 +comCmm.left.1120=\ubc30\uce58\uc791\uc5c5\uad00\ub9ac +comCmm.left.1130=\ubc30\uce58\uacb0\uacfc\uad00\ub9ac +comCmm.left.1140=\uc2a4\ucf00\uc904\ucc98\ub9ac +comCmm.left.1150=\ubc31\uc5c5\uad00\ub9ac +comCmm.left.1151=\ubc31\uc5c5\uacb0\uacfc\uad00\ub9ac +comCmm.left.1160=\ub124\ud2b8\uc6cc\ud06c\uad00\ub9ac +comCmm.left.1170=\uc11c\ubc84\uc815\ubcf4\uad00\ub9ac +comCmm.left.1171=\uc11c\ubc84(S/W)\ubaa9\ub85d +comCmm.left.1180=\uc7a5\uc560\uc2e0\uccad\uad00\ub9ac +comCmm.left.1190=\uc7a5\uc560\ucc98\ub9ac\uacb0\uacfc\uad00\ub9ac + +#\uc2dc\uc2a4\ud15c/\uc11c\ube44\uc2a4\uc5f0\uacc4# +comCmm.left.1210=\uc2dc\uc2a4\ud15c\uc5f0\uacc4\uad00\ub9ac +comCmm.left.1220=\uc5f0\uacc4\ud604\ud669\uad00\ub9ac +comCmm.left.1230=\uc5f0\uacc4\uba54\uc2dc\uc9c0\uad00\ub9ac +comCmm.left.1240=\uc5f0\uacc4\uae30\uad00\uad00\ub9ac + +#\ub514\uc9c0\ud138 \uc790\uc0b0 \uad00\ub9ac# +comCmm.left.1250=\uac1c\uc778\uc9c0\uc2dd\uad00\ub9ac +comCmm.left.1260=\uc9c0\uc2dd\ub9f5\uad00\ub9ac(\uc720\ud615) +comCmm.left.1261=\uc9c0\uc2dd\ub9f5\uad00\ub9ac(\uc870\uc9c1) +comCmm.left.1270=\uc9c0\uc2dd\uc804\ubb38\uac00\uad00\ub9ac +comCmm.left.1280=\uc9c0\uc2dd\uc815\ubcf4\uad00\ub9ac +comCmm.left.1290=\uc9c0\uc2dd\ud3c9\uac00\uad00\ub9ac +comCmm.left.1291=\uc9c0\uc2dd\uc815\ubcf4\uc81c\uacf5 + +#\uc694\uc18c\uae30\uc220# +comCmm.left.1300=\uacf5\ud734\uc77c\uad00\ub9ac(\ub2ec\ub825) +comCmm.left.2080=\uc1a1\uc218\uc2e0\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2090=DB\uc11c\ube44\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2100=HTTP\uc11c\ube44\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2110=\ud504\ub85c\uc138\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2120=\ub124\ud2b8\uc6cc\ud06c\uc11c\ube44\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2130=\ud30c\uc77c\uc2dc\uc2a4\ud15c\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2140=\ud504\ub85d\uc2dc\uc11c\ube44\uc2a4 +comCmm.left.2150=\ud30c\uc77c\ub3d9\uae30\ud654(\ub300\uc0c1\uc11c\ubc84) +comCmm.left.2160=\ub85c\uadf8\uc778\uc138\uc158\uc815\ubcf4\uccb4\ud06c +comCmm.left.2170=\uc11c\ubc84\uc790\uc6d0\ubaa8\ub2c8\ud130\ub9c1-\ub300\uc0c1\ubaa9\ub85d +comCmm.left.2180=\uc8fc\uc18c\uc815\ubcf4\uc5f0\uacc4 +comCmm.left.2200=\uc554\ud638\ud654/\ubcf5\ud638\ud654 + +#\uc678\ubd80 \ucd94\uac00 \ucef4\ud3ec\ub10c\ud2b8# +comCmm.left.3000=JFile \uac00\uc774\ub4dc +comCmm.left.3010=JFile \ud30c\uc77c \uc5c5\ub85c\ub4dc +comCmm.left.3020=JFile \ud30c\uc77c \ub2e4\uc6b4\ub85c\ub4dc +comCmm.left.3100=LDAP \uc870\uc9c1\ub3c4 \ud2b8\ub9ac +comCmm.left.3110=LDAP \uc870\uc9c1\ub3c4 \uadf8\ub798\ud504 +comCmm.left.3200=\uc6f9\uc18c\ucf13 \uba54\uc2e0\uc800 + +#EgovUnitContent(\ub85c\uadf8\uc778 \ud6c4 \ud398\uc774\uc9c0)# +comCmm.unitContent.1=\uacf5\ud1b5\ucef4\ud3ec\ub10c\ud2b8 +comCmm.unitContent.2=\ub2d8 \ud658\uc601\ud569\ub2c8\ub2e4. +comCmm.unitContent.3=\ub85c\uadf8\uc544\uc6c3 +comCmm.unitContent.4=\uc2e4\ud589 \uc2dc \uc624\ub958 \uc0ac\ud56d\uc774 \uc788\uc73c\uc2dc\uba74 \ud45c\uc900\ud504\ub808\uc784\uc6cc\ud06c\uc13c\ud130\ub85c \uc5f0\ub77d\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. +comCmm.unitContent.5=\ud654\uba74 \uc124\uba85 +comCmm.unitContent.6=\uc67c\ucabd \uba54\ub274\ub294 \uba54\ub274\uc640 \uad00\ub828\ub41c \ucef4\ud3ec\ub10c\ud2b8(\uba54\ub274\uad00\ub9ac, \uc0ac\uc774\ud2b8\ub9f5 \ub4f1)\ub4e4\uc758 \uc601\ud5a5\uc744 \ubc1b\uc9c0 \uc54a\uc73c\uba70, +comCmm.unitContent.7=\uac01 \ucef4\ud3ec\ub10c\ud2b8\ub97c \uc27d\uac8c \ucc3e\uc544\ubcfc \uc218 \uc788\ub294 \ubc14\ub85c \uac00\uae30 \ub9c1\ud06c\ud398\uc774\uc9c0\uc785\ub2c8\ub2e4. +comCmm.unitContent.8=\ucef4\ud3ec\ub10c\ud2b8 \uc124\uce58 \ud6c4 \uc124\uce58\ub41c \ucef4\ud3ec\ub10c\ud2b8\ub4e4\uc744 IncludedInfo annotation\uc744 \ud1b5\ud574 \ucc3e\uc544\ub0b8 \ud6c4 +comCmm.unitContent.9=\ud654\uba74\uc5d0 \ud45c\uc2dc\ud560 \uc815\ubcf4\ub97c \ucc98\ub9ac\ud558\ub294 Controller \ud074\ub798\uc2a4\uc785\ub2c8\ub2e4. +comCmm.unitContent.10=\uac1c\ubc1c \uc2dc \uba54\ub274 \uad6c\uc870\uac00 \uc7a1\ud788\uae30 \uc804\uc5d0 \ubc30\ud3ec \ud30c\uc77c\ub4e4\uc5d0 \ud3ec\ud568\ub41c \uacf5\ud1b5 \ucef4\ud3ec\ub10c\ud2b8\ub4e4\uc758 \ubaa9\ub85d\uc131 \ud654\uba74\uc5d0 URL\uc744 \uc81c\uacf5\ud558\uc5ec +comCmm.unitContent.11=\uac1c\ubc1c\uc790\uac00 \ud3b8\ub9ac\ud558\uac8c \ud65c\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \uc791\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +comCmm.unitContent.12=\uc6b4\uc601 \uc2dc\uc5d0 \ubcf8 \ucee8\ud2b8\ub864\uc744 \uc0ac\uc6a9\ud558\uc5ec \uba54\ub274\ub97c \uad6c\uc131\ud558\ub294 \uacbd\uc6b0, +comCmm.unitContent.13=\uc131\ub2a5 \ubb38\uc81c\ub97c \uc77c\uc73c\ud0a4\uac70\ub098 \uc0ac\uc6a9\uc790\ubcc4 \uba54\ub274 \uad6c\uc131\uc5d0 \uc624\ub958\ub97c \ubc1c\uc0dd\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 +comCmm.unitContent.14=\uc2e4 \uc6b4\uc601 \uc2dc\uc5d0\ub294 \uc0ad\uc81c\ud574\uc11c \ubc30\ud3ec\ud558\ub294 \uac83\uc744 \uad8c\uc7a5\ud574 \ub4dc\ub9bd\ub2c8\ub2e4. + +comCmm.unitContent.20=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ub9cc\ub8cc \uc548\ub0b4 + +#EgovExpirePwd(\ube44\ubc00\ubc88\ud638\ubcc0\uacbd \uacf5\uc9c0)# +comCmm.expirePwdContent.1=\ub85c\uadf8\uc778 +comCmm.expirePwdContent.2=\ub85c\uadf8\uc778 \uad6c\ubd84 + +comCmm.expirePwdContent.10=\uc5c5\ubb34\uc0ac\uc6a9\uc790 +comCmm.expirePwdContent.11=\uae30\uc5c5\ud68c\uc6d0 +comCmm.expirePwdContent.12=\uc77c\ubc18\ud68c\uc6d0 + +comCmm.expirePwdContent.21=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04\uc758 \ubcc0\uacbd\uc740 \ub2e4\uc74c \ud30c\uc77c\uc744 \ucc38\uc870\ud558\uc5ec \uc8fc\uc138\uc694. +comCmm.expirePwdContent.22=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ub9cc\ub8cc +comCmm.expirePwdContent.23=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04\uc774 \ub9cc\ub8cc \ub418\uc5c8\uc2b5\ub2c8\ub2e4. +comCmm.expirePwdContent.24=\uc548\uc804\ud55c \uac1c\uc778\uc815\ubcf4 \ubcf4\ud638\ub97c \uc704\ud574 \uc9c0\uae08 \ube44\ubc00\ubc88\ud638\ub97c \ubcc0\uacbd\ud574 \uc8fc\uc138\uc694! +comCmm.expirePwdContent.25=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ucd08\uacfc\uc77c\uc218 +comCmm.expirePwdContent.26=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 +comCmm.expirePwdContent.27=\ube44\ubc00\ubc88\ud638 \ubcc0\uacbd\ud6c4 \uacbd\uacfc\uc77c\uc218 +comCmm.expirePwdContent.28=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ucd08\uacfc\uc77c\uc218 +comCmm.expirePwdContent.29=\uc8fc\uae30\uc801\uc73c\ub85c \ube44\ubc00\ubc88\ud638\ub97c \ubcc0\uacbd\ud574 \uc8fc\uc138\uc694. +comCmm.expirePwdContent.30=\uc77c + +comCmm.expirePwdContent.50=\uc9c0\uae08 \uc989\uc2dc \ubcc0\uacbd\ud558\uae30 +comCmm.expirePwdContent.51=\ub2e4\uc74c\uc5d0 \ubcc0\uacbd\ud558\uae30 \ No newline at end of file diff --git a/batch/src/main/resources/messages/message-common_en.properties b/batch/src/main/resources/messages/message-common_en.properties new file mode 100644 index 00000000..4e7a26b1 --- /dev/null +++ b/batch/src/main/resources/messages/message-common_en.properties @@ -0,0 +1,468 @@ +fail.common.msg=error ocurred! +fail.common.sql=sql error ocurred! error code: {0}, error msg: {1} +info.nodata.msg=no data found. + +#UI Common resource# +table.num=num. +table.regdate=reg.date +table.reger=registrant +table.select=select +title.html=egovframe common component +title.detail=Detail Inquiry +title.inquire=Inquire +title.update=Modify +title.create=Create +title.delete=Delete +title.save=Save +title.list=List +title.searchCondition=search condition +title.search=keyword +title.reply=reply +title.scrap=scrap +title.comment=comment +title.attachedFileSelect=attached file +title.attachedFileDelete=attached file delete +title.link=link +title.management=Management +title.all=All + +input.select=Select +input.cSelect=Select +input.input=input +input.button=button +input.selectAll.title=Checkbox select all +input.yes=Yes +input.no=No + +select.searchCondition=select condition select + +button.select=select +button.search=Search +button.use=use +button.notUsed=Not used +button.inquire=inquire +button.update=update +button.create=create +button.delete=delete +button.deleteDatabase=Wiping +button.close=close +button.save=save +button.list=list +button.reset=reset +button.passwordUpdate=password update +button.subscribe=subscribe +button.realname=realname confirm +button.moveToGpin=move to gpin confirm +button.moveToIhidnum=move to ihidnum confirm +button.agree=agree +button.disagree=disagree +button.possible=possible +button.impossible=impossible +button.qnaregist=Q&A create +button.cnsltregist=Counsel create +button.preview=preview +button.next=nexut +button.add=add it now +button.confirm=confirm +button.back =back +button.yes =yes +button.no =no +button.home =home +button.user =user support +button.cop =cooperation +button.wrkstart = work start +button.wrkend = work end +button.reply = reply +button.scrap = scrap +button.comment = comment +button.excel = excel +button.init=init +button.acknowledgment=acknowledgment +button.cancelAcknowledgment=cancel acknowledgment +button.bulkUpload=bulk upload +button.log = log +button.set = set +button.move = move +button.answer = answer + +#UI Common Message# +common.noScriptTitle.msg=I can't use all functions in browser JavaScript is not supported. +common.searchCondition.msg=This layout is a lower information searches made up of information. + +common.summary.list={0} A list of the details of the output. +common.summary.regist={0} Registered by typing the possible contents of registers by clicking the button. +common.summary.update={0} Registered by typing the possible content of modification by clicking the button. +common.summary.inqire={0} Full inquiry details about the details of the output. + +common.save.msg=confirm save? +common.regist.msg=confirm regist? +common.delete.msg=confirm delete? +common.update.msg=confirm update? +common.nodata.msg=There is no data. please choose another seach keyword +common.required.msg=is required field +common.acknowledgement.msg=confirm acknowledgement? +common.acknowledgementcancel.msg=confirm acknowledgement cancel? +common.nocomment.msg=There is no comment. +common.noguest.msg=There is no guest notice. + +success.request.msg=you're request successfully done +success.common.select=successfully selected +success.common.insert=successfully inserted +success.common.update=successfully updated +success.common.delete=successfully deleted + +common.imposbl.fileupload = cannot upload files +common.isConfmDe.msg=Please check the approval date box +common.isExist.msg = already exist + +fail.common.insert = fail to insert. +fail.common.update = fail to update +fail.common.delete = fail to delete +fail.common.delete.upperMenuExist = fail to delete[upperMenuId foreign key error] +fail.common.select = fail to select +fail.common.login = login information is not correct +fail.common.loginIncorrect = login in more than {0} account will be locked! +fail.common.login.password = password information is not correct(password digit should be 8 to 20) +fail.common.idsearch = can not find id +fail.common.pwsearch = can not find password +fail.request.msg = Failed to handle the request +fail.common.login.ip = Login is refused because it is not a registered IP. + +#UI User Message# +fail.user.passwordUpdate1=current password is not correct +fail.user.passwordUpdate2=password confirm is not correct +info.user.rlnmCnfirm=realname confirm ready +success.user.rlnmCnfirm=it is realname +fail.user.rlnmCnfirm=it is not realname +fail.user.connectFail=connection fail +info.user.rlnmPinCnfirm=Using the i-PIN ID, please check your real name +success.user.rlnmPinCnfirm=Consistent with the registration data of the i-PIN +fail.user.rlnmPinCnfirm=i-PIN does not match the registered data + +#Vlidator Errors# +errors.prefix=
+errors.suffix=

+ +errors.required={0} is required. +errors.minlength={0} can not be less than {1} characters. +errors.maxlength={0} can not be greater than {1} characters. +errors.invalid={0} is invalid. + +errors.byte={0} must be a byte. +errors.short={0} must be a short. +errors.integer={0} must be an integer. +errors.long={0} must be a long. +errors.float={0} must be a float. +errors.double={0} must be a double. + +errors.date={0} is not a date. +errors.range={0} is not in the range {1} through {2}. +errors.creditcard={0} is an invalid credit card number. +errors.email={0} is an invalid e-mail address. + +errors.ihidnum=Is not a valid Social Security number +errors.korean={0} should be entered with their Korean +errors.ip=Invalid IP address. +errors.english={0}is an invalid English character. +errors.notKorean={0} should not be entered with their Korean + +errors.password1={0} must be entered within 8 to 20 characters. +errors.password2={0} is Korean, special characters, spaces are not allowed. +errors.password3={0} can not be used continuously for more than four sequential digits. +errors.password4={0} can not be used continuously for more than 4 letters or numbers that are repeated. +errors.pwdcheckcomb3={0} must be include as least 3 of English alphabet, digit number, special characters such as ~!@#$%^&*? +errors.pwdcheckcomb4={0} must be include as least 4 of English alphabet uppercase letter, English alphabet lowercase letter, digit number, special characters such as ~!@#$%^&*? +errors.pwdcheckseries={0} can not be used continuously for more than 3 sequential letters or digits. +errors.pwdcheckrepeat={0} can not be used continuously for more than 3 letters or numbers that are repeated. + +error.security.runtime.error = error + +info.password.rule.password1 = - must be entered within 8 to 20 characters. +info.password.rule.pwdcheckcomb3 = - must be include as least 3 of English alphabet, digit number, special characters such as ~!@#$%^&*? +info.password.rule.pwdcheckcomb4 = - must be include as least 4 of English alphabet uppercase letter, English alphabet lowercase letter, digit number, special characters such as ~!@#$%^&*? +info.password.rule.pwdcheckseries = - can not be used continuously for more than 3 sequential letters or digits ex) kkk, 321 are not allowed. + +#Xss Errors# +errors.xss.checkerUser=There is no use and disposal authority for its capabilities. + +#File Upload / Download +errors.file.extension=It is not a supported file type. +errors.file.transfer=An error occurred during file transfer. +success.file.transfer=The file transfer is complete. + +#common# +comCmmErr.button=before page + +#accessDenied# +comCmmErr.accessDenied.title=You do not have permission to access this page! +comCmmErr.accessDenied.code=User authorization Error + +#dataAccessFailure# +comCmmErr.dataAccessFailure.title=Error occurred while processing data! +comCmmErr.dataAccessFailure.code=Database Processing Error + + +#bizException# +comCmmErr.bizException.title=During business logic processing! +comCmmErr.bizException.code=Business Logic Processing Error + +#runtimeException# +comCmmErr.runtimeException.title=Unknown error occurred! +comCmmErr.runtimeException.code=System Error + +#sessionException# +comCmmErr.sessionException.title=Session Expiration Error! +comCmmErr.sessionException.code=Session Expiration Error + + +#top# +comCmm.top.title=eGoverment Standard Framework Common Components VERSION 4.0 +comCmm.top.leftSessionTime=Session expiration time +comCmm.top.incSessionTime=Time extension +comCmm.top.expiredSessionTime=Time out +comCmm.top.expireSessionTimeInfo=The Signin session time has expired. +comCmm.top.cantIncSessionTime=Time cannot be extended. + +#left# +comCmm.mai.title=Portal(example) Main Page +comCmm.uat.title=User Authentication/Directory Service +comCmm.sec.title=Security +comCmm.sts.title=Statistics/Reporting +comCmm.cop.title=Collaboration +comCmm.uss.title=User Support +comCmm.sym.title=System Management +comCmm.ssi.title=System/Service Integration +comCmm.dam.title=Digital Asset Management +comCmm.com.title=Utility Technology +comCmm.ext.title=External Add Components + +#component# +#Portal(example) Main Page# +comCmm.left.1=Portal(example) Main Page + +#User Authentication/Directory Service# +comCmm.left.10=Log In +comCmm.left.30=Log In Policy Management + +#Security# +comCmm.left.60=Authority Management +comCmm.left.70=Authority Group Management +comCmm.left.80=Group Management +comCmm.left.90=Role management for Each Authority +comCmm.left.100=Department Authority Management + +#Statistics/Reporting# +comCmm.left.120=Post Statistics +comCmm.left.130=User Statistics +comCmm.left.140=Connection Statistics +comCmm.left.150=Screen Statistics +comCmm.left.160=Report Statistics +comCmm.left.161=Data Usage Statistics + +#Collaboration# +comCmm.left.170=Blog Management +comCmm.left.180=Board Master Management +comCmm.left.190=Board Usage Management +comCmm.left.200=Template Management +comCmm.left.250=Scrap Management +comCmm.left.270=Community Creation/Usage/Member Management +comCmm.left.310=SMS Service +comCmm.left.320=Department Schedule Management +comCmm.left.330=Schedule Management +comCmm.left.340=Diary Management +comCmm.left.350=Master Schedule +comCmm.left.360=Send Mail +comCmm.left.361=Send Mail List +comCmm.left.370=Business Card Management +comCmm.left.371=My Business Card Management +comCmm.left.380=Address Book Management +comCmm.left.390=Executive Schedule Management +comCmm.left.400=Division Task Folder Management +comCmm.left.401=Division Task Information +comCmm.left.410=Weekly/Monthly Reports Management +comCmm.left.420=Memo/To-do List Management +comCmm.left.430=Memo Report + +#User Support# +comCmm.left.450=Corporate Member Management +comCmm.left.460=User Management +comCmm.left.461=Department Management +comCmm.left.470=Member Management +comCmm.left.480=My Page +comCmm.left.490=Provision Management +comCmm.left.500=Copyright Protection Policy +comCmm.left.510=Private Information Protection Policy +comCmm.left.520=Help +comCmm.left.530=Word Dictionary +comCmm.left.540=FAQ Management +comCmm.left.550=Q&A Management +comCmm.left.551=Q&A Answer +comCmm.left.560=Administration Terminology Dictionary +comCmm.left.561=Administration Terminology Dictionary Management +comCmm.left.570=Online Manual +comCmm.left.571=User Online Manual +comCmm.left.580=Consulting Management +comCmm.left.581=Consulting Answer Management +comCmm.left.590=Questionnaire Management +comCmm.left.600=Questionnaire Survey +comCmm.left.610=Questionnaire Template Management +comCmm.left.620=Questionnaire Respond Management +comCmm.left.630=Questionnaire Question Management +comCmm.left.640=Questionnaire Item Management +comCmm.left.650=Meeting Management +comCmm.left.660=Online POLL Management +comCmm.left.661=Online POLL Participation +comCmm.left.670=News Management +comCmm.left.680=Site Management +comCmm.left.700=Recommended Site Management +comCmm.left.710=Occasion/Event/Campaign +comCmm.left.711=Extra Human Resource +comCmm.left.720=Pop-up Management +comCmm.left.730=Information Alerts +comCmm.left.740=Banner Management +comCmm.left.741=MYPAGE Banner Management +comCmm.left.750=Login Page Image Management +comCmm.left.760=Recent Search Word Inquiry +comCmm.left.770=Main Image Management +comCmm.left.771=Main Image View Reflection Result +comCmm.left.780=Link Intergration Management +comCmm.left.790=User Absence Management +comCmm.left.800=Internet Service Information and Management +comCmm.left.810=Wiki Function +comCmm.left.820=RSS Tag Management +comCmm.left.822=RSS Tag Service +comCmm.left.830=Twitter Linkage +comCmm.left.831=Facebook Linkage +comCmm.left.840=Note Management +comCmm.left.850=Received Note Box Management +comCmm.left.860=Sent Note Box Management +comCmm.left.870=Meeting Room Management +comCmm.left.871=Meeting Room Reservation Management +comCmm.left.890=Employee Family Event Management +comCmm.left.891=Employee Congratulatory Approval Management +comCmm.left.900=Vacation Management +comCmm.left.901=Vacation Approval Management +comCmm.left.902=Personal Vocation Management +comCmm.left.910=Duty Management +comCmm.left.911=Duty Journal Management +comCmm.left.920=Compensation +comCmm.left.921=Compensation Approval Management +comCmm.left.930=Anniversary Management +comCmm.left.931=Anniversary List (Check) +comCmm.left.940=Event Application Management +comCmm.left.941=Event Reception Management +comCmm.left.942=Event Reception Approval Management +comCmm.left.943=Office Location Management +comCmm.left.950=Commute Management + +#System Management# +comCmm.left.960=Common Classification Code +comCmm.left.970=Common Detail Code +comCmm.left.980=Common Code +comCmm.left.1000=Address Management +comCmm.left.1010=Administration Code Management +comCmm.left.1020=Institutions Code Management +comCmm.left.1030=Log Management +comCmm.left.1040=User Log Management +comCmm.left.1050=Transmit/Receive Log Management +comCmm.left.1060=System History Management +comCmm.left.1070=Web Log Management +comCmm.left.1080=Connection Log Management +comCmm.left.1085=Privacy Log Management +comCmm.left.1090=Menu Management +comCmm.left.1091=Menu Management List +comCmm.left.1100=Menu Creation Management +comCmm.left.1101=Site Map +comCmm.left.1110=Short Cut Menu Management +comCmm.left.1111=Program Management +comCmm.left.1112=Program Change Management +comCmm.left.1113=Program Change Process +comCmm.left.1114=Program Change History +comCmm.left.1120=Batch Work Management +comCmm.left.1130=Batch Result Management +comCmm.left.1140=Schedule Process +comCmm.left.1150=Backup Management +comCmm.left.1151=Backup Result Management +comCmm.left.1160=NetWork Management +comCmm.left.1170=Server Information Management +comCmm.left.1171=Server S/W List +comCmm.left.1180=Trouble Request Management +comCmm.left.1190=Trouble Process Result Management + +#System/Service Integration# +comCmm.left.1210=System Contact Management +comCmm.left.1220=Contact Status Management +comCmm.left.1230=Contact Message Management +comCmm.left.1240=Contact Institution Management + +#Digital Asset Management# +comCmm.left.1250=Individual Knowledge Management +comCmm.left.1260=Knowledge Map Management by Types +comCmm.left.1261=Organizational Knowledge Map Management +comCmm.left.1270=Knowledge Expert Management +comCmm.left.1280=Knowledge Information Management +comCmm.left.1290=Knowledge Evaluation Management +comCmm.left.1291=Knowledge Information Offer + +#Utility Technology# +comCmm.left.1300=General Calendar +comCmm.left.2080=Transmit and Receive Monitoring +comCmm.left.2090=DB Service Monitoring +comCmm.left.2100=HTTP Service Monitoring +comCmm.left.2110=Process Monitoring +comCmm.left.2120=Network Service Monitoring +comCmm.left.2130=File System Monitoring +comCmm.left.2140=Proxy Service +comCmm.left.2150=File Synchronization +comCmm.left.2160=Login Session Information Check +comCmm.left.2170=Server Resource Monitoring +comCmm.left.2180=Address Info Linkage +comCmm.left.2200=Encryption/Decryption + +#External Add Components# +comCmm.left.3000=JFile Guide +comCmm.left.3010=JFile File Upload +comCmm.left.3020=JFile File Download +comCmm.left.3100=LDAP Org. Management +comCmm.left.3110=LDAP Org. Graph +comCmm.left.3200=WebMessenger + +#EgovUnitContent(\ub85c\uadf8\uc778 \ud6c4 \ud398\uc774\uc9c0)# +comCmm.unitContent.1=Common Compoent +comCmm.unitContent.2=Welcome. +comCmm.unitContent.3=Logout +comCmm.unitContent.4=If you run into any errors, please contact the eGovframework center. +comCmm.unitContent.5=Screen description +comCmm.unitContent.6=The left menu is not affected by the menu-related components (menu management, site map, etc.) +comCmm.unitContent.7=Controller class that finds installed components after installing components through IncludedInfo annotation and processes information to be displayed on the screen. +comCmm.unitContent.8= +comCmm.unitContent.9= +comCmm.unitContent.10=Before the menu structure is developed, +comCmm.unitContent.11=the list of common components included in the distribution files is provided. +comCmm.unitContent.12=If you use this control to configure menus at runtime, +comCmm.unitContent.13=we recommend that you delete and deploy them in production +comCmm.unitContent.14= because they can cause performance problems or cause errors in your menu configuration. + +comCmm.unitContent.20=Password expiration notice + +#EgovExpirePwd(\ube44\ubc00\ubc88\ud638\ubcc0\uacbd \uacf5\uc9c0)# +comCmm.expirePwdContent.1=Login +comCmm.expirePwdContent.2=Login classification + +comCmm.expirePwdContent.10=Manager +comCmm.expirePwdContent.11=Corporate Member +comCmm.expirePwdContent.12=General Member + +comCmm.expirePwdContent.21=Please refer to the following file to change the password expiration date. +comCmm.expirePwdContent.22=Password expiration +comCmm.expirePwdContent.23=Password validity has expired. +comCmm.expirePwdContent.24=Please change your password now for safe privacy! +comCmm.expirePwdContent.25=Password expiration days +comCmm.expirePwdContent.26=Password validity period +comCmm.expirePwdContent.27=Number of days since password change +comCmm.expirePwdContent.28=Password expiration days +comCmm.expirePwdContent.29=Please change your password periodically. +comCmm.expirePwdContent.30=days + +comCmm.expirePwdContent.50=Change immediately +comCmm.expirePwdContent.51=Change next \ No newline at end of file diff --git a/batch/src/main/resources/messages/message-common_ko.properties b/batch/src/main/resources/messages/message-common_ko.properties new file mode 100644 index 00000000..fc3577a6 --- /dev/null +++ b/batch/src/main/resources/messages/message-common_ko.properties @@ -0,0 +1,467 @@ +fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +fail.common.sql=sql \uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! error code: {0}, error msg: {1} +info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. + +#UI Common resource# +table.num=\ubc88\ud638 +table.regdate=\ub4f1\ub85d\uc77c +table.reger=\ub4f1\ub85d\uc790 +table.select=\uc120\ud0dd +title.html=egovframe common component +title.detail=\uc0c1\uc138\uc870\ud68c +title.inquire=\uc870\ud68c +title.update=\uc218\uc815 +title.create=\ub4f1\ub85d +title.delete=\uc0ad\uc81c +title.save=\uc800\uc7a5 +title.list=\ubaa9\ub85d +title.searchCondition=\uac80\uc0c9\uc870\uac74 +title.search=\uac80\uc0c9\uc5b4 +title.reply=\ub2f5\uae00 +title.scrap=\uc2a4\ud06c\ub7a9 +title.comment=\ub313\uae00 +title.attachedFileSelect=\ud30c\uc77c\uc120\ud0dd +title.attachedFileDelete=\ud30c\uc77c\uc0ad\uc81c +title.link=\ub9c1\ud06c +title.management=\uad00\ub9ac +title.all=\uc804\uccb4 + +input.select=\uc120\ud0dd\ud558\uc138\uc694 +input.cSelect=\uc120\ud0dd +input.input=\uc785\ub825 +input.button=\ubc84\ud2bc +input.selectAll.title=\uc804\uccb4\uc120\ud0dd\uccb4\ud06c\ubc15\uc2a4 +input.yes=\uc608 +input.no=\uc544\ub2c8\uc624 + +select.searchCondition=\uc870\ud68c\uc870\uac74 \uc120\ud0dd + +button.select=\uc120\ud0dd +button.search=\uac80\uc0c9 +button.use=\uc0ac\uc6a9 +button.notUsed=\uc0ac\uc6a9\uc911\uc9c0 +button.inquire=\uc870\ud68c +button.update=\uc218\uc815 +button.create=\ub4f1\ub85d +button.delete=\uc0ad\uc81c +button.deleteDatabase=\uc644\uc804\uc0ad\uc81c +button.close=\ub2eb\uae30 +button.save=\uc800\uc7a5 +button.list=\ubaa9\ub85d +button.reset=\ucde8\uc18c +button.passwordUpdate=\uc554\ud638\ubcc0\uacbd +button.subscribe=\uac00\uc785\uc2e0\uccad +button.realname=\uc2e4\uba85\ud655\uc778 +button.moveToGpin=GPIN\uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.moveToIhidnum=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 \uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9 +button.agree=\ub3d9\uc758 +button.disagree=\ube44\ub3d9\uc758 +button.possible=\uac00\ub2a5 +button.impossible=\ubd88\uac00\ub2a5 +button.qnaregist=Q&A\ub4f1\ub85d +button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d +button.preview=\ubbf8\ub9ac\ubcf4\uae30 +button.next=\ub2e4\uc74c +button.add=\ubc14\ub85c\ucd94\uac00 +button.confirm=\ud655\uc778 +button.back = \ub4a4\ub85c +button.yes = \uc608 +button.no = \uc544\ub2c8\uc624 +button.home = \ud648 +button.user = \uc0ac\uc6a9\uc790\uc9c0\uc6d0 +button.cop = \ud611\uc5c5 +button.wrkstart = \ucd9c\uadfc +button.wrkend = \ud1f4\uadfc +button.reply = \ub2f5\uae00 +button.scrap = \uc2a4\ud06c\ub7a9 +button.comment = \ub313\uae00 +button.excel = \uc5d1\uc140 +button.init=\ucd08\uae30\ud654 +button.acknowledgment=\uc2b9\uc778 +button.cancelAcknowledgment=\uc2b9\uc778\ucde8\uc18c +button.bulkUpload=\uc77c\uad04\ub4f1\ub85d +button.log = \ub85c\uadf8 +button.set = \uc124\uc815 +button.move = \uc774\ub3d9 +button.answer = \ub2f5\ubcc0 + +#UI Common Message# +common.noScriptTitle.msg=\uc790\ubc14\uc2a4\ud06c\ub9bd\ud2b8\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\ub294 \ube0c\ub77c\uc6b0\uc800\uc5d0\uc11c\ub294 \uc77c\ubd80 \uae30\ub2a5\uc744 \uc0ac\uc6a9\ud558\uc2e4 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.searchCondition.msg=\uc774 \ub808\uc774\uc544\uc6c3\uc740 \ud558\ub2e8 \uc815\ubcf4\ub97c \ub300\ud55c \uac80\uc0c9 \uc815\ubcf4\ub85c \uad6c\uc131\ub418\uc5b4 \uc788\uc2b5\ub2c8\ub2e4. + +common.summary.list={0}\uc758 \ub0b4\uc5ed\uc5d0 \ub300\ud55c \ubaa9\ub85d\uc744 \ucd9c\ub825\ud569\ub2c8\ub2e4. +common.summary.regist={0}\uc758 \ub4f1\ub85d \uac00\ub2a5\ud55c \ub0b4\uc6a9\uc744 \uc785\ub825\ud558\uc5ec \ub4f1\ub85d \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \ub4f1\ub85d\ud55c\ub2e4. +common.summary.update={0}\uc758 \ub4f1\ub85d \uac00\ub2a5\ud55c \ub0b4\uc6a9\uc744 \uc785\ub825\ud558\uc5ec \ub4f1\ub85d \ubc84\ud2bc\uc744 \ud074\ub9ad\ud558\uc5ec \uc218\uc815\ud55c\ub2e4. +common.summary.inqire={0}\uc758 \ub0b4\uc5ed\uc5d0 \ub300\ud55c \uc0c1\uc138\uc870\ud68c \ub0b4\uc5ed\uc744 \ucd9c\ub825\ud569\ub2c8\ub2e4. + +common.save.msg=\uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.regist.msg=\ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.delete.msg=\uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.update.msg=\uc218\uc815\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nodata.msg=\uc790\ub8cc\uac00 \uc5c6\uc2b5\ub2c8\ub2e4. \ub2e4\ub978 \uac80\uc0c9\uc870\uac74\uc744 \uc120\ud0dd\ud574\uc8fc\uc138\uc694 +common.required.msg=(\uc740)\ub294 \ud544\uc218\uc785\ub825\ud56d\ubaa9\uc785\ub2c8\ub2e4. +common.acknowledgement.msg=\uc2b9\uc778\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.acknowledgementcancel.msg=\uc2b9\uc778\ucde8\uc18c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +common.nocomment.msg=\ub313\uae00\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. +common.noguest.msg=\uc791\uc131\ub41c \ubc29\uba85\ub85d\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. + +success.request.msg = \uc694\uccad\ucc98\ub9ac\uac00 \uc131\uacf5\uc801\uc73c\ub85c \uc218\ud589\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.select=\uc815\uc0c1\uc801\uc73c\ub85c \uc870\ud68c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.insert=\uc815\uc0c1\uc801\uc73c\ub85c \ub4f1\ub85d\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.update=\uc815\uc0c1\uc801\uc73c\ub85c \uc218\uc815\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +success.common.delete=\uc815\uc0c1\uc801\uc73c\ub85c \uc0ad\uc81c\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +common.imposbl.fileupload = \ub354 \uc774\uc0c1 \ud30c\uc77c\uc744 \ucca8\ubd80\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +common.isConfmDe.msg=\uc2b9\uc778\uc77c\uc790\ub97c \ud655\uc778 \ubc14\ub78d\ub2c8\ub2e4. +common.isExist.msg = \uc774\ubbf8 \uc874\uc7ac\ud558\uac70\ub098 \uacfc\uac70\uc5d0 \ub4f1\ub85d\uc774 \ub418\uc5c8\ub358 \uc0c1\ud0dc\uc785\ub2c8\ub2e4. + +fail.common.insert = \uc0dd\uc131\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.update = \uc218\uc815\uc774 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete = \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.delete.upperMenuExist = \ucc38\uc870\ub418\ub294 \uba54\ub274\uac00 \uc788\uc5b4 \uc0ad\uc81c\uac00 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.select = \uc870\ud68c\uc5d0 \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.login = \ub85c\uadf8\uc778 \uc815\ubcf4\uac00 \uc62c\ubc14\ub974\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.common.loginIncorrect = {0}\ud68c \uc774\uc0c1 \ub85c\uadf8\uc778 \uc811\uc18d\uc774 \uc2dc\ub3c4 \ub418\uc5b4 \uacc4\uc815\uc774 \uc7a0\uaca8\uc2b5\ub2c8\ub2e4! +fail.common.login.password = \ud328\uc2a4\uc6cc\ub4dc \uc790\ub9ac \uc218\uac00 \uc77c\uce58 \ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.(8\uc790\ub9ac \uc774\uc0c1 20\uc790\ub9ac \uc774\ud558) +fail.common.idsearch = \uc544\uc774\ub514\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.common.pwsearch = \ube44\ubc00\ubc88\ud638\ub97c \ucc3e\uc744\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +fail.request.msg = \uc694\uccad\ucc98\ub9ac\ub97c \uc2e4\ud328\ud558\uc600\uc2b5\ub2c8\ub2e4. +fail.common.login.ip = \ub4f1\ub85d\ub41c IP\uac00 \uc544\ub2c8\ubbc0\ub85c \ub85c\uadf8\uc778\uc774 \uac70\ubd80\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +#UI User Message# +fail.user.passwordUpdate1=\ud604\uc7ac \ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.passwordUpdate2=\ube44\ubc00\ubc88\ud638\uc640 \ube44\ubc00\ubc88\ud638 \ud655\uc778\uc774 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +info.user.rlnmCnfirm=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmCnfirm=\ud589\uc815\uc548\uc804\ubd80\uc758 \uc8fc\ubbfc\ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +fail.user.connectFail=\uc2dc\uc2a4\ud15c \uc7a5\uc560\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4.(\uc778\uc99d\uc11c\ubc84 \uc5f0\uacb0 \uc2e4\ud328) +info.user.rlnmPinCnfirm=\uacf5\uacf5 \uc544\uc774\ud540 \uc544\uc774\ub514\ub97c \uc0ac\uc6a9\ud558\uc5ec \uc2e4\uba85\ud655\uc778\uc744 \ud558\uc2ed\uc2dc\uc624. +success.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud569\ub2c8\ub2e4. +fail.user.rlnmPinCnfirm=\uacf5\uacf5\uc544\uc774\ud540\uc758 \ub4f1\ub85d\uc790\ub8cc\uc640 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#Vlidator Errors# +errors.prefix=
+errors.suffix=

+ +errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4. +errors.minlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.maxlength={0}\uc740(\ub294) {1}\uc790 \uc774\uc0c1 \uc785\ub825\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.invalid={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uac12\uc785\ub2c8\ub2e4. +errors.minInteger={0}\uc740(\ub294) \uc720\ud6a8\ud55c \uac12\uc774 \uc544\ub2d9\ub2c8\ub2e4. 1 \uc774\uc0c1\uc758 \uac12\uc744 \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.byte={0}\uc740(\ub294) byte\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.short={0}\uc740(\ub294) short\ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.integer={0}\uc740(\ub294) integer \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.long={0}\uc740(\ub294) long \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.float={0}\uc740(\ub294) float \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.double={0}\uc740(\ub294) double \ud0c0\uc785\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. + +errors.date={0}\uc740(\ub294) \ub0a0\uc9dc \uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.range={0}\uc740(\ub294) {1}\uacfc {2} \uc0ac\uc774\uc758 \uac12\uc774\uc5b4\uc57c \ud569\ub2c8\ub2e4. +errors.creditcard={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc2e0\uc6a9\uce74\ub4dc \ubc88\ud638\uc785\ub2c8\ub2e4. +errors.email={0}\uc740(\ub294) \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc774\uba54\uc77c \uc8fc\uc18c\uc785\ub2c8\ub2e4. + +errors.ihidnum=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638\uc785\ub2c8\ub2e4. +errors.korean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc785\ub825\ud558\uc154\uc57c \ud569\ub2c8\ub2e4. +errors.ip=\uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 IP\uc8fc\uc18c\uc785\ub2c8\ub2e4. +errors.english={0}\uc740(\ub294) \uc601\ubb38\ub9cc \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc788\uc2b5\ub2c8\ub2e4. +errors.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +errors.password1={0}\uc740(\ub294) 8~20\uc790 \ub0b4\uc5d0\uc11c \uc785\ub825\ud574\uc57c \ud569\ub2c8\ub2e4. +errors.password2={0}\uc740(\ub294) \ud55c\uae00,\ud2b9\uc218\ubb38\uc790,\ub744\uc5b4\uc4f0\uae30\ub294 \ud5c8\uc6a9\ub418\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. +errors.password3={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.password4={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 4\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.pwdcheckcomb3={0}\uc740(\ub294) \uc601\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569\uc73c\ub85c \uc774\ub8e8\uc5b4 \uc838\uc57c \ud569\ub2c8\ub2e4. +errors.pwdcheckcomb4={0}\uc740(\ub294) \uc601\ubb38\ub300\ubb38\uc790,\uc601\ubb38\uc18c\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569\uc73c\ub85c \uc774\ub8e8\uc5b4 \uc838\uc57c \ud569\ub2c8\ub2e4. +errors.pwdcheckseries={0}\uc740(\ub294) \uc21c\ucc28\uc801\uc778 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 3\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +errors.pwdcheckrepeat={0}\uc740(\ub294) \ubc18\ubcf5\ub418\ub294 \ubb38\uc790\ub098 \uc22b\uc790\ub97c 3\uac1c\uc774\uc0c1 \uc5f0\uc18d\ud574\uc11c \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +error.security.runtime.error = error + +info.password.rule.password1 = - 8\uc774\uc0c1 20\uc790\ub9ac \uc774\ud558 +info.password.rule.pwdcheckcomb3 = - \uc601\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569 +info.password.rule.pwdcheckcomb4 = - \uc601\ubb38\ub300\ubb38\uc790,\uc601\ubb38\uc18c\ubb38\uc790,\uc22b\uc790,\ud2b9\uc218\ubb38\uc790(~!@#$%^&*?)\uc758 \uc870\ud569 +info.password.rule.pwdcheckseries = - 3\uc790\ub9ac \uc774\uc0c1 \ubc18\ubcf5 \ub610\ub294 \uc5f0\uc18d\ub41c \ubb38\uc790 \uc0ac\uc6a9 \uae08\uc9c0. \uc608)kkk , 321 \ub4f1 \uc0ac\uc6a9\uae08\uc9c0 + +#Xss Errors# +errors.xss.checkerUser=\ud574\ub2f9 \uae30\ub2a5\uc5d0 \ub300\ud55c \uc0ac\uc6a9 \ubc0f \ucc98\ub9ac \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. + +#File Upload / Download +errors.file.extension=\uc9c0\uc6d0\ub418\ub294 \ud30c\uc77c\uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4. +errors.file.transfer=\ud30c\uc77c\uc804\uc1a1\uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4. +success.file.transfer=\ud30c\uc77c\uc804\uc1a1\uc774 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4. + +#common# +comCmmErr.button=\uc774\uc804 \ud398\uc774\uc9c0 + +#accessDenied# +comCmmErr.accessDenied.title=\ud604\uc7ac \ud398\uc774\uc9c0\uc5d0 \ub300\ud55c \uc811\uadfc\uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4! +comCmmErr.accessDenied.code=\uc0ac\uc6a9\uc790\uc811\uadfc\uad8c\ud55c \uc5d0\ub7ec + +#dataAccessFailure# +comCmmErr.dataAccessFailure.title=\ub370\uc774\ud130 \ucc98\ub9ac \uc911 \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc600\uc2b5\ub2c8\ub2e4! +comCmmErr.dataAccessFailure.code=\ub370\uc774\ud130\ucc98\ub9ac \uc5d0\ub7ec + +#bizException# +comCmmErr.bizException.title=\ube44\uc988\ub2c8\uc2a4 \ub85c\uc9c1 \ucc98\ub9ac \uc911 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +comCmmErr.bizException.code=\ube44\uc988\ub2c8\uc2a4\ub85c\uc9c1\ucc98\ub9ac \uc5d0\ub7ec + +#runtimeException# +comCmmErr.runtimeException.title=\uc54c \uc218 \uc5c6\ub294 \uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc2b5\ub2c8\ub2e4! +comCmmErr.runtimeException.code=\uc2dc\uc2a4\ud15c \uc5d0\ub7ec + +#sessionException# +comCmmErr.sessionException.title=\uc138\uc158\uc774 \ub9cc\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4! +comCmmErr.sessionException.code=\uc138\uc158\ub9cc\ub8cc \uc5d0\ub7ec + + +#top# +comCmm.top.title=\uc804\uc790\uc815\ubd80 \ud45c\uc900\ud504\ub808\uc784\uc6cc\ud06c \uacf5\ud1b5\ucef4\ud3ec\ub10c\ud2b8 VERSION 4.0 +comCmm.top.leftSessionTime=\uc138\uc158\ub9cc\ub8cc \ub0a8\uc740\uc2dc\uac04 +comCmm.top.incSessionTime=\uc2dc\uac04\uc5f0\uc7a5 +comCmm.top.expiredSessionTime=\uc2dc\uac04\ub9cc\ub8cc +comCmm.top.expireSessionTimeInfo=\ub85c\uadf8\uc778 \uc138\uc158\uc2dc\uac04\uc774 \ub9cc\ub8cc \ub418\uc5c8\uc2b5\ub2c8\ub2e4. +comCmm.top.cantIncSessionTime=\uc2dc\uac04\uc744 \uc5f0\uc7a5\ud560\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. + +#left# +comCmm.mai.title=\ud3ec\ud138(\uc608\uc81c) \uba54\uc778\ud654\uba74 +comCmm.uat.title=\uc0ac\uc6a9\uc790\ub514\ub809\ud1a0\ub9ac/\ud1b5\ud569\uc778\uc99d +comCmm.sec.title=\ubcf4\uc548 +comCmm.sts.title=\ud1b5\uacc4/\ub9ac\ud3ec\ud305 +comCmm.cop.title=\ud611\uc5c5 +comCmm.uss.title=\uc0ac\uc6a9\uc790\uc9c0\uc6d0 +comCmm.sym.title=\uc2dc\uc2a4\ud15c\uad00\ub9ac +comCmm.ssi.title=\uc2dc\uc2a4\ud15c/\uc11c\ube44\uc2a4\uc5f0\uacc4 +comCmm.dam.title=\ub514\uc9c0\ud138 \uc790\uc0b0 \uad00\ub9ac +comCmm.com.title=\uc694\uc18c\uae30\uc220 +comCmm.ext.title=\uc678\ubd80 \ucd94\uac00 \ucef4\ud3ec\ub10c\ud2b8 + +#component# +#\ud3ec\ud0c8 \uba54\uc778\ud654\uba74# +comCmm.left.1=\ud3ec\ud138(\uc608\uc81c) \uba54\uc778\ud654\uba74 + +#\uc0ac\uc6a9\uc790\ub514\ub809\ud1a0\ub9ac/\ud1b5\ud569\uc778\uc99d# +comCmm.left.10=\ub85c\uadf8\uc778 +comCmm.left.30=\ub85c\uadf8\uc778\uc815\ucc45\uad00\ub9ac + +#\ubcf4\uc548# +comCmm.left.60=\uad8c\ud55c\uad00\ub9ac +comCmm.left.70=\uad8c\ud55c\uadf8\ub8f9\uad00\ub9ac +comCmm.left.80=\uadf8\ub8f9\uad00\ub9ac +comCmm.left.90=\ub864\uad00\ub9ac +comCmm.left.100=\ubd80\uc11c\uad8c\ud55c\uad00\ub9ac + +#\ud1b5\uacc4/\ub9ac\ud3ec\ud305# +comCmm.left.120=\uac8c\uc2dc\ubb3c\ud1b5\uacc4 +comCmm.left.130=\uc0ac\uc6a9\uc790\ud1b5\uacc4 +comCmm.left.140=\uc811\uc18d\ud1b5\uacc4 +comCmm.left.150=\ud654\uba74\ud1b5\uacc4 +comCmm.left.160=\ubcf4\uace0\uc11c\ud1b5\uacc4 +comCmm.left.161=\uc790\ub8cc\uc774\uc6a9\ud604\ud669\ud1b5\uacc4 + +\ud611\uc5c5 +comCmm.left.170=\ube14\ub85c\uadf8\uad00\ub9ac +comCmm.left.180=\uac8c\uc2dc\ud310\uad00\ub9ac +comCmm.left.190=\uac8c\uc2dc\ud310\uc0ac\uc6a9\uc815\ubcf4 +comCmm.left.200=\ud15c\ud50c\ub9bf\uad00\ub9ac +comCmm.left.250=\uc2a4\ud06c\ub7a9 \ubaa9\ub85d +comCmm.left.270=\ucee4\ubba4\ub2c8\ud2f0\uad00\ub9ac +comCmm.left.310=\ubb38\uc790\uba54\uc2dc\uc9c0 +comCmm.left.320=\ubd80\uc11c\uc77c\uc815\uad00\ub9ac +comCmm.left.330=\uc77c\uc815\uad00\ub9ac +comCmm.left.340=\uc77c\uc9c0\uad00\ub9ac +comCmm.left.350=\uc804\uccb4\uc77c\uc815\uad00\ub9ac +comCmm.left.360=\uba54\uc77c\ubc1c\uc1a1 +comCmm.left.361=\ubc1c\uc1a1\uba54\uc77c\ub0b4\uc5ed +comCmm.left.370=\uba85\ud568\uad00\ub9ac +comCmm.left.371=\ub0b4\uba85\ud568\ubaa9\ub85d +comCmm.left.380=\uc8fc\uc18c\ub85d\uad00\ub9ac +comCmm.left.390=\uac04\ubd80\uc77c\uc815\uad00\ub9ac +comCmm.left.400=\ubd80\uc11c\uc5c5\ubb34\ud568\uad00\ub9ac +comCmm.left.401=\ubd80\uc11c\uc5c5\ubb34\uc815\ubcf4 +comCmm.left.410=\uc8fc\uac04/\uc6d4\uac04\ubcf4\uace0\uad00\ub9ac +comCmm.left.420=\uba54\ubaa8\ud560\uc77c\uad00\ub9ac +comCmm.left.430=\uba54\ubaa8\ubcf4\uace0 + +#\uc0ac\uc6a9\uc790\uc9c0\uc6d0# +comCmm.left.450=\uae30\uc5c5\ud68c\uc6d0\uad00\ub9ac +comCmm.left.460=\uc5c5\ubb34\uc0ac\uc6a9\uc790\uad00\ub9ac +comCmm.left.461=\ubd80\uc11c\uad00\ub9ac +comCmm.left.470=\uc77c\ubc18\ud68c\uc6d0\uad00\ub9ac +comCmm.left.480=\ub9c8\uc774\ud398\uc774\uc9c0\uad00\ub9ac +comCmm.left.490=\uc57d\uad00\uad00\ub9ac +comCmm.left.500=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45 +comCmm.left.510=\uac1c\uc778\uc815\ubcf4\ubcf4\ud638\uc815\ucc45\ud655\uc778 +comCmm.left.520=\ub3c4\uc6c0\ub9d0 +comCmm.left.530=\uc6a9\uc5b4\uc0ac\uc804 +comCmm.left.540=FAQ\uad00\ub9ac +comCmm.left.550=Q&A\uad00\ub9ac +comCmm.left.551=Q&A\ub2f5\ubcc0\uad00\ub9ac +comCmm.left.560=\ud589\uc815\uc804\ubb38\uc6a9\uc5b4\uc0ac\uc804 +comCmm.left.561=\ud589\uc815\uc804\ubb38\uc6a9\uc5b4\uc0ac\uc804\uad00\ub9ac +comCmm.left.570=\uc628\ub77c\uc778\ub9e4\ub274\uc5bc +comCmm.left.571=\uc0ac\uc6a9\uc790\uc628\ub77c\uc778\ub9e4\ub274\uc5bc +comCmm.left.580=\uc0c1\ub2f4\uad00\ub9ac +comCmm.left.581=\uc0c1\ub2f4\ub2f5\ubcc0\uad00\ub9ac +comCmm.left.590=\uc124\ubb38\uad00\ub9ac +comCmm.left.600=\uc124\ubb38\uc870\uc0ac +comCmm.left.610=\uc124\ubb38\ud15c\ud50c\ub9bf\uad00\ub9ac +comCmm.left.620=\uc751\ub2f5\uc790\uad00\ub9ac +comCmm.left.630=\uc9c8\ubb38\uad00\ub9ac +comCmm.left.640=\ud56d\ubaa9\uad00\ub9ac +comCmm.left.650=\ud68c\uc758\uad00\ub9ac +comCmm.left.660=\uc628\ub77c\uc778poll\uad00\ub9ac +comCmm.left.661=\uc628\ub77c\uc778poll\ucc38\uc5ec +comCmm.left.670=\ub274\uc2a4\uad00\ub9ac +comCmm.left.680=\uc0ac\uc774\ud2b8\uad00\ub9ac +comCmm.left.700=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uad00\ub9ac +comCmm.left.710=\ud589\uc0ac/\uc774\ubca4\ud2b8/\ucea0\ud398\uc778 +comCmm.left.711=\uc678\ubd80\uc778\uc0ac\uc815\ubcf4 +comCmm.left.720=\ud31d\uc5c5\ucc3d\uad00\ub9ac +comCmm.left.730=\uc815\ubcf4\uc54c\ub9bc\uc774 +comCmm.left.740=\ubc30\ub108\uad00\ub9ac +comCmm.left.741=MYPAGE\ubc30\ub108\uad00\ub9ac +comCmm.left.750=\ub85c\uadf8\uc778\ud654\uba74\uc774\ubbf8\uc9c0\uad00\ub9ac +comCmm.left.760=\ucd5c\uadfc\uac80\uc0c9\uc5b4 \uc870\ud68c +comCmm.left.770=\uba54\uc778\uc774\ubbf8\uc9c0\uad00\ub9ac +comCmm.left.771=\uba54\uc778\uc774\ubbf8\uc9c0 \ubc18\uc601\uacb0\uacfc\ubcf4\uae30 +comCmm.left.780=\ud1b5\ud569\ub9c1\ud06c\uad00\ub9ac +comCmm.left.790=\uc0ac\uc6a9\uc790\ubd80\uc7ac\uad00\ub9ac +comCmm.left.800=\uc778\ud130\ub137\uc11c\ube44\uc2a4\uc548\ub0b4\ubc0f\uad00\ub9ac +comCmm.left.810=Wiki\uae30\ub2a5 +comCmm.left.820=RSS\ud0dc\uadf8\uad00\ub9ac +comCmm.left.822=RSS\ud0dc\uadf8\uc11c\ube44\uc2a4 +comCmm.left.830=Twitter\uc5f0\ub3d9 +comCmm.left.831=Facebook \uc5f0\ub3d9 +comCmm.left.840=\ucabd\uc9c0\uad00\ub9ac +comCmm.left.850=\ubc1b\uc740\ucabd\uc9c0\ud568\uad00\ub9ac +comCmm.left.860=\ubcf4\ub0b8\ucabd\uc9c0\ud568\uad00\ub9ac +comCmm.left.870=\ud68c\uc758\uc2e4\uad00\ub9ac +comCmm.left.871=\ud68c\uc758\uc2e4\uc608\uc57d\uad00\ub9ac +comCmm.left.890=\uc9c1\uc6d0\uacbd\uc870\uc0ac\uad00\ub9ac +comCmm.left.891=\uc9c1\uc6d0\uacbd\uc870\uc0ac\uc2b9\uc778\uad00\ub9ac +comCmm.left.900=\ud734\uac00\uad00\ub9ac +comCmm.left.901=\ud734\uac00\uc2b9\uc778\uad00\ub9ac +comCmm.left.902=\uac1c\uc778\uc5f0\ucc28\uad00\ub9ac +comCmm.left.910=\ub2f9\uc9c1\uad00\ub9ac +comCmm.left.911=\ub2f9\uc9c1\uccb4\ud06c\uad00\ub9ac +comCmm.left.920=\ud3ec\uc0c1\uad00\ub9ac +comCmm.left.921=\ud3ec\uc0c1\uc2b9\uc778\uad00\ub9ac +comCmm.left.930=\uae30\ub150\uc77c\uad00\ub9ac +comCmm.left.931=\uae30\ub150\uc77c\ubaa9\ub85d(\ud655\uc778\uc6a9) +comCmm.left.940=\ud589\uc0ac\uc2e0\uccad\uad00\ub9ac +comCmm.left.941=\ud589\uc0ac\uc811\uc218\uad00\ub9ac +comCmm.left.942=\ud589\uc0ac\uc811\uc218\uc2b9\uc778\uad00\ub9ac +comCmm.left.943=\uc57d\ub3c4 \uad00\ub9ac +comCmm.left.950=\ucd9c\ud1f4\uadfc\uad00\ub9ac + +#\uc2dc\uc2a4\ud15c\uad00\ub9ac# +comCmm.left.960=\uacf5\ud1b5\ubd84\ub958\ucf54\ub4dc +comCmm.left.970=\uacf5\ud1b5\uc0c1\uc138\ucf54\ub4dc +comCmm.left.980=\uacf5\ud1b5\ucf54\ub4dc +comCmm.left.1000=\uc6b0\ud3b8\ubc88\ud638\uad00\ub9ac +comCmm.left.1010=\ud589\uc815\ucf54\ub4dc\uad00\ub9ac +comCmm.left.1020=\uae30\uad00\ucf54\ub4dc\uc218\uc2e0 +comCmm.left.1030=\ub85c\uadf8\uad00\ub9ac +comCmm.left.1040=\uc0ac\uc6a9\ub85c\uadf8\uad00\ub9ac +comCmm.left.1050=\uc1a1/\uc218\uc2e0\ub85c\uadf8\uad00\ub9ac +comCmm.left.1060=\uc2dc\uc2a4\ud15c\uc774\ub825\uad00\ub9ac +comCmm.left.1070=\uc6f9\ub85c\uadf8\uad00\ub9ac +comCmm.left.1080=\uc811\uc18d\ub85c\uadf8\uad00\ub9ac +comCmm.left.1085=\uac1c\uc778\uc815\ubcf4\uc870\ud68c\ub85c\uadf8\uad00\ub9ac +comCmm.left.1090=\uba54\ub274\ub9ac\uc2a4\ud2b8\uad00\ub9ac +comCmm.left.1091=\uba54\ub274\uad00\ub9ac\ub9ac\uc2a4\ud2b8 +comCmm.left.1100=\uba54\ub274\uc0dd\uc131\uad00\ub9ac +comCmm.left.1101=\uc0ac\uc774\ud2b8\ub9f5 +comCmm.left.1110=\ubc14\ub85c\uac00\uae30\uba54\ub274\uad00\ub9ac +comCmm.left.1111=\ud504\ub85c\uadf8\ub7a8\uad00\ub9ac +comCmm.left.1112=\ud504\ub85c\uadf8\ub7a8\ubcc0\uacbd\uc694\uccad\uad00\ub9ac +comCmm.left.1113=\ud504\ub85c\uadf8\ub7a8\ubcc0\uacbd\uc694\uccad\ucc98\ub9ac +comCmm.left.1114=\ud504\ub85c\uadf8\ub7a8\ubcc0\uacbd\uc774\ub825 +comCmm.left.1120=\ubc30\uce58\uc791\uc5c5\uad00\ub9ac +comCmm.left.1130=\ubc30\uce58\uacb0\uacfc\uad00\ub9ac +comCmm.left.1140=\uc2a4\ucf00\uc904\ucc98\ub9ac +comCmm.left.1150=\ubc31\uc5c5\uad00\ub9ac +comCmm.left.1151=\ubc31\uc5c5\uacb0\uacfc\uad00\ub9ac +comCmm.left.1160=\ub124\ud2b8\uc6cc\ud06c\uad00\ub9ac +comCmm.left.1170=\uc11c\ubc84\uc815\ubcf4\uad00\ub9ac +comCmm.left.1171=\uc11c\ubc84(S/W)\ubaa9\ub85d +comCmm.left.1180=\uc7a5\uc560\uc2e0\uccad\uad00\ub9ac +comCmm.left.1190=\uc7a5\uc560\ucc98\ub9ac\uacb0\uacfc\uad00\ub9ac + +#\uc2dc\uc2a4\ud15c/\uc11c\ube44\uc2a4\uc5f0\uacc4# +comCmm.left.1210=\uc2dc\uc2a4\ud15c\uc5f0\uacc4\uad00\ub9ac +comCmm.left.1220=\uc5f0\uacc4\ud604\ud669\uad00\ub9ac +comCmm.left.1230=\uc5f0\uacc4\uba54\uc2dc\uc9c0\uad00\ub9ac +comCmm.left.1240=\uc5f0\uacc4\uae30\uad00\uad00\ub9ac + +#\ub514\uc9c0\ud138 \uc790\uc0b0 \uad00\ub9ac# +comCmm.left.1250=\uac1c\uc778\uc9c0\uc2dd\uad00\ub9ac +comCmm.left.1260=\uc9c0\uc2dd\ub9f5\uad00\ub9ac(\uc720\ud615) +comCmm.left.1261=\uc9c0\uc2dd\ub9f5\uad00\ub9ac(\uc870\uc9c1) +comCmm.left.1270=\uc9c0\uc2dd\uc804\ubb38\uac00\uad00\ub9ac +comCmm.left.1280=\uc9c0\uc2dd\uc815\ubcf4\uad00\ub9ac +comCmm.left.1290=\uc9c0\uc2dd\ud3c9\uac00\uad00\ub9ac +comCmm.left.1291=\uc9c0\uc2dd\uc815\ubcf4\uc81c\uacf5 + +#\uc694\uc18c\uae30\uc220# +comCmm.left.1300=\uacf5\ud734\uc77c\uad00\ub9ac(\ub2ec\ub825) +comCmm.left.2080=\uc1a1\uc218\uc2e0\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2090=DB\uc11c\ube44\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2100=HTTP\uc11c\ube44\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2110=\ud504\ub85c\uc138\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2120=\ub124\ud2b8\uc6cc\ud06c\uc11c\ube44\uc2a4\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2130=\ud30c\uc77c\uc2dc\uc2a4\ud15c\ubaa8\ub2c8\ud130\ub9c1 +comCmm.left.2140=\ud504\ub85d\uc2dc\uc11c\ube44\uc2a4 +comCmm.left.2150=\ud30c\uc77c\ub3d9\uae30\ud654(\ub300\uc0c1\uc11c\ubc84) +comCmm.left.2160=\ub85c\uadf8\uc778\uc138\uc158\uc815\ubcf4\uccb4\ud06c +comCmm.left.2170=\uc11c\ubc84\uc790\uc6d0\ubaa8\ub2c8\ud130\ub9c1-\ub300\uc0c1\ubaa9\ub85d +comCmm.left.2180=\uc8fc\uc18c\uc815\ubcf4\uc5f0\uacc4 +comCmm.left.2200=\uc554\ud638\ud654/\ubcf5\ud638\ud654 + +#\uc678\ubd80 \ucd94\uac00 \ucef4\ud3ec\ub10c\ud2b8# +comCmm.left.3000=JFile \uac00\uc774\ub4dc +comCmm.left.3010=JFile \ud30c\uc77c \uc5c5\ub85c\ub4dc +comCmm.left.3020=JFile \ud30c\uc77c \ub2e4\uc6b4\ub85c\ub4dc +comCmm.left.3100=LDAP \uc870\uc9c1\ub3c4 \ud2b8\ub9ac +comCmm.left.3110=LDAP \uc870\uc9c1\ub3c4 \uadf8\ub798\ud504 +comCmm.left.3200=\uc6f9\uc18c\ucf13 \uba54\uc2e0\uc800 + +#EgovUnitContent(\ub85c\uadf8\uc778 \ud6c4 \ud398\uc774\uc9c0)# +comCmm.unitContent.1=\uacf5\ud1b5\ucef4\ud3ec\ub10c\ud2b8 +comCmm.unitContent.2=\ub2d8 \ud658\uc601\ud569\ub2c8\ub2e4. +comCmm.unitContent.3=\ub85c\uadf8\uc544\uc6c3 +comCmm.unitContent.4=\uc2e4\ud589 \uc2dc \uc624\ub958 \uc0ac\ud56d\uc774 \uc788\uc73c\uc2dc\uba74 \ud45c\uc900\ud504\ub808\uc784\uc6cc\ud06c\uc13c\ud130\ub85c \uc5f0\ub77d\ud558\uc2dc\uae30 \ubc14\ub78d\ub2c8\ub2e4. +comCmm.unitContent.5=\ud654\uba74 \uc124\uba85 +comCmm.unitContent.6=\uc67c\ucabd \uba54\ub274\ub294 \uba54\ub274\uc640 \uad00\ub828\ub41c \ucef4\ud3ec\ub10c\ud2b8(\uba54\ub274\uad00\ub9ac, \uc0ac\uc774\ud2b8\ub9f5 \ub4f1)\ub4e4\uc758 \uc601\ud5a5\uc744 \ubc1b\uc9c0 \uc54a\uc73c\uba70, +comCmm.unitContent.7=\uac01 \ucef4\ud3ec\ub10c\ud2b8\ub97c \uc27d\uac8c \ucc3e\uc544\ubcfc \uc218 \uc788\ub294 \ubc14\ub85c \uac00\uae30 \ub9c1\ud06c\ud398\uc774\uc9c0\uc785\ub2c8\ub2e4. +comCmm.unitContent.8=\ucef4\ud3ec\ub10c\ud2b8 \uc124\uce58 \ud6c4 \uc124\uce58\ub41c \ucef4\ud3ec\ub10c\ud2b8\ub4e4\uc744 IncludedInfo annotation\uc744 \ud1b5\ud574 \ucc3e\uc544\ub0b8 \ud6c4 +comCmm.unitContent.9=\ud654\uba74\uc5d0 \ud45c\uc2dc\ud560 \uc815\ubcf4\ub97c \ucc98\ub9ac\ud558\ub294 Controller \ud074\ub798\uc2a4\uc785\ub2c8\ub2e4. +comCmm.unitContent.10=\uac1c\ubc1c \uc2dc \uba54\ub274 \uad6c\uc870\uac00 \uc7a1\ud788\uae30 \uc804\uc5d0 \ubc30\ud3ec \ud30c\uc77c\ub4e4\uc5d0 \ud3ec\ud568\ub41c \uacf5\ud1b5 \ucef4\ud3ec\ub10c\ud2b8\ub4e4\uc758 \ubaa9\ub85d\uc131 \ud654\uba74\uc5d0 URL\uc744 \uc81c\uacf5\ud558\uc5ec +comCmm.unitContent.11=\uac1c\ubc1c\uc790\uac00 \ud3b8\ub9ac\ud558\uac8c \ud65c\uc6a9\ud560 \uc218 \uc788\ub3c4\ub85d \uc791\uc131\ub418\uc5c8\uc2b5\ub2c8\ub2e4. +comCmm.unitContent.12=\uc6b4\uc601 \uc2dc\uc5d0 \ubcf8 \ucee8\ud2b8\ub864\uc744 \uc0ac\uc6a9\ud558\uc5ec \uba54\ub274\ub97c \uad6c\uc131\ud558\ub294 \uacbd\uc6b0, +comCmm.unitContent.13=\uc131\ub2a5 \ubb38\uc81c\ub97c \uc77c\uc73c\ud0a4\uac70\ub098 \uc0ac\uc6a9\uc790\ubcc4 \uba54\ub274 \uad6c\uc131\uc5d0 \uc624\ub958\ub97c \ubc1c\uc0dd\ud560 \uc218 \uc788\uae30 \ub54c\ubb38\uc5d0 +comCmm.unitContent.14=\uc2e4 \uc6b4\uc601 \uc2dc\uc5d0\ub294 \uc0ad\uc81c\ud574\uc11c \ubc30\ud3ec\ud558\ub294 \uac83\uc744 \uad8c\uc7a5\ud574 \ub4dc\ub9bd\ub2c8\ub2e4. + +comCmm.unitContent.20=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ub9cc\ub8cc \uc548\ub0b4 + +#EgovExpirePwd(\ube44\ubc00\ubc88\ud638\ubcc0\uacbd \uacf5\uc9c0)# +comCmm.expirePwdContent.1=\ub85c\uadf8\uc778 +comCmm.expirePwdContent.2=\ub85c\uadf8\uc778 \uad6c\ubd84 + +comCmm.expirePwdContent.10=\uc5c5\ubb34\uc0ac\uc6a9\uc790 +comCmm.expirePwdContent.11=\uae30\uc5c5\ud68c\uc6d0 +comCmm.expirePwdContent.12=\uc77c\ubc18\ud68c\uc6d0 + +comCmm.expirePwdContent.21=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04\uc758 \ubcc0\uacbd\uc740 \ub2e4\uc74c \ud30c\uc77c\uc744 \ucc38\uc870\ud558\uc5ec \uc8fc\uc138\uc694. +comCmm.expirePwdContent.22=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ub9cc\ub8cc +comCmm.expirePwdContent.23=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04\uc774 \ub9cc\ub8cc \ub418\uc5c8\uc2b5\ub2c8\ub2e4. +comCmm.expirePwdContent.24=\uc548\uc804\ud55c \uac1c\uc778\uc815\ubcf4 \ubcf4\ud638\ub97c \uc704\ud574 \uc9c0\uae08 \ube44\ubc00\ubc88\ud638\ub97c \ubcc0\uacbd\ud574 \uc8fc\uc138\uc694! +comCmm.expirePwdContent.25=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ucd08\uacfc\uc77c\uc218 +comCmm.expirePwdContent.26=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 +comCmm.expirePwdContent.27=\ube44\ubc00\ubc88\ud638 \ubcc0\uacbd\ud6c4 \uacbd\uacfc\uc77c\uc218 +comCmm.expirePwdContent.28=\ube44\ubc00\ubc88\ud638 \uc720\ud6a8\uae30\uac04 \ucd08\uacfc\uc77c\uc218 +comCmm.expirePwdContent.29=\uc8fc\uae30\uc801\uc73c\ub85c \ube44\ubc00\ubc88\ud638\ub97c \ubcc0\uacbd\ud574 \uc8fc\uc138\uc694. +comCmm.expirePwdContent.30=\uc77c + +comCmm.expirePwdContent.50=\uc9c0\uae08 \uc989\uc2dc \ubcc0\uacbd\ud558\uae30 +comCmm.expirePwdContent.51=\ub2e4\uc74c\uc5d0 \ubcc0\uacbd\ud558\uae30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-ccourt.properties b/batch/src/main/resources/quartz-ccourt.properties new file mode 100644 index 00000000..d890bfdc --- /dev/null +++ b/batch/src/main/resources/quartz-ccourt.properties @@ -0,0 +1,25 @@ +# \ud5cc\ubc95\uc7ac\ud310\uc18c + +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://10.38.101.101:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-infra_server.properties b/batch/src/main/resources/quartz-infra_server.properties new file mode 100644 index 00000000..b55e8c4c --- /dev/null +++ b/batch/src/main/resources/quartz-infra_server.properties @@ -0,0 +1,25 @@ +# \ud5cc\ubc95\uc7ac\ud310\uc18c + +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://109.26.11.21:3307/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-kccf.properties b/batch/src/main/resources/quartz-kccf.properties new file mode 100644 index 00000000..e7d842dc --- /dev/null +++ b/batch/src/main/resources/quartz-kccf.properties @@ -0,0 +1,25 @@ +# \ud5cc\ubc95\uc7ac\ud310\uc18c + +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://10.10.10.167:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-keiti_prod.properties b/batch/src/main/resources/quartz-keiti_prod.properties new file mode 100644 index 00000000..269b1b0d --- /dev/null +++ b/batch/src/main/resources/quartz-keiti_prod.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://192.168.100.76:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-kic_dev.properties b/batch/src/main/resources/quartz-kic_dev.properties new file mode 100644 index 00000000..6c4cd154 --- /dev/null +++ b/batch/src/main/resources/quartz-kic_dev.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://192.10.10.203:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-kic_rel.properties b/batch/src/main/resources/quartz-kic_rel.properties new file mode 100644 index 00000000..34232a17 --- /dev/null +++ b/batch/src/main/resources/quartz-kic_rel.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://192.10.10.203:3306/ur_itms_rel_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = YvRZ5jyhmB6gwVSUGBOqNMQB00k6OZZSfUH5ZU4GEFs= +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-kintex_prod.properties b/batch/src/main/resources/quartz-kintex_prod.properties new file mode 100644 index 00000000..8c73d67d --- /dev/null +++ b/batch/src/main/resources/quartz-kintex_prod.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://10.2.11.37:3307/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-kordi.properties b/batch/src/main/resources/quartz-kordi.properties new file mode 100644 index 00000000..b1cbcd5c --- /dev/null +++ b/batch/src/main/resources/quartz-kordi.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://192.168.102.204:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-local.properties b/batch/src/main/resources/quartz-local.properties new file mode 100644 index 00000000..2df3481e --- /dev/null +++ b/batch/src/main/resources/quartz-local.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://192.168.8.131:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-nibr.properties b/batch/src/main/resources/quartz-nibr.properties new file mode 100644 index 00000000..a9c465cf --- /dev/null +++ b/batch/src/main/resources/quartz-nibr.properties @@ -0,0 +1,25 @@ +# \ud5cc\ubc95\uc7ac\ud310\uc18c + +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://10.101.130.249:43306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-nowon.properties b/batch/src/main/resources/quartz-nowon.properties new file mode 100644 index 00000000..d880aa94 --- /dev/null +++ b/batch/src/main/resources/quartz-nowon.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://98.11.2.93:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-sungshin.properties b/batch/src/main/resources/quartz-sungshin.properties new file mode 100644 index 00000000..01d41a2d --- /dev/null +++ b/batch/src/main/resources/quartz-sungshin.properties @@ -0,0 +1,25 @@ +# \ud5cc\ubc95\uc7ac\ud310\uc18c + +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://172.16.25.167:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-unikorea.properties b/batch/src/main/resources/quartz-unikorea.properties new file mode 100644 index 00000000..98cd7a54 --- /dev/null +++ b/batch/src/main/resources/quartz-unikorea.properties @@ -0,0 +1,25 @@ +# \ud5cc\ubc95\uc7ac\ud310\uc18c + +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://10.63.121.150:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-wmware.properties b/batch/src/main/resources/quartz-wmware.properties new file mode 100644 index 00000000..20e45db1 --- /dev/null +++ b/batch/src/main/resources/quartz-wmware.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://192.168.8.140:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz-yp21.properties b/batch/src/main/resources/quartz-yp21.properties new file mode 100644 index 00000000..491fcb17 --- /dev/null +++ b/batch/src/main/resources/quartz-yp21.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://105.29.2.26:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/quartz.properties b/batch/src/main/resources/quartz.properties new file mode 100644 index 00000000..2df3481e --- /dev/null +++ b/batch/src/main/resources/quartz.properties @@ -0,0 +1,23 @@ +org.quartz.scheduler.instanceName=pooney +org.quartz.scheduler.instanceId=AUTO +org.quartz.scheduler.rmi.export=false +org.quartz.scheduler.rmi.proxy=false +org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +org.quartz.threadPool.threadCount=3 +org.quartz.context.key.QuartzTopic=QuartzPorperties +org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +org.quartz.jobStore.tablePrefix=QRTZ_ +org.quartz.jobStore.isClustered=true +org.quartz.jobStore.clusterCheckinInterval=300000 + +# \uae30\ubcf8\uac12: 15000 (15\ucd08), \ubcc0\uacbd\uac12: 120000 (2\ubd84) + +org.quartz.jobStore.dataSource = primarydb +org.quartz.jobStore.dataSource = pooney +org.quartz.dataSource.pooney.provider=hikaricp +org.quartz.dataSource.pooney.driver = net.sf.log4jdbc.sql.jdbcapi.DriverSpy +org.quartz.dataSource.pooney.URL = jdbc:log4jdbc:mariadb://192.168.8.131:3306/ur_itms_db?characterEncoding=UTF-8&serverTimezone=Asia/Seoul&rewriteBatchedStatements=true +org.quartz.dataSource.pooney.user = g9IwFesTyIloXVpUnfOX0g== +org.quartz.dataSource.pooney.password = E4SOtjDqqO79BQERc/eaTw== +org.quartz.dataSource.pooney.maxConnections = 30 \ No newline at end of file diff --git a/batch/src/main/resources/secrets/UrpSystem.keystore b/batch/src/main/resources/secrets/UrpSystem.keystore new file mode 100644 index 00000000..39528f7c --- /dev/null +++ b/batch/src/main/resources/secrets/UrpSystem.keystore @@ -0,0 +1 @@ +aes256.key=52f48aa1c7435bc11bf909d9d7d1d5932f4bacd8184ec5c1eed6d03ee17fe126 \ No newline at end of file