From 58aefd3959b0625e1b231d7b4892919fcb7f2993 Mon Sep 17 00:00:00 2001 From: mjkhan21 Date: Thu, 19 Sep 2024 16:35:59 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B5=9C=EC=B4=88=20=EC=BB=A4=EB=B0=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 6 + doc-res/overview.html | 28 + doc-res/saeol.css | 1204 +++++++++++++++++ javadoc/doc-files/saeol.sql | 91 ++ pom.xml | 187 +++ src/main/java/META-INF/MANIFEST.MF | 3 + .../cokr/xit/interfaces/saeol/SOHNN00004.java | 120 ++ .../cokr/xit/interfaces/saeol/SOHNN00011.java | 215 +++ .../xit/interfaces/saeol/SaeolMessage.java | 125 ++ .../saeol/service/SaeolService.java | 10 + .../saeol/service/bean/Configuration.java | 76 ++ .../saeol/service/bean/SaeolBean.java | 26 + .../saeol/service/bean/SaeolMessenger.java | 31 + .../saeol/service/bean/SaeolServiceBean.java | 26 + .../saeol/service/bean/XmlSupport.java | 107 ++ .../interfaces/saeol/web/SaeolController.java | 37 + src/main/resources/intf-conf/gpki.conf | 25 + src/main/resources/intf-conf/xit-saeol.conf | 14 + src/main/resources/log4jdbc.log4j2.properties | 4 + src/main/resources/logback.xml | 95 ++ src/main/resources/lombok.config | 2 + .../message/message-common.properties | 386 ++++++ .../message/message-common_en.properties | 287 ++++ .../message/message-common_ko.properties | 385 ++++++ .../properties/commons-logging.properties | 2 + .../resources/sql/mapper/base/test-mapper.xml | 13 + .../resources/sql/mapper/base/utility.xml | 37 + src/main/resources/sql/mybatis-config.xml | 25 + src/main/sql/lvis.sql | 214 +++ .../interfaces/saeol/SaeolMessageTest.java | 41 + src/test/resources/spring/context-beans.xml | 9 + src/test/resources/spring/context-common.xml | 67 + .../resources/spring/context-datasource.xml | 54 + task/javadoc.xml | 134 ++ 34 files changed, 4086 insertions(+) create mode 100644 .gitignore create mode 100644 doc-res/overview.html create mode 100644 doc-res/saeol.css create mode 100644 javadoc/doc-files/saeol.sql create mode 100644 pom.xml create mode 100644 src/main/java/META-INF/MANIFEST.MF create mode 100644 src/main/java/cokr/xit/interfaces/saeol/SOHNN00004.java create mode 100644 src/main/java/cokr/xit/interfaces/saeol/SOHNN00011.java create mode 100644 src/main/java/cokr/xit/interfaces/saeol/SaeolMessage.java create mode 100644 src/main/java/cokr/xit/interfaces/saeol/service/SaeolService.java create mode 100644 src/main/java/cokr/xit/interfaces/saeol/service/bean/Configuration.java create mode 100644 src/main/java/cokr/xit/interfaces/saeol/service/bean/SaeolBean.java create mode 100644 src/main/java/cokr/xit/interfaces/saeol/service/bean/SaeolMessenger.java create mode 100644 src/main/java/cokr/xit/interfaces/saeol/service/bean/SaeolServiceBean.java create mode 100644 src/main/java/cokr/xit/interfaces/saeol/service/bean/XmlSupport.java create mode 100644 src/main/java/cokr/xit/interfaces/saeol/web/SaeolController.java create mode 100644 src/main/resources/intf-conf/gpki.conf create mode 100644 src/main/resources/intf-conf/xit-saeol.conf create mode 100644 src/main/resources/log4jdbc.log4j2.properties create mode 100644 src/main/resources/logback.xml create mode 100644 src/main/resources/lombok.config create mode 100644 src/main/resources/message/message-common.properties create mode 100644 src/main/resources/message/message-common_en.properties create mode 100644 src/main/resources/message/message-common_ko.properties create mode 100644 src/main/resources/properties/commons-logging.properties create mode 100644 src/main/resources/sql/mapper/base/test-mapper.xml create mode 100644 src/main/resources/sql/mapper/base/utility.xml create mode 100644 src/main/resources/sql/mybatis-config.xml create mode 100644 src/main/sql/lvis.sql create mode 100644 src/test/java/cokr/xit/interfaces/saeol/SaeolMessageTest.java create mode 100644 src/test/resources/spring/context-beans.xml create mode 100644 src/test/resources/spring/context-common.xml create mode 100644 src/test/resources/spring/context-datasource.xml create mode 100644 task/javadoc.xml diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..89f8995 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +/.settings/ +/logs/ +/target/ +/.classpath +/.factorypath +/.project diff --git a/doc-res/overview.html b/doc-res/overview.html new file mode 100644 index 0000000..97696b1 --- /dev/null +++ b/doc-res/overview.html @@ -0,0 +1,28 @@ + + + + +엑스아이티 새올 연계 개요 + + +

+

+자망 연계 서비스는 + +로 사용할 수 있다. +

자망과 연계하려면 'xit-lvis.properties'에 +

+를 설정해야 한다.
+자망 호스트 정보 설정에 따라 운영 또는 테스트 서버로 접속한다. +

자동차 기본사항 조회의 경우 조회 내역을 데이터베이스에 저장할 수 있다. +조회 내역을 데이터베이스에 저장하려면 +

+ + \ No newline at end of file diff --git a/doc-res/saeol.css b/doc-res/saeol.css new file mode 100644 index 0000000..6192e90 --- /dev/null +++ b/doc-res/saeol.css @@ -0,0 +1,1204 @@ +/* + * Javadoc style sheet + */ + +@import url('resources/fonts/dejavu.css'); + +/* + * Styles for individual HTML elements. + * + * These are styles that are specific to individual HTML elements. Changing them affects the style of a particular + * HTML element throughout the page. + */ + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif, "Nanum Gothic"; + font-size:14px; + margin:0; + padding:0; + height:100%; + width:100%; +} +iframe { + margin:0; + padding:0; + height:100%; + width:100%; + overflow-y:scroll; + border:none; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a[href]:hover, a[href]:focus { + text-decoration:none; + color:#bb7a2a; +} +a[name] { + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace, "Nanum Gothic"; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; +} +h4 { + font-size:15px; +} +h5 { + font-size:14px; +} +h6 { + font-size:13px; +} +/* Disable font boosting for selected elements */ +h1, h2, h3, h4, h5, h6, div.member-signature { + max-height: 1000em; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace, "Nanum Gothic"; +} +:not(h1, h2, h3, h4, h5, h6) > code, +:not(h1, h2, h3, h4, h5, h6) > tt { + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace, "Nanum Gothic"; + font-size:14px; + padding-top:4px; +} +.summary-table dt code { + font-family:'DejaVu Sans Mono', monospace, "Nanum Gothic"; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +button { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif, "Nanum Gothic"; + font-size: 14px; +} +/* + * Styles for HTML generated by javadoc. + * + * These are style classes that are used by the standard doclet to generate HTML documentation. + */ + +/* + * Styles for document title and copyright. + */ +.about-language { + float:right; + padding:0 21px 8px 8px; + font-size:11px; + margin-top:-9px; + height:2.9em; +} +.legal-copy { + margin-left:.5em; +} +/* + * Styles for navigation bar. + */ +@media screen { + div.flex-box { + position:fixed; + display:flex; + flex-direction:column; + height: 100%; + width: 100%; + } + header.flex-header { + flex: 0 0 auto; + } + div.flex-content { + flex: 1 1 auto; + overflow-y: auto; + } +} +.top-nav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + min-height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +button#navbar-toggle-button { + display:none; +} +ul.sub-nav-list-small { + display: none; +} +.sub-nav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.sub-nav div { + clear:left; + float:left; + padding:6px; + text-transform:uppercase; +} +.sub-nav .sub-nav-list { + padding-top:4px; +} +ul.nav-list { + display:block; + margin:0 25px 0 0; + padding:0; +} +ul.sub-nav-list { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.nav-list li { + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +.sub-nav .nav-list-search { + float:right; + margin:0; + padding:6px; + clear:none; + text-align:right; + position:relative; +} +ul.sub-nav-list li { + list-style:none; + float:left; +} +.top-nav a:link, .top-nav a:active, .top-nav a:visited { + color:#ffffff; + text-decoration:none; + text-transform:uppercase; +} +.top-nav a:hover { + color:#bb7a2a; +} +.nav-bar-cell1-rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skip-nav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* + * Hide navigation links and search box in print layout + */ +@media print { + ul.nav-list, div.sub-nav { + display:none; + } +} +/* + * Styles for page header. + */ +.title { + color:#2c4557; + margin:10px 0; +} +.sub-title { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.header ul li { + list-style:none; + font-size:13px; +} +/* + * Styles for headings. + */ +body.class-declaration-page .summary h2, +body.class-declaration-page .details h2, +body.class-use-page h2, +body.module-declaration-page .block-list h2 { + font-style: italic; + padding:0; + margin:15px 0; +} +body.class-declaration-page .summary h3, +body.class-declaration-page .details h3, +body.class-declaration-page .summary .inherited-list h2 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +/* + * Styles for page layout containers. + */ +main { + clear:both; + padding:10px 20px; + position:relative; +} +dl.notes > dt { + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif, "Nanum Gothic"; + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +dl.notes > dd { + margin:5px 10px 10px 0; + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif, "Nanum Gothic"; +} +dl.name-value > dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +dl.name-value > dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* + * Styles for lists. + */ +li.circle { + list-style:circle; +} +ul.horizontal li { + display:inline; + font-size:0.9em; +} +div.inheritance { + margin:0; + padding:0; +} +div.inheritance div.inheritance { + margin-left:2em; +} +ul.block-list, +ul.details-list, +ul.member-list, +ul.summary-list { + margin:10px 0 10px 0; + padding:0; +} +ul.block-list > li, +ul.details-list > li, +ul.member-list > li, +ul.summary-list > li { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +.summary-table dl, .summary-table dl dt, .summary-table dl dd { + margin-top:0; + margin-bottom:1px; +} +ul.see-list, ul.see-list-long { + padding-left: 0; + list-style: none; +} +ul.see-list li { + display: inline; +} +ul.see-list li:not(:last-child):after, +ul.see-list-long li:not(:last-child):after { + content: ", "; + white-space: pre-wrap; +} +/* + * Styles for tables. + */ +.summary-table, .details-table { + width:100%; + border-spacing:0; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; + padding:0; +} +.caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + clear:none; + overflow:hidden; + padding:0; + padding-top:10px; + padding-left:1px; + margin:0; +} +.caption a:link, .caption a:visited { + color:#1f389c; +} +.caption a:hover, +.caption a:active { + color:#FFFFFF; +} +.caption span { + font-weight:bold; + white-space:nowrap; + padding:5px 12px 7px 12px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +div.table-tabs { + padding:10px 0 0 1px; + margin:10px 0 0 0; +} +div.table-tabs > span { + background-color: #EEE; + color: #000; + border: none; + padding: 5px 12px 8px 12px; +} +div.table-tabs > button { + border: none; + cursor: pointer; + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 8px; +} +div.table-tabs > .active-table-tab { + background: #F8981D; + color: #253441; +} +div.table-tabs > button.table-tab { + background: #4D7A97; + color: #FFFFFF; +} +.two-column-search-results { + display: grid; + grid-template-columns: minmax(400px, max-content) minmax(400px, auto); +} +div.checkboxes { + line-height: 2em; +} +div.checkboxes > span { + margin-left: 10px; +} +div.checkboxes > label { + margin-left: 8px; + white-space: nowrap; +} +div.checkboxes > label > input { + margin: 0 2px; +} +.two-column-summary { + display: grid; + grid-template-columns: minmax(25%, max-content) minmax(25%, auto); +} +.three-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(20%, max-content) minmax(20%, auto); +} +.three-column-release-summary { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(10%, max-content) minmax(40%, auto); +} +.four-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(15%, max-content) minmax(15%, max-content) minmax(15%, auto); +} +@media screen and (max-width: 1000px) { + .four-column-summary { + display: grid; + grid-template-columns: minmax(15%, max-content) minmax(15%, auto); + } +} +@media screen and (max-width: 800px) { + .two-column-search-results { + display: grid; + grid-template-columns: minmax(40%, max-content) minmax(40%, auto); + } + .three-column-summary { + display: grid; + grid-template-columns: minmax(10%, max-content) minmax(25%, auto); + } + .three-column-release-summary { + display: grid; + grid-template-columns: minmax(70%, max-content) minmax(30%, max-content) + } + .three-column-summary .col-last, + .three-column-release-summary .col-last{ + grid-column-end: span 2; + } +} +@media screen and (max-width: 600px) { + .two-column-summary { + display: grid; + grid-template-columns: 1fr; + } +} +.summary-table > div, .details-table > div { + text-align:left; + padding: 8px 3px 3px 7px; + overflow-x: auto; + scrollbar-width: thin; +} +.col-first, .col-second, .col-last, .col-constructor-name, .col-summary-item-name { + vertical-align:top; + padding-right:0; + padding-top:8px; + padding-bottom:3px; +} +.table-header { + background:#dee3e9; + font-weight: bold; +} +/* Sortable table columns */ +.table-header[onclick] { + cursor: pointer; +} +.table-header[onclick]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + '); + background-size:100% 100%; + width:9px; + height:14px; + margin-left:4px; + margin-bottom:-3px; +} +.table-header[onclick].sort-asc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + +} +.table-header[onclick].sort-desc::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +.col-first, .col-first { + font-size:13px; +} +.col-second, .col-second, .col-last, .col-constructor-name, .col-summary-item-name, .col-last { + font-size:13px; +} +.col-first, .col-second, .col-constructor-name { + vertical-align:top; + overflow: auto; +} +.col-last { + white-space:normal; +} +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-first a:link, .col-first a:visited, +.col-second a:link, .col-second a:visited, +.col-constructor-name a:link, .col-constructor-name a:visited, +.col-summary-item-name a:link, .col-summary-item-name a:visited { + font-weight:bold; +} +.even-row-color, .even-row-color .table-header { + background-color:#FFFFFF; +} +.odd-row-color, .odd-row-color .table-header { + background-color:#EEEEEF; +} +/* + * Styles for contents. + */ +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif, "Nanum Gothic"; +} +.col-last div { + padding-top:0; +} +.col-last a { + padding-bottom:3px; +} +.module-signature, +.package-signature, +.type-signature, +.member-signature { + font-family:'DejaVu Sans Mono', monospace, "Nanum Gothic"; + font-size:14px; + margin:14px 0; + white-space: pre-wrap; +} +.module-signature, +.package-signature, +.type-signature { + margin-top: 0; +} +.member-signature .type-parameters-long, +.member-signature .parameters, +.member-signature .exceptions { + display: inline-block; + vertical-align: top; + white-space: pre; +} +.member-signature .type-parameters { + white-space: normal; +} +/* + * Styles for formatting effect. + */ +.source-line-no { + color:green; + padding:0 30px 0 0; +} +.block { + display:block; + margin:0 10px 5px 0; + color:#474747; +} +.deprecated-label, .description-from-type-label, .implementation-label, .member-name-link, +.module-label-in-package, .module-label-in-type, .package-label-in-type, +.package-hierarchy-label, .type-name-label, .type-name-link, .search-tag-link, .preview-label { + font-weight:bold; +} +.deprecation-comment, .help-footnote, .preview-comment { + font-style:italic; +} +.deprecation-block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif, "Nanum Gothic"; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +.preview-block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif, "Nanum Gothic"; + border-style:solid; + border-width:thin; + border-radius:10px; + padding:10px; + margin-bottom:10px; + margin-right:10px; + display:inline-block; +} +div.block div.deprecation-comment { + font-style:normal; +} +details.invalid-tag, span.invalid-tag { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif, "Nanum Gothic"; + background: #ffe6e6; + border: thin solid #000000; + border-radius:2px; + padding: 2px 4px; + display:inline-block; +} +details summary { + cursor: pointer; +} +/* + * Styles specific to HTML5 elements. + */ +main, nav, header, footer, section { + display:block; +} +/* + * Styles for javadoc search. + */ +.ui-autocomplete-category { + font-weight:bold; + font-size:15px; + padding:7px 0 7px 3px; + background-color:#4D7A97; + color:#FFFFFF; +} +.ui-autocomplete { + max-height:85%; + max-width:65%; + overflow-y:auto; + overflow-x:auto; + scrollbar-width: thin; + white-space:nowrap; + box-shadow: 0 3px 6px rgba(0,0,0,0.16), 0 3px 6px rgba(0,0,0,0.23); +} +ul.ui-autocomplete { + position:fixed; + z-index:1; + background-color: #FFFFFF; +} +ul.ui-autocomplete li { + float:left; + clear:both; + min-width:100%; +} +ul.ui-autocomplete li.ui-static-link { + position:sticky; + bottom:0; + left:0; + background: #dee3e9; + padding: 5px 0; + font-family: 'DejaVu Sans', Arial, Helvetica, sans-serif, "Nanum Gothic"; + font-size: 13px; + font-weight: bolder; + z-index: 2; +} +li.ui-static-link a, li.ui-static-link a:visited { + text-decoration:none; + color:#4A6782; + float:right; + margin-right:20px; +} +.ui-autocomplete .result-item { + font-size: inherit; +} +.ui-autocomplete .result-highlight { + font-weight:bold; +} +#search-input, #page-search-input { + background-image:url('resources/glass.png'); + background-size:13px; + background-repeat:no-repeat; + background-position:2px 3px; + padding-left:20px; + width: 250px; + margin: 0; +} +#search-input { + margin-left: 4px; +} +#reset-button { + background-color: transparent; + background-image:url('resources/x.png'); + background-repeat:no-repeat; + background-size:contain; + border:0; + border-radius:0; + width:12px; + height:12px; + position:absolute; + right:12px; + top:10px; + font-size:0; +} +::placeholder { + color:#909090; + opacity: 1; +} +.search-tag-desc-result { + font-style:italic; + font-size:11px; +} +.search-tag-holder-result { + font-style:italic; + font-size:12px; +} +.search-tag-result:target { + background-color:yellow; +} +details.page-search-details { + display: inline-block; +} +div#result-container { + font-size: 14px; +} +div#result-container a.search-result-link { + padding: 0; + margin: 4px 0; + width: 100%; +} +#result-container .result-highlight { + font-weight:bolder; +} +.page-search-info { + background-color: #f5f8ff; + border-radius: 3px; + border: 0 solid #b9c8d3; + padding: 0 8px; + overflow: hidden; + height: 0; + transition: all 0.2s ease; +} +div.table-tabs > button.table-tab { + background: #4D7A97; + color: #FFFFFF; +} +.page-search-header { + padding: 5px 12px 7px 12px; + font-weight: bold; + margin-right: 3px; + background-color:#4D7A97; + color:#ffffff; + display: inline-block; +} +button.page-search-header { + border: none; + cursor: pointer; +} +span#page-search-link { + text-decoration: underline; +} +.module-graph span { + display:none; + position:absolute; +} +.module-graph:hover span { + display:block; + margin: -100px 0 0 100px; + z-index: 1; +} +.inherited-list { + margin: 10px 0 10px 0; +} +section.class-description { + line-height: 1.4; +} +.summary section[class$="-summary"], .details section[class$="-details"], +.class-uses .detail, .serialized-class-details { + padding: 0px 20px 5px 10px; + border: 1px solid #ededed; + background-color: #f8f8f8; +} +.inherited-list, section[class$="-details"] .detail { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +.vertical-separator { + padding: 0 5px; +} +ul.help-section-list { + margin: 0; +} +ul.help-subtoc > li { + display: inline-block; + padding-right: 5px; + font-size: smaller; +} +ul.help-subtoc > li::before { + content: "\2022" ; + padding-right:2px; +} +.help-note { + font-style: italic; +} +/* + * Indicator icon for external links. + */ +main a[href*="://"]::after { + content:""; + display:inline-block; + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); + background-size:100% 100%; + width:7px; + height:7px; + margin-left:2px; + margin-bottom:4px; +} +main a[href*="://"]:hover::after, +main a[href*="://"]:focus::after { + background-image:url('data:image/svg+xml; utf8, \ + \ + \ + '); +} +/* + * Styles for copy-to-clipboard buttons + */ +button.copy { + opacity: 80%; + border: none; + border-radius: 3px; + position: relative; + background:none; + transition: opacity 0.2s; + cursor: pointer; +} +button.copy:hover, +button.copy:active { + opacity: 100%; +} +button.copy img { + position: relative; + background: none; +} +button.copy span { + color: #303030; + position: relative; + top: -0.1em; + transition: all 0.1s; + font-size: 85%; + line-height: 1.2em; +} +/* header/section copy button */ +button.copy-header { + margin: 0 0.2em; + padding: 0 4px; + height: 1.35em; +} +button.copy-header img { + height: 1em; + top: 0.1em; +} +button.copy-header:active { + background-color: rgba(128, 128, 160, 0.2); +} +/* search page copy button */ +button#page-search-copy { + margin-left: 0.4em; + padding:0.3em; + top:0.13em; +} +button#page-search-copy img { + width: 1.2em; + height: 1.2em; + padding: 0.01em 0; + top: 0.15em; +} +button#page-search-copy span { + color: #000000; + content: attr(aria-label); + line-height: 1.2em; + padding: 0.2em; + top: -0.18em; + opacity: 0; +} +div.page-search-info:hover button#page-search-copy, +div.page-search-info:hover button#page-search-copy span { + opacity: 90%; +} +div.page-search-info button#page-search-copy:hover { + background-color: #dfe6f1; +} +div.page-search-info button#page-search-copy:active { + background-color: #cfdbee; +} +/* snippet copy button */ +button.snippet-copy { + position: absolute; + top: 6px; + right: 6px; + height: 1.7em; + opacity: 50%; + padding: 2px; +} +button.snippet-copy img { + width: 18px; + height: 18px; + padding: 0.05em 0; +} +button.snippet-copy span { + content: attr(aria-label); + line-height: 1.2em; + padding: 0.2em; + position: relative; + top: -0.5em; + display: none; +} +div.snippet-container:hover button.snippet-copy span { + display: inline; +} +div.snippet-container:hover button.snippet-copy { + opacity: 80%; +} +div.snippet-container button.snippet-copy:hover { + opacity: 100%; +} +button.snippet-copy:active { + background: #d3d3d3; +} +/* + * Styles for user-provided tables. + * + * borderless: + * No borders, vertical margins, styled caption. + * This style is provided for use with existing doc comments. + * In general, borderless tables should not be used for layout purposes. + * + * plain: + * Plain borders around table and cells, vertical margins, styled caption. + * Best for small tables or for complex tables for tables with cells that span + * rows and columns, when the "striped" style does not work well. + * + * striped: + * Borders around the table and vertical borders between cells, striped rows, + * vertical margins, styled caption. + * Best for tables that have a header row, and a body containing a series of simple rows. + */ + +table.borderless, +table.plain, +table.striped { + margin-top: 10px; + margin-bottom: 10px; +} +table.borderless > caption, +table.plain > caption, +table.striped > caption { + font-weight: bold; + font-size: smaller; +} +table.borderless th, table.borderless td, +table.plain th, table.plain td, +table.striped th, table.striped td { + padding: 2px 5px; +} +table.borderless, +table.borderless > thead > tr > th, table.borderless > tbody > tr > th, table.borderless > tr > th, +table.borderless > thead > tr > td, table.borderless > tbody > tr > td, table.borderless > tr > td { + border: none; +} +table.borderless > thead > tr, table.borderless > tbody > tr, table.borderless > tr { + background-color: transparent; +} +table.plain { + border-collapse: collapse; + border: 1px solid black; +} +table.plain > thead > tr, table.plain > tbody tr, table.plain > tr { + background-color: transparent; +} +table.plain > thead > tr > th, table.plain > tbody > tr > th, table.plain > tr > th, +table.plain > thead > tr > td, table.plain > tbody > tr > td, table.plain > tr > td { + border: 1px solid black; +} +table.striped { + border-collapse: collapse; + border: 1px solid black; +} +table.striped > thead { + background-color: #E3E3E3; +} +table.striped > thead > tr > th, table.striped > thead > tr > td { + border: 1px solid black; +} +table.striped > tbody > tr:nth-child(even) { + background-color: #EEE +} +table.striped > tbody > tr:nth-child(odd) { + background-color: #FFF +} +table.striped > tbody > tr > th, table.striped > tbody > tr > td { + border-left: 1px solid black; + border-right: 1px solid black; +} +table.striped > tbody > tr > th { + font-weight: normal; +} +/** + * Tweak style for small screens. + */ +@media screen and (max-width: 920px) { + header.flex-header { + max-height: 100vh; + overflow-y: auto; + } + div#navbar-top { + height: 2.8em; + transition: height 0.35s ease; + } + ul.nav-list { + display: block; + width: 40%; + float:left; + clear: left; + margin: 10px 0 0 0; + padding: 0; + } + ul.nav-list li { + float: none; + padding: 6px; + margin-left: 10px; + margin-top: 2px; + } + ul.sub-nav-list-small { + display:block; + height: 100%; + width: 50%; + float: right; + clear: right; + background-color: #dee3e9; + color: #353833; + margin: 6px 0 0 0; + padding: 0; + } + ul.sub-nav-list-small ul { + padding-left: 20px; + } + ul.sub-nav-list-small a:link, ul.sub-nav-list-small a:visited { + color:#4A6782; + } + ul.sub-nav-list-small a:hover { + color:#bb7a2a; + } + ul.sub-nav-list-small li { + list-style:none; + float:none; + padding: 6px; + margin-top: 1px; + text-transform:uppercase; + } + ul.sub-nav-list-small > li { + margin-left: 10px; + } + ul.sub-nav-list-small li p { + margin: 5px 0; + } + div#navbar-sub-list { + display: none; + } + .top-nav a:link, .top-nav a:active, .top-nav a:visited { + display: block; + } + button#navbar-toggle-button { + width: 3.4em; + height: 2.8em; + background-color: transparent; + display: block; + float: left; + border: 0; + margin: 0 10px; + cursor: pointer; + font-size: 10px; + } + button#navbar-toggle-button .nav-bar-toggle-icon { + display: block; + width: 24px; + height: 3px; + margin: 1px 0 4px 0; + border-radius: 2px; + transition: all 0.1s; + background-color: #ffffff; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(1) { + transform: rotate(45deg); + transform-origin: 10% 10%; + width: 26px; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(2) { + opacity: 0; + } + button#navbar-toggle-button.expanded span.nav-bar-toggle-icon:nth-child(3) { + transform: rotate(-45deg); + transform-origin: 10% 90%; + width: 26px; + } +} +@media screen and (max-width: 800px) { + .about-language { + padding-right: 16px; + } + ul.nav-list li { + margin-left: 5px; + } + ul.sub-nav-list-small > li { + margin-left: 5px; + } + main { + padding: 10px; + } + .summary section[class$="-summary"], .details section[class$="-details"], + .class-uses .detail, .serialized-class-details { + padding: 0 8px 5px 8px; + } + body { + -webkit-text-size-adjust: none; + } +} +@media screen and (max-width: 400px) { + .about-language { + font-size: 10px; + padding-right: 12px; + } +} +@media screen and (max-width: 400px) { + .nav-list-search { + width: 94%; + } + #search-input, #page-search-input { + width: 70%; + } +} +@media screen and (max-width: 320px) { + .nav-list-search > label { + display: none; + } + .nav-list-search { + width: 90%; + } + #search-input, #page-search-input { + width: 80%; + } +} + +pre.snippet { + background-color: #ebecee; + padding: 10px; + margin: 12px 0; + overflow: auto; + white-space: pre; +} +div.snippet-container { + position: relative; +} +@media screen and (max-width: 800px) { + pre.snippet { + padding-top: 26px; + } + button.snippet-copy { + top: 4px; + right: 4px; + } +} +pre.snippet .italic { + font-style: italic; +} +pre.snippet .bold { + font-weight: bold; +} +pre.snippet .highlighted { + background-color: #f7c590; + border-radius: 10%; +} \ No newline at end of file diff --git a/javadoc/doc-files/saeol.sql b/javadoc/doc-files/saeol.sql new file mode 100644 index 0000000..7c0b253 --- /dev/null +++ b/javadoc/doc-files/saeol.sql @@ -0,0 +1,91 @@ +CREATE TABLE TB_BASIC_INFO_LOG ( + LOG_ID VARCHAR(15) NOT NULL COMMENT '로그 아이디', + PRYE VARCHAR(4) COMMENT '연식', + REGIST_DE VARCHAR(8) COMMENT '등록일(변경일)', + ERSR_REGIST_SE_CODE VARCHAR(4) COMMENT '말소등록구분코드', + ERSR_REGIST_SE_NM VARCHAR(20) COMMENT '말소등록구분명', + ERSR_REGIST_DE VARCHAR(8) COMMENT '말소등록일', + REGIST_DETAIL_CODE VARCHAR(3) COMMENT '등록상세코드', + DSPLVL VARCHAR(6) COMMENT '배기량', + USE_STRNGHLD_LEGALDONG_CODE VARCHAR(10) COMMENT '사용본거지법정동코드', + USE_STRNGHLD_ADSTRD_CODE VARCHAR(10) COMMENT '사용본거지행정동코드', + USE_STRNGHLD_MNTN VARCHAR(2) COMMENT '사용본거지산', + USE_STRNGHLD_LNBR VARCHAR(4) COMMENT '사용본거지번지', + USE_STRNGHLD_HO VARCHAR(4) COMMENT '사용본거지호', + USE_STRNGHLD_ADRES_NM VARCHAR(150) COMMENT '사용본거지상세주소', + USE_STRNGHLD_ROAD_NM_CODE VARCHAR(12) COMMENT '사용본거지도로명코드', + USGSRHLD_UNDGRND_BULD_SE_CODE VARCHAR(1) COMMENT '사용본거지지하건물구분코드', + USE_STRNGHLD_BULD_MAIN_NO VARCHAR(5) COMMENT '사용본거지건물주요번호', + USE_STRNGHLD_BULD_SUB_NO VARCHAR(5) COMMENT '사용본거지건물부번호', + MBER_SE_CODE VARCHAR(2) COMMENT '대표소유자회원구분코드', + MBER_NM VARCHAR(50) COMMENT '대표소유자성명', + MBER_SE_NO VARCHAR(13) COMMENT '대표소유자회원번호', + TELNO VARCHAR(20) COMMENT '대표소유자전화번호', + OWNER_LEGALDONG_CODE VARCHAR(10) COMMENT '소유자법정동코드', + OWNER_ADSTRD_CODE VARCHAR(10) COMMENT '소유자행정동코드', + OWNER_MNTN VARCHAR(2) COMMENT '소유자산', + OWNER_LNBR VARCHAR(4) COMMENT '소유자번지', + OWNER_HO VARCHAR(4) COMMENT '소유자호', + OWNER_ADRES_NM VARCHAR(150) COMMENT '소유자상세주소', + OWNER_ROAD_NM_CODE VARCHAR(12) COMMENT '소유자도로명코드', + OWNER_UNDGRND_BULD_SE_CODE VARCHAR(1) COMMENT '소유자지하건물구분코드', + OWNER_BULD_MAIN_NO VARCHAR(5) COMMENT '소유자건물주요번호', + OWNER_BULD_SUB_NO VARCHAR(5) COMMENT '소유자건물부번호', + OWNER_ADRES_FULL VARCHAR(500) COMMENT '소유자전체주소', + AFTR_VHRNO VARCHAR(16) COMMENT '신차량번호', + USE_FUEL_CODE VARCHAR(1) COMMENT '사용연료코드', + PRPOS_SE_CODE VARCHAR(2) COMMENT '용도구분코드', + MTRS_FOM_NM VARCHAR(50) COMMENT '원동기형식명', + FRNT_VHRNO VARCHAR(16) COMMENT '이전차량번호', + VHRNO VARCHAR(16) COMMENT '차량번호', + VIN VARCHAR(17) COMMENT '차대번호', + CNM VARCHAR(50) COMMENT '차명', + VHCLE_TOT_WT VARCHAR(6) COMMENT '차량총중량', + CAAG_ENDDE VARCHAR(8) COMMENT '차령만료일자', + CHANGE_DE VARCHAR(8) COMMENT '차번호변경시기', + VHCTY_ASORT_CODE VARCHAR(1) COMMENT '차종종별코드', + VHCTY_TY_CODE VARCHAR(1) COMMENT '차종유형코드', + VHCTY_SE_CODE VARCHAR(1) COMMENT '차종분류코드', + MXMM_LDG VARCHAR(10) COMMENT '최대적재량', + VHCTY_ASORT_NM VARCHAR(100) COMMENT '차종종별명', + VHCTY_TY_NM VARCHAR(100) COMMENT '차종유형명', + VHCTY_SE_NM VARCHAR(100) COMMENT '차종분류명', + FRST_REGIST_DE VARCHAR(8) COMMENT '최초등록일', + FOM_NM VARCHAR(50) COMMENT '형식', + ACQS_DE VARCHAR(8) COMMENT '취득일자', + ACQS_END_DE VARCHAR(8) COMMENT '취득종료일자', + YBL_MD VARCHAR(8) COMMENT '제작년월일', + TRANSR_REGIST_DE VARCHAR(8) COMMENT '이전등록일(양수일)', + SPCF_REGIST_STTUS_CODE VARCHAR(6) COMMENT '제원등록상태코드', + COLOR_NM VARCHAR(50) COMMENT '색상명', + MRTG_CO INT COMMENT '저당수', + SEIZR_CO INT COMMENT '압류건수', + STMD_CO INT COMMENT '구조변경수', + NMPL_CSDY_AT VARCHAR(1) COMMENT '번호판영치여부', + NMPL_CSDY_REMNR_DE VARCHAR(8) COMMENT '번호판영치최고일', + ORIGIN_SE_CODE VARCHAR(1) COMMENT '출처구분코드', + NMPL_STNDRD_CODE VARCHAR(1) COMMENT '번호판규격코드', + ACQS_AMOUNT VARCHAR(50) COMMENT '취득금액', + INSPT_VALID_PD_BGNDE VARCHAR(8) COMMENT '검사유효기간시작일', + INSPT_VALID_PD_ENDDE VARCHAR(8) COMMENT '검사유효기간종료일', + CHCK_VALID_PD_BGNDE VARCHAR(8) COMMENT '점검유효기간시작일', + CHCK_VALID_PD_ENDDE VARCHAR(8) COMMENT '점검유효기간종료일', + USE_STRNGHLD_GRC_CODE VARCHAR(4) COMMENT '사용본거지관청코드', + TKCAR_PSCAP_CO INT COMMENT '승차정원수', + SPMNNO VARCHAR(17) COMMENT '제원관리번호', + TRVL_DSTNC VARCHAR(10) COMMENT '주행거리', + FRST_REGIST_RQRCNO VARCHAR(20) COMMENT '최초등록접수번호', + VLNT_ERSR_PRVNTC_NTICE_DE VARCHAR(8) COMMENT '예고통지일', + REGIST_INSTT_NM VARCHAR(100) COMMENT '등록기관명', + PROCESS_IMPRTY_RESN_CODE VARCHAR(2) COMMENT '처리불가사유코드', + PROCESS_IMPRTY_RESN_DTLS VARCHAR(50) COMMENT '처리불가사유명세', + VIMS_PRPOS_SE_CODE VARCHAR(2) COMMENT '용도구분코드', + VIMS_VHCTY_ASORT_CODE VARCHAR(1) COMMENT '차종종별코드', + VIMS_VHCTY_TY_CODE VARCHAR(1) COMMENT '차종유형코드', + VIMS_VHCTY_SE_CODE VARCHAR(1) COMMENT '차종분류코드', + CBD_LT VARCHAR(10) COMMENT '차체길이', + CBD_BT VARCHAR(10) COMMENT '차체너비', + CBD_HG VARCHAR(10) COMMENT '차체높이', + FRST_MXMM_LDG VARCHAR(10) COMMENT '최초최대적재량', + PRIMARY KEY (LOG_ID) +) COMMENT = '자동차 기본사항 조회 로그'; \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..53a875d --- /dev/null +++ b/pom.xml @@ -0,0 +1,187 @@ + + 4.0.0 + + cokr.xit.interfaces + xit-saeol + 23.04.01-SNAPSHOT + jar + + Saeol Interface Service + http://maven.apache.org + + UTF-8 + + 17 + ${java.version} + ${java.version} + + + + + mvn2s + https://repo1.maven.org/maven2/ + + true + + + true + + + + egovframe + https://maven.egovframe.go.kr/maven/ + + true + + + false + + + + maven-public + https://nas.xit.co.kr:8888/repository/maven-public/ + + + + + + cokr.xit.base + xit-foundation + 23.04.01-SNAPSHOT + + + + cokr.xit.interfaces + xit-gpki + 23.04.01-SNAPSHOT + + + + org.mariadb.jdbc + mariadb-java-client + 2.7.2 + + + + + + org.junit.jupiter + junit-jupiter-engine + 5.9.2 + provided + + + + + + install + ${basedir}/target + ${artifactId}-${version} + + + ${basedir}/src/main/resources + + + ${basedir}/src/test/resources + ${basedir}/src/main/resources + + + + + org.apache.maven.plugins + maven-jar-plugin + 3.3.0 + + + **/*.class + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0 + + true + xml + + **/Abstract*.java + **/*Suite.java + + + **/*Test.java + + + + + org.codehaus.mojo + emma-maven-plugin + true + + + org.apache.maven.plugins + maven-source-plugin + 2.2 + + + attach-sources + + jar + + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9.1 + + + + + + + + + maven-snapshot + https://nas.xit.co.kr:8888/repository/maven-snapshots/ + + + + maven-release + https://nas.xit.co.kr:8888/repository/maven-releases/ + + + + \ No newline at end of file diff --git a/src/main/java/META-INF/MANIFEST.MF b/src/main/java/META-INF/MANIFEST.MF new file mode 100644 index 0000000..254272e --- /dev/null +++ b/src/main/java/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Class-Path: + diff --git a/src/main/java/cokr/xit/interfaces/saeol/SOHNN00004.java b/src/main/java/cokr/xit/interfaces/saeol/SOHNN00004.java new file mode 100644 index 0000000..223e2fe --- /dev/null +++ b/src/main/java/cokr/xit/interfaces/saeol/SOHNN00004.java @@ -0,0 +1,120 @@ +package cokr.xit.interfaces.saeol; + +import java.util.Collections; +import java.util.Date; +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +public class SOHNN00004 extends SaeolMessage { + @Override + protected Request newRequest() { + return new Request(); + } + + @Override + public Class responseType() { + return Response.class; + } + + @Getter + @Setter + public static class Request extends SaeolMessage.Request { + /** 사용자시스템ID */ + private String sid; + /** 게시판번호 */ + private String bbs_se; + /** 부서 코드 */ + private String dep_code; + /** 민원담당부서구분 */ + private String mw_char_dep_se; + /** 상태값 */ + private String deal_state; + /** 연계시스템코드 */ + private String class_sys_code; + /** 정렬방법 */ + private String order_by_regdt; + /** 조회시작연월일 */ + private String start_reg_ymd; + /** 조회종료연월일 */ + private String end_reg_ymd; + /** 페이징처리여부 */ + private String page_yn; + /** 페이징시 시작페이지 */ + private String from; + /** 페이징시 종료페이지 */ + private String to; + /** 연계민원조회유무 */ + private String link_yn; + /** 연계부하최소화여부 */ + private String mw_appl_cn_yn; + /** 담당자변경일시 */ + private String mod_dt; + + @Override + public void validate() {} + } + + @Getter + @Setter + public static class Response extends SaeolMessage.Response { + /** 결과 */ + private List result; + /** 상태코드 */ + private String status_code; + + public List getResult() { + return ifEmpty(result, Collections::emptyList); + } + } + + @Getter + @Setter + public static class Item { + /** 순번 */ + private String row_no; + /** 접수번호 */ + private String cnsl_qna_no; + /** 글제목 */ + private String mw_cnsl_sj; + /** 접수일자 */ + private Date reg_dt; + /** 조회수 */ + private String inq_num; + /** 처리상태 */ + private String deal_state_nm; + /** 총건수 */ + private String tot_cnt; + /** 게시물번호 */ + private String bbs_sno; + /** 내부접수번호 */ + private String in_cnsl_qna_no; + /** 진행상태 */ + private String process_state; + /** 부서구분 */ + private String mw_char_dep_se; + /** 사용자명 */ + private String usr_nm; + /** 민원답변기한 */ + private Date ans_answ_lmt; + /** 부서코드 */ + private String dep_code; + /** 부서명 */ + private String cnsl_dep_nm; + /** 담당자명 */ + private String ans_usr_nm; + /** 게시판종류 */ + private String bbs_se_nm; + /** 접수경로 */ + private String take_se_nm; + /** 파일id */ + private String file_id; + /** 첨부파일유무 */ + private String file_yn; + /** 사용자시스템id */ + private String sid; + /** 공개여부 */ + private String qna_open_nm; + } +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/interfaces/saeol/SOHNN00011.java b/src/main/java/cokr/xit/interfaces/saeol/SOHNN00011.java new file mode 100644 index 0000000..6ed00d0 --- /dev/null +++ b/src/main/java/cokr/xit/interfaces/saeol/SOHNN00011.java @@ -0,0 +1,215 @@ +package cokr.xit.interfaces.saeol; + +import java.util.Collections; +import java.util.Date; +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +public class SOHNN00011 extends SaeolMessage { + @Override + protected Request newRequest() { + return new Request(); + } + + @Override + public Class responseType() { + return Response.class; + } + + @Getter + @Setter + public static class Request extends SaeolMessage.Request { + /** 민원접수번호 */ + private String cnsl_qna_no; + + @Override + public void validate() {} + } + + @Getter + @Setter + public static class Response extends SaeolMessage.Response { + /** 결과 */ + private List result; + /** 민원인 파일정보 */ + private List fileinfo_m; + /** 답변자 파일정보 */ + private List fileinfo_p; + /** 상태코드 */ + private String status_code; + + public List getResult() { + return ifEmpty(result, Collections::emptyList); + } + + public List getFileinfo_m() { + return ifEmpty(fileinfo_m, Collections::emptyList); + } + + public List getFileinfo_p() { + return ifEmpty(fileinfo_p, Collections::emptyList); + } + } + + @Getter + @Setter + public static class Item { + /** 답변접수번호 */ + private String cnsl_qna_no; + /** 시스템연계구분코드 */ + private String class_sys_code ; + /** 답변제목 */ + private String mw_cnsl_sj; + /** 답변내용 */ + private String mw_appl_cn; + /** 추가답변차수 */ + private String answ_chasu; + /** 특기사항 */ + private String spec_item; + /** 관련근거 */ + private String el_bas; + /** 공개여부 */ + private String qna_open_nm; + /** 답변자id */ + private String usr_id; + /** 답변자명 */ + private String usr_nm; + /** 답변자주소 */ + private String mwin_detail_addr; + /** 답변자전화번호 */ + private String telno ; + /** 답변자핸드폰 */ + private String hpno ; + /** 우편번호 */ + private String post_no; + /** 이메일 */ + private String email; + /** 답변처리기한 */ + private Date ans_answ_lmt; + /** 답변자부서코드 */ + private String dep_code ; + /** 답변자부서명 */ + private String cnsl_dep_nm ; + /** 민원상담구분코드 */ + private String mw_cnsl_se_code ; + /** 이송사유 */ + private String remw_why ; + /** 민원처리기관코드 */ + private String mw_deal_org_code; + /** 접수구분코드 */ + private String take_se ; + /** 답변자id */ + private String regr_id ; + /** 답변일자 */ + private Date reg_dt; + /** 추가답변카운트 */ + private String mw_answ_cnt ; + /** 처리상태 */ + private String deal_state_nm; + /** 부서구분 */ + private String mw_char_dep_se; + /** 민원접수번호 */ + private String cnsl_qna_no_m; + /** 시스템연계구분코드(민원) */ + private String class_sys_code_m; + /** 민원제목 */ + private String mw_cnsl_sj_m; + /** 민원내용 */ + private String mw_appl_cn_m; + /** 민원인명 */ + private String usr_nm_m; + /** 민원인주소 */ + private String mwin_detail_addr_m; + /** 민원인전화번호 */ + private String telno_m; + /** 민원인핸드폰 */ + private String hpno_m; + /** 우편번호(민원) */ + private String post_no_m; + /** 이메일(민원) */ + private String email_m; + /** 민원등록일시 */ + private Date reg_dt_m; + /** 접수경로 */ + private String take_se_nm; + /** 민원인 첨부파일 고유id */ + private String file_id_m; + /** 답변자 첨부파일 고유id */ + private String file_id_p; + /** 최초등록기관 코드 */ + private String mw_org_code; + /** 최초등록기관 접수번호 */ + private String inet_qna_no; + /** 시스템사용자id */ + private String sid; + /** 민원조회수 */ + private int inq_num; + /** 방문접수 담당자명 */ + private String take_nm; + /** 방문접수 담당자 전화번호 */ + private String cntct_telno; + /** 이송된 기관코드 */ + private String rmnt_org_code; + /** 신문고 접수번호 */ + private String take_no; + /** 신문고 신청번호 */ + private String appl_no; + /** 분류이력일련번호 */ + private String cl_his_sno; + /** 재분류요청건수 */ + private int re_cl_rqst_cnt; + /** 서신통지여부 */ + private String mw_lttr_notify_yn; + /** 이메일통지여부 */ + private String email_rprt_yn; + /** sms통지여부 */ + private String sms_rprt_yn; + /** 취하여부 */ + private String mw_drp_yn; + /** 취하사유 */ + private String mw_drp_why; + /** 취하일시 */ + private String mw_drp_dt; + /** 삭제여부 */ + private String delete_yn; + /** 게시판번호 */ + private String bbs_se; + /** 게시물번호 */ + private String bbs_sno; + /** 만족도평가내용 */ + private String satf_ratng_cn; + /** 만족도점수 */ + private String satf_ratng_pnt; + /** 민원요지 */ + private String civil_gist; + /** 민원처리결과요약 */ + private String civil_abstract; + /** 신문고민원구분 */ + private String peti_path_gubun; + /** 안전신고답변유형 또는 처리구분 */ + private String pcd_gubun; + /** 선행상담qna번호 */ + private String pre_cnsl_qna_no; + /** 선행민원등록여부 */ + private String pre_minwon_yn; + } + + @Getter + @Setter + public static class FileItem { + /** 민원인 첨부파일 고유id */ + private String file_id_m; + /** 답변자 첨부파일 고유id */ + private String file_id_p; + /** 파일순번 */ + private int file_seq; + /** 파일시스템파일경로 */ + private String file_path; + /** 파일시스템실제저장파일명 */ + private String sys_file_nm; + /** 사용자파일명 */ + private String usr_file_nm; + } +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/interfaces/saeol/SaeolMessage.java b/src/main/java/cokr/xit/interfaces/saeol/SaeolMessage.java new file mode 100644 index 0000000..6898620 --- /dev/null +++ b/src/main/java/cokr/xit/interfaces/saeol/SaeolMessage.java @@ -0,0 +1,125 @@ +package cokr.xit.interfaces.saeol; + +import java.text.SimpleDateFormat; +import java.util.Date; + +import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty; + +import cokr.xit.foundation.AbstractComponent; +import cokr.xit.foundation.util.Random; +import lombok.Getter; + +public abstract class SaeolMessage extends AbstractComponent { + private Header header; + private Request request; + private Response response; + + public String interfaceID() { + return getClass().getSimpleName(); + } + + public Header getHeader() { + return ifEmpty(header, () -> header = new Header().setIfID(interfaceID())); + } + + public Request getRequest() { + if (request == null) + request = newRequest(); + if (request.header == null) + request.header = getHeader(); + return request; + } + + protected abstract Request newRequest(); + + public SaeolMessage setRequest(Request request) { + this.request = request; + return this; + } + + public T getResponse() { + return (T)response; + } + + public void setResponse(Response response) { + this.response = response; + } + + public abstract Class responseType(); + + @Getter + public static class Header { + private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSS"); + + /** 연계 아이디 */ + @JacksonXmlProperty(localName = "IFID") + private String ifID; + /** 요청기관 코드 */ + @JacksonXmlProperty(localName = "SRCORGCD") + private String srcOrgCd; + /** 응답기관 코드 */ + @JacksonXmlProperty(localName = "TGTORGCD") + private String tgtOrgCd; + /** 결과 코드 */ + @JacksonXmlProperty(localName = "RESULTCODE") + private String resultCode; + /** 메시지 식별키 */ + @JacksonXmlProperty(localName = "MSGKEY") + private String msgKey; + + public Header setIfID(String interfaceID) { + ifID = interfaceID; + return this; + } + + public Header setSrcOrgCd(String srcOrgCd) { + this.srcOrgCd = srcOrgCd; + return this; + } + + public Header setTgtOrgCd(String tgtOrgCd) { + this.tgtOrgCd = tgtOrgCd; + return this; + } + + public Header setResultCode(String resultCode) { + this.resultCode = resultCode; + return this; + } + + public String getMsgKey() { + return ifEmpty(msgKey, () -> (msgKey = dateFormat.format(new Date()) + Random.number(8))); + } + + public Header setMsgKey(String msgKey) { + this.msgKey = msgKey; + return this; + } + } + + public static class Request { + private Header header; + + public Header header() { + return header; + } + + public void setHeader(Header header) { + this.header = header; + } + + public void validate() {} + } + + public static class Response { + private Header header; + + public Header header() { + return header; + } + + public void setHeader(Header header) { + this.header = header; + } + } +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/interfaces/saeol/service/SaeolService.java b/src/main/java/cokr/xit/interfaces/saeol/service/SaeolService.java new file mode 100644 index 0000000..a57ec9c --- /dev/null +++ b/src/main/java/cokr/xit/interfaces/saeol/service/SaeolService.java @@ -0,0 +1,10 @@ +package cokr.xit.interfaces.saeol.service; + +import cokr.xit.interfaces.saeol.SOHNN00004; +import cokr.xit.interfaces.saeol.SOHNN00011; + +public interface SaeolService { + public SOHNN00004.Response getSOHNN00004(SOHNN00004.Request req); + + public SOHNN00011.Response getSOHNN00011(SOHNN00011.Request req); +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/interfaces/saeol/service/bean/Configuration.java b/src/main/java/cokr/xit/interfaces/saeol/service/bean/Configuration.java new file mode 100644 index 0000000..ae016eb --- /dev/null +++ b/src/main/java/cokr/xit/interfaces/saeol/service/bean/Configuration.java @@ -0,0 +1,76 @@ +package cokr.xit.interfaces.saeol.service.bean; + +import java.nio.charset.Charset; +import java.util.Collections; +import java.util.List; + +import org.springframework.core.io.ClassPathResource; + +import cokr.xit.foundation.AbstractComponent; +import cokr.xit.foundation.data.JSON; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class Configuration extends AbstractComponent { + private static final Configuration conf; + + static { + try { + String path = "intf-conf/xit-saeol.conf"; + conf = new JSON().parse(new ClassPathResource(path).getInputStream(), Configuration.class); + log(Configuration.class).debug("{} loaded", path); + } catch (Exception e) { + throw runtimeException(e); + } + } + + private String + charset, + sido, + sigungu; + + private List sources; + private Target target; + + public static Charset charset() { + return Charset.forName(conf.charset); + } + + public static String sido() { + return conf.sido; + } + + public static String sigungu() { + return conf.sigungu; + } + + public static List sources() { + return ifEmpty(conf.sources, Collections::emptyList); + } + + public static String source() { + List sources = sources(); + if (sources.size() == 1) + return sources.get(0); + throw new RuntimeException("Unable to determine the srcOrgCd"); + } + + public static Target target() { + return conf.target; + } + + @Getter + @Setter + public static class Target { + private String + org, + url, + certServer; + + public String getUrl(String interfaceID) { + return url.replace("{interfaceID}", interfaceID); + } + } +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/interfaces/saeol/service/bean/SaeolBean.java b/src/main/java/cokr/xit/interfaces/saeol/service/bean/SaeolBean.java new file mode 100644 index 0000000..505be1c --- /dev/null +++ b/src/main/java/cokr/xit/interfaces/saeol/service/bean/SaeolBean.java @@ -0,0 +1,26 @@ +package cokr.xit.interfaces.saeol.service.bean; + +import org.springframework.stereotype.Component; + +import cokr.xit.foundation.component.AbstractBean; +import cokr.xit.interfaces.saeol.SOHNN00004; +import cokr.xit.interfaces.saeol.SOHNN00011; +import cokr.xit.interfaces.saeol.SaeolMessage; + +@Component("saeolBean") +public class SaeolBean extends AbstractBean { + private SaeolMessenger messenger = new SaeolMessenger(); + + public SOHNN00004.Response getSOHNN00004(SOHNN00004.Request req) { + return sendMessage(new SOHNN00004().setRequest(req)); + } + + private T sendMessage(SaeolMessage msg) { + messenger.send(msg); + return msg.getResponse(); + } + + public SOHNN00011.Response getSOHNN00011(SOHNN00011.Request req) { + return sendMessage(new SOHNN00011().setRequest(req)); + } +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/interfaces/saeol/service/bean/SaeolMessenger.java b/src/main/java/cokr/xit/interfaces/saeol/service/bean/SaeolMessenger.java new file mode 100644 index 0000000..4874c9d --- /dev/null +++ b/src/main/java/cokr/xit/interfaces/saeol/service/bean/SaeolMessenger.java @@ -0,0 +1,31 @@ +package cokr.xit.interfaces.saeol.service.bean; + +import java.net.http.HttpResponse; + +import cokr.xit.foundation.web.WebClient; +import cokr.xit.interfaces.saeol.SaeolMessage; + +public class SaeolMessenger { + private WebClient webClient = new WebClient(); + private XmlSupport xmlSupport = new XmlSupport(); + + public void send(SaeolMessage msg) { + String interfaceID = msg.interfaceID(), + xml = xmlSupport.stringify(msg.getRequest(), true); + HttpResponse hresp = webClient.post(req -> + req.uri(Configuration.target().getUrl(interfaceID)) + + .noCache() + + .charset(Configuration.charset()) + .contentType(WebClient.Request.ContentType.XML) + + .header("Accept", "application/soap+xml, application/dime, multipart/related, text/*") + .header("SOAPAction", interfaceID) + + .bodyData(xml) + ); + + xmlSupport.parse(msg, hresp.body(), true); + } +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/interfaces/saeol/service/bean/SaeolServiceBean.java b/src/main/java/cokr/xit/interfaces/saeol/service/bean/SaeolServiceBean.java new file mode 100644 index 0000000..5bf88d0 --- /dev/null +++ b/src/main/java/cokr/xit/interfaces/saeol/service/bean/SaeolServiceBean.java @@ -0,0 +1,26 @@ +package cokr.xit.interfaces.saeol.service.bean; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Service; + +import cokr.xit.foundation.component.AbstractServiceBean; +import cokr.xit.interfaces.saeol.SOHNN00004; +import cokr.xit.interfaces.saeol.SOHNN00011; +import cokr.xit.interfaces.saeol.service.SaeolService; + +@Service("saeolService") +public class SaeolServiceBean extends AbstractServiceBean implements SaeolService { + @Resource(name = "saeolBean") + private SaeolBean saeolBean; + + @Override + public SOHNN00004.Response getSOHNN00004(SOHNN00004.Request req) { + return saeolBean.getSOHNN00004(req); + } + + @Override + public SOHNN00011.Response getSOHNN00011(SOHNN00011.Request req) { + return saeolBean.getSOHNN00011(req); + } +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/interfaces/saeol/service/bean/XmlSupport.java b/src/main/java/cokr/xit/interfaces/saeol/service/bean/XmlSupport.java new file mode 100644 index 0000000..2fe7ae6 --- /dev/null +++ b/src/main/java/cokr/xit/interfaces/saeol/service/bean/XmlSupport.java @@ -0,0 +1,107 @@ +package cokr.xit.interfaces.saeol.service.bean; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator; + +import cokr.xit.foundation.AbstractComponent; +import cokr.xit.foundation.data.XML; +import cokr.xit.interfaces.gpki.GPKI; +import cokr.xit.interfaces.saeol.SaeolMessage; +import cokr.xit.interfaces.saeol.SaeolMessage.Header; +import cokr.xit.interfaces.saeol.SaeolMessage.Request; +import cokr.xit.interfaces.saeol.SaeolMessage.Response; + +public class XmlSupport extends AbstractComponent { + private static final String ENVELOPE = """ + + + +{header} + +{message-body} + + + +"""; + + private GPKI gpki; + private XML xml = new XML().configure(mapper -> { + mapper.configure(ToXmlGenerator.Feature.WRITE_XML_DECLARATION, false); + mapper.configure(ToXmlGenerator.Feature.WRITE_XML_1_1, false); + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + }); + + private GPKI gpki() { + return ifEmpty(gpki, () -> (gpki = new GPKI())); + } + + private String encrypt(String plain) { + return gpki().encrypt(Configuration.target().getCertServer(), plain); + } + + private String decrypt(String encrypted) { + return gpki().decrypt(encrypted); + } + + private String textBetween(String str, String head, String tail) { + int start = str.indexOf(head) + head.length(), + end = str.indexOf(tail); + return str.substring(start, end); + } + + public String stringify(SaeolMessage.Request request, boolean encrypt) { + return ENVELOPE + .replace("{header}", stringify(request.header())) + .replace("{message-body}", toString(request, encrypt)); + } + + private String stringify(SaeolMessage.Header header) { + return xml.stringify(header, true).trim() + .replace("
\r\n", "") + .replace("\n
", ""); + } + + private String toString(SaeolMessage.Request request, boolean encrypt) { + String className = request.getClass().getSimpleName(), + messageBody = xml.stringify(request, true); + + messageBody = messageBody + .replace("<" + className + ">", "") + .replace("", "") + .replace(" <", " <") + .trim(); + messageBody = "\n \n " + messageBody; + messageBody += "\n \n"; + + if (encrypt) + messageBody = encrypt(messageBody); + + return messageBody; + } + + public void parse(SaeolMessage msg, String resp, boolean decrypt) { + SaeolMessage.Header header = parseHeader(resp); + parseBody(msg, resp, decrypt); + msg.getResponse().setHeader(header); + } + + private SaeolMessage.Header parseHeader(String str) { + String head = "
" + textBetween(str, "", "") + "
"; + log().debug("header parsed\n{}", head); + return xml.parse(head, SaeolMessage.Header.class); + } + + private void parseBody(SaeolMessage msg, String resp, boolean decrypt) { + String body = textBetween(resp, "", ""); + if (decrypt) + body = decrypt(body); + + Class klass = msg.responseType(); + String className = klass.getSimpleName(); + body = "<" + className + ">" + textBetween(body, "", "") + ""; + log().debug("body parsed\n{}", body); + + SaeolMessage.Response response = xml.parse(resp, klass); + msg.setResponse(response); + } +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/interfaces/saeol/web/SaeolController.java b/src/main/java/cokr/xit/interfaces/saeol/web/SaeolController.java new file mode 100644 index 0000000..8ea380c --- /dev/null +++ b/src/main/java/cokr/xit/interfaces/saeol/web/SaeolController.java @@ -0,0 +1,37 @@ +package cokr.xit.interfaces.saeol.web; + +import javax.annotation.Resource; + +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.servlet.ModelAndView; + +import cokr.xit.foundation.web.AbstractController; +import cokr.xit.interfaces.saeol.SOHNN00004; +import cokr.xit.interfaces.saeol.SOHNN00011; +import cokr.xit.interfaces.saeol.service.SaeolService; + +@RestController +@RequestMapping(value = {"/intf/saeol", "/intf/saeol/xml"}, name = "새올 연계") +public class SaeolController extends AbstractController { + @Resource(name = "saeolService") + private SaeolService saeolService; + + @PostMapping("/sohnn00004") + public ModelAndView getSOHNN00004(@RequestBody SOHNN00004.Request req) { + return new ModelAndView(viewName()) + .addObject(saeolService.getSOHNN00004(req)); + } + + private String viewName() { + return !currentAccess().getAction().contains("/xml") ? "jsonView" : "xmlView"; + } + + @PostMapping("/sohnn00011") + public ModelAndView getSOHNN00011(@RequestBody SOHNN00011.Request req) { + return new ModelAndView(viewName()) + .addObject(saeolService.getSOHNN00011(req)); + } +} \ No newline at end of file diff --git a/src/main/resources/intf-conf/gpki.conf b/src/main/resources/intf-conf/gpki.conf new file mode 100644 index 0000000..c0c18cb --- /dev/null +++ b/src/main/resources/intf-conf/gpki.conf @@ -0,0 +1,25 @@ +{ + "license": "C:\\GPKI\\Lic", /* 이용기관 GPKI API 라이센스 디렉토리 */ + + "charset": "UTF-8", /* 문자셋 */ + + "server": { + "local": "SVR1311000030", /* 이용기관 서버 CN */ + "targets": "SVR1500000015" /* 대상기관 서버인증서 아이디, 여러 개일 경우 컴마(,)로 구분 */ + }, + + "ldapUrl": "ldap://10.1.7.118:389/cn=", /* 대상기관 인증서 다운로드를 위한 행정망 LDAP URL */ + /*"ldapUrl": "ldap://152.99.57.127:389/cn=", 대상기관 인증서 다운로드를 위한 인터넷망 LDAP URL */ + "certDir": "C:\\GPKI\\Certificate\\class1", /* 서버 인증서, 키 저장 디렉토리 */ + + "env": { /* 이용기관 서버 인증서 */ + "certFile": "SVR1311000030_env.cer", + "privateKeyFile": "SVR1311000030_env.key", + "privateKeyPassword": "기후대기3395!" + }, + "sig": { /* 이용기관 서버 전자서명 */ + "certFile": "SVR1311000030_sig.cer", + "privateKeyFile": "SVR1311000030_sig.key", + "privateKeyPassword": "기후대기3395!" + } +} \ No newline at end of file diff --git a/src/main/resources/intf-conf/xit-saeol.conf b/src/main/resources/intf-conf/xit-saeol.conf new file mode 100644 index 0000000..d42c0cb --- /dev/null +++ b/src/main/resources/intf-conf/xit-saeol.conf @@ -0,0 +1,14 @@ +{ + "charset": "UTF-8", /* 문자셋 이름 */ + + "sido": "", /* 시도코드 */ + "sigungu": "", /* 시군구 코드 */ + + "sources": ["3010000"], /* 이용기관 정보 */ + + "target": { /* 제공기관 정보 */ + "org": "4640000", /* 기관코드 */ + "url": "http://10.46.147.212:3100/stmr/websvc/std/ws?wsdl={interfaceID}", /* 서비스 제공 URL, {interfaceID} = 연계 ID */ + "certServer": "SVR1311000030" /* 세올행정 서버인증서 아이디 */ + } +} \ No newline at end of file diff --git a/src/main/resources/log4jdbc.log4j2.properties b/src/main/resources/log4jdbc.log4j2.properties new file mode 100644 index 0000000..3b8ff2b --- /dev/null +++ b/src/main/resources/log4jdbc.log4j2.properties @@ -0,0 +1,4 @@ +log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator + +log4jdbc.dump.sql.maxlinelength=0 +log4jdbc.drivers=org.mariadb.jdbc.Driver diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml new file mode 100644 index 0000000..b59c15c --- /dev/null +++ b/src/main/resources/logback.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + ${LOG_PATTERN} + + + + + ${LOG_PATH}/${LOG_FILE_NAME}.log + + ${LOG_PATTERN} + + + + + ${LOG_PATH}/${LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log + + 10MB + + + 30 + + + + + + + error + ACCEPT + DENY + + + ${LOG_PATH}/${ERR_LOG_FILE_NAME}.log + + ${LOG_PATTERN} + + + + + ${LOG_PATH}/${ERR_LOG_FILE_NAME}.%d{yyyy-MM-dd}_%i.log + + + 10MB + + + 60 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/lombok.config b/src/main/resources/lombok.config new file mode 100644 index 0000000..0a8874c --- /dev/null +++ b/src/main/resources/lombok.config @@ -0,0 +1,2 @@ +# see https://projectlombok.org/features/constructor lombok.copyableAnnotations +lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier diff --git a/src/main/resources/message/message-common.properties b/src/main/resources/message/message-common.properties new file mode 100644 index 0000000..f88e846 --- /dev/null +++ b/src/main/resources/message/message-common.properties @@ -0,0 +1,386 @@ +application.name=infolink + +debug.properties.property=true + +valueRequired={0}\uac00 \uc124\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4. + +pageNotFound=\uc694\uccad\ud558\uc2e0 \ud398\uc774\uc9c0\ub97c \ucc3e\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4. +sessionExpired=\uc138\uc158\uc774 \ub9cc\ub8cc\ub410\uc2b5\ub2c8\ub2e4. + +duplicate.object=\uc774\ubbf8 \ub4f1\ub85d\ub41c {0}\uc785\ub2c8\ub2e4. + +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 + + +#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. + + +#UI Cop Message# +cop.extrlUser = \uc678\ubd80\uc0ac\uc6a9\uc790 +cop.intrlUser = \ub0b4\ubd80\uc0ac\uc6a9\uc790 +cop.private = \ube44\uacf5\uac1c +cop.public = \uacf5\uac1c + +cop.adbkNm = \uc8fc\uc18c\ub85d\uba85 +cop.othbcScope = \uacf5\uac1c\ubc94\uc704 +cop.company = \ud68c\uc0ac +cop.part = \ubd80\uc11c +cop.man = \uac1c\uc778 +cop.adbkUser = \uad6c\uc131\uc6d0 +cop.bbsNm = \uac8c\uc2dc\ud310\uba85 +cop.bbsIntrcn = \uac8c\uc2dc\ud310\uc18c\uac1c +cop.bbsTyCode = \uac8c\uc2dc\ud310 \uc720\ud615 +cop.bbsAttrbCode = \uac8c\uc2dc\ud310 \uc18d\uc131 +cop.replyPosblAt = \ub2f5\uc7a5\uac00\ub2a5\uc5ec\ubd80 +cop.fileAtchPosblAt = \ud30c\uc77c\ucca8\ubd80\uac00\ub2a5\uc5ec\ubd80 +cop.posblAtchFileNumber = \ucca8\ubd80\uac00\ub2a5\ud30c\uc77c \uc22b\uc790 +cop.tmplatId = \ud15c\ud50c\ub9bf \uc815\ubcf4 +cop.guestList.subject = \ubc29\uba85\ub85d \uac8c\uc2dc\uae00\uc785\ub2c8\ub2e4. +cop.nttSj = \uc81c\ubaa9 +cop.nttCn = \uae00\ub0b4\uc6a9 +cop.ntceBgnde = \uac8c\uc2dc\uc2dc\uc791\uc77c +cop.ntceEndde = \uac8c\uc2dc\uc885\ub8cc\uc77c +cop.ntcrNm = \uc791\uc131\uc790 +cop.password = \ud328\uc2a4\uc6cc\ub4dc +cop.atchFile = \ud30c\uc77c\ucca8\ubd80 +cop.guestList = \ubc29\uba85\ub85d +cop.guestListCn = \ubc29\uba85\ub85d \ub0b4\uc6a9 +cop.noticeTerm = \uac8c\uc2dc\uae30\uac04 +cop.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +cop.cmmntyNm = \ucee4\ubba4\ub2c8\ud2f0\uba85 +cop.cmmntyIntrcn = \ucee4\ubba4\ub2c8\ud2f0 \uc18c\uac1c +cop.cmmntyMngr = \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790 +cop.clbOprtr = \ub3d9\ud638\ud68c \uc6b4\uc601\uc790 +cop.clbIntrcn = \ub3d9\ud638\ud68c \uc18c\uac1c +cop.clbNm = \ub3d9\ud638\ud68c \uba85 +cop.tmplatNm = \ud15c\ud50c\ub9bf\uba85 +cop.tmplatSeCode = \ud15c\ud50c\ub9bf \uad6c\ubd84 +cop.tmplatCours = \ud15c\ud50c\ub9bf\uacbd\ub85c +cop.useAt = \uc0ac\uc6a9\uc5ec\ubd80 +cop.ncrdNm = \uc774\ub984 +cop.cmpnyNm = \ud68c\uc0ac\uba85 +cop.deptNm = \ubd80\uc11c\uba85 +cop.ofcpsNm = \uc9c1\uc704 +cop.clsfNm = \uc9c1\uae09 +cop.emailAdres = \uc774\uba54\uc77c\uc8fc\uc18c +cop.telNo = \uc804\ud654\ubc88\ud638 +cop.mbtlNum = \ud734\ub300\ud3f0\ubc88\ud638 +cop.adres = \uc8fc\uc18c +cop.extrlUserAt = \uc678\ubd80\uc0ac\uc6a9\uc790\uc5ec\ubd80 +cop.publicAt = \uacf5\uac1c\uc5ec\ubd80 +cop.remark = \ube44\uace0 +cop.trgetNm = \ucee4\ubba4\ub2c8\ud2f0/\ub3d9\ud638\ud68c \uc815\ubcf4 +cop.preview = \ubbf8\ub9ac\ubcf4\uae30 + +cop.withdraw.msg=\ud0c8\ud1f4\ucc98\ub9ac \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.reregist.msg=\uc7ac\uac00\uc785 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.registmanager.msg=\uc6b4\uc601\uc9c4\uc73c\ub85c \ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.use.msg=\uc0ac\uc6a9 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.unuse.msg=\uc0ac\uc6a9\uc911\uc9c0 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.delete.confirm.msg=\uc0ac\uc6a9\uc911\uc9c0\ub97c \uc120\ud0dd\ud558\uc2e4 \uacbd\uc6b0 \ub2e4\uc2dc \uc0ac\uc6a9\uc73c\ub85c \ubcc0\uacbd\uc774 \ubd88\uac00\ub2a5\ud569\ub2c8\ub2e4. +cop.ing.msg=\uc2b9\uc778\uc694\uccad \uc911\uc785\ub2c8\ub2e4. +cop.request.msg=\uac00\uc785\uc2e0\uccad\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc694\uccad\ub418\uc5c8\uc2b5\ub2c8\ub2e4 +cop.password.msg=\ud328\uc2a4\uc6cc\ub4dc\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624. +cop.password.not.same.msg=\ud328\uc2a4\uc6cc\ub4dc\uac00 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +cop.comment.wrterNm = \uc791\uc131\uc790 +cop.comment.commentCn = \ub0b4\uc6a9 +cop.comment.commentPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.satisfaction.wrterNm = \uc791\uc131\uc790 +cop.satisfaction.stsfdgCn = \ub0b4\uc6a9 +cop.satisfaction.stsfdg = \ub9cc\uc871\ub3c4 +cop.satisfaction.stsfdgPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.scrap.scrapNm = \uc2a4\ud06c\ub7a9\uba85 + +#UI USS Message# +uss.ion.noi.ntfcSj=\uc81c\ubaa9 +uss.ion.noi.ntfcCn=\ub0b4\uc6a9 +uss.ion.noi.ntfcDate=\uc54c\ub9bc\uc77c\uc790 +uss.ion.noi.ntfcTime=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcHH=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcMM=\uc54c\ub9bc\ubd84 +uss.ion.noi.bhNtfcIntrvl=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 +uss.ion.noi.bhNtfcIntrvl.msg=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. +uss.ion.noi.alertNtfcTime=\uc54c\ub9bc\uc77c\uc790 \ubc0f \uc2dc\uac04\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#UI COP Message# +cop.sms.trnsmitTelno=\ubc1c\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.trnsmitCn=\uc804\uc1a1\ub0b4\uc6a9 +cop.sms.recptnTelno=\uc218\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.send=\uc804\uc1a1 +cop.sms.addRecptn=\ucd94\uac00 +cop.sms.recptnTelno.msg=\uc218\uc2e0\uc804\ud654\ubc88\ud638 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. + +#UI sym.log Message# +sym.log.histSeCode = \uc774\ub825\uad6c\ubd84 +sym.log.sysNm = \uc2dc\uc2a4\ud15c\uba85 +sym.log.histCn = \uc774\ub825\ub0b4\uc6a9 +sym.log.atchFile = \ucca8\ubd80\ud30c\uc77c +sym.log.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +sym.ems.receiver = \ubc1b\ub294\uc0ac\ub78c +sym.ems.title = \uc81c\ubaa9 +sym.ems.content = \ubc1c\uc2e0\ub0b4\uc6a9 + +#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) \uc815\uc218 \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) \uc2e4\uc218 \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.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.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +error.security.runtime.error = error + +#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. + +#Vlidator Errors- wordDicaryVO# +wordDicaryVO.wordNm=\uc6a9\uc5b4\uba85 +wordDicaryVO.engNm=\uc601\ubb38\uba85 +wordDicaryVO.wordDc=\uc6a9\uc5b4\uc124\uba85 +wordDicaryVO.synonm=\ub3d9\uc758\uc5b4 + +#Vlidator Errors- cnsltManageVO# +cnsltManageVO.cnsltSj=\uc0c1\ub2f4\uc81c\ubaa9 +cnsltManageVO.cnsltCn=\uc0c1\ub2f4\ub0b4\uc6a9 +cnsltManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +cnsltManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +cnsltManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +cnsltManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +cnsltManageVO.wrterNm=\uc791\uc131\uc790\uba85 +cnsltManageVO.managtCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- siteManageVO# +siteManageVO.siteNm=\uc0ac\uc774\ud2b8\uba85 +siteManageVO.siteUrl=\uc0ac\uc774\ud2b8 URL +siteManageVO.siteDc=\uc0ac\uc774\ud2b8\uc124\uba85 +siteManageVO.siteThemaClCode=\uc0ac\uc774\ud2b8\uc8fc\uc81c\ubd84\ub958 +siteManageVO.actvtyAt=\ud65c\uc131\uc5ec\ubd80 +siteManageVO.useAt=\uc0ac\uc6a9\uc5ec\ubd80 + +#Vlidator Errors- recomendSiteManageVO# +recomendSiteManageVO.recomendSiteNm=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uba85 +recomendSiteManageVO.recomendSiteUrl=\ucd94\ucc9c\uc0ac\uc774\ud2b8 URL +recomendSiteManageVO.recomendSiteDc=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc124\uba85 +recomendSiteManageVO.recomendResnCn=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc2b9\uc778\uc0ac\uc720 +recomendSiteManageVO.confmDe=\uc2b9\uc778\uc77c\uc790 + +#Vlidator Errors- hpcmManageVO# +hpcmManageVO.hpcmSeCode=\ub3c4\uc6c0\ub9d0\uad6c\ubd84 +hpcmManageVO.hpcmDf=\ub3c4\uc6c0\ub9d0\uc815\uc758 +hpcmManageVO.hpcmDc=\ub3c4\uc6c0\ub9d0\uc124\uba85 + +#Vlidator Errors- newsManageVO# +newsManageVO.newsSj=\ub274\uc2a4\uc81c\ubaa9 +newsManageVO.newsCn=\ub274\uc2a4\ub0b4\uc6a9 +newsManageVO.ntceDe=\uac8c\uc2dc\uc77c\uc790 + +#Vlidator Errors- faqManageVO# +faqManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +faqManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +faqManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- stplatManageVO# +stplatManageVO.useStplatNm=\uc774\uc6a9\uc57d\uad00\uba85 +stplatManageVO.useStplatCn=\uc774\uc6a9\uc57d\uad00\ub0b4\uc6a9 +stplatManageVO.infoProvdAgreCn=\uc815\ubcf4\uc81c\uacf5\ub3d9\uc758\ub0b4\uc6a9 + +#Vlidator Errors- cpyrhtPrtcPolicyVO# +cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45\ub0b4\uc6a9 + +#Vlidator Errors- qnaManageVO# +qnaManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +qnaManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +qnaManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +qnaManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +qnaManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +qnaManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +qnaManageVO.wrterNm=\uc791\uc131\uc790\uba85 +qnaManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- ReprtStatsVO# +sts.reprtId = \ubcf4\uace0\uc11cID +sts.title = \ubcf4\uace0\uc11c\uba85 +sts.category = \ubcf4\uace0\uc11c\uc720\ud615 +sts.status = \uc9c4\ud589\uc0c1\ud0dc +sts.regDate = \ub4f1\ub85d\uc77c\uc2dc + +#Rest day messages# +sym.cal.restDay = \ud734\uc77c\uc77c\uc790 +sym.cal.restName = \ud734\uc77c\uba85 +sym.cal.restDetail = \ud734\uc77c\uc124\uba85 +sym.cal.restCategory = \ud734\uc77c\uad6c\ubd84 + +image.errorBg = \uc624\ub958\uc774\ubbf8\uc9c0 + + +#Custom message# +custom.fail.access=\uc815\uc0c1\uc801\uc778 \uc811\uadfc\uc774 \uc544\ub2d9\ub2c8\ub2e4. \ub85c\uadf8\uc778 \ud6c4 \uc774\uc6a9\ud558\uc138\uc694. +custom.fail.accessDenied=\uc694\uccad\uc5d0 \ub300\ud55c \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. +custom.isNotExist.msg=\ucc98\ub9ac\uc5d0 \ud544\uc694\ud55c \uc790\ub8cc\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. diff --git a/src/main/resources/message/message-common_en.properties b/src/main/resources/message/message-common_en.properties new file mode 100644 index 0000000..03a9337 --- /dev/null +++ b/src/main/resources/message/message-common_en.properties @@ -0,0 +1,287 @@ +valueRequired={0} is required. + +pageNotFound=The requested page is not found. +sessionExpired=The session is expired due to excessive idle time. +invalidSession=You attempted to access the system via an invalid session. +accessDenied=You do not have the permission for the operation.
Please contact the administrator. +serverError=An error has occurred while performing the requested operation.
Please contact the administrator. + +duplicate.object=The {0} is already registered + +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 + + +#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 + +#UI Cop Message# +cop.extrlUser = External User +cop.intrlUser = Internal User +cop.private = private +cop.public = public + +cop.bbsNm = BBS Name +cop.bbsIntrcn = BBS Introduction +cop.bbsTyCode = BBS Type +cop.bbsAttrbCode = BBS Attribute +cop.replyPosblAt = Reply Possible Alternative +cop.fileAtchPosblAt = File Attach Possible Alternative +cop.posblAtchFileNumber = Possible Attach File Number +cop.tmplatId = Template Information +cop.guestList.subject = This article registered by Guest List +cop.nttSj = Notice Subject +cop.nttCn = Notice Contents +cop.ntceBgnde = Notice Start Date +cop.ntceEndde = Notice End Date +cop.ntcrNm = Noticer Name +cop.password = PassWord +cop.atchFile = Attach Files +cop.guestList = Guest List +cop.guestListCn = Guest List Contents +cop.noticeTerm = Notice term +cop.atchFileList = Attached File List +cop.cmmntyNm = Community Name +cop.cmmntyIntrcn = Community Introduction +cop.cmmntyMngr = Community Manager +cop.clbOprtr = Club Operator +cop.clbIntrcn = Club Introduction +cop.clbNm = Club Name +cop.tmplatNm = Template Name +cop.tmplatSeCode = Template Se Code +cop.tmplatCours = Template Cours +cop.useAt = Use Alternative +cop.ncrdNm = NameCard user name +cop.cmpnyNm = Company name +cop.deptNm = Department name +cop.ofcpsNm = OFCPS name +cop.clsfNm = Class Name +cop.emailAdres = E-mail +cop.telNo = Tel No. +cop.mbtlNum = Mobile +cop.adres = Address +cop.extrlUserAt = External User alternative +cop.publicAt = Public open alternative +cop.remark = Remark +cop.trgetNm = Company/Club Information +cop.preview = preview + +cop.withdraw.msg=confirm withdrawal memebership? +cop.reregist.msg=confirm re-registration? +cop.registmanager.msg=confirm registration of manager? +cop.use.msg=confirm use? +cop.unuse.msg=confirm stop using? +cop.delete.confirm.msg=If you choose to disable the re-use change is impossible. +cop.ing.msg=Approval is being requested. +cop.request.msg=Signup is normally requested. +cop.password.msg=Please enter your password. +cop.password.not.same.msg=Password do not match. + +cop.comment.wrterNm = Writer Name +cop.comment.commentCn = Comment +cop.comment.commentPassword = Password + +cop.satisfaction.wrterNm = Writer Name +cop.satisfaction.stsfdgCn = Satisfaction +cop.satisfaction.stsfdg = Satisfaction Degree +cop.satisfaction.stsfdgPassword = Password + +cop.scrap.scrapNm = Scrap Name + +#UI USS Message# +uss.ion.noi.ntfcSj=Subject +uss.ion.noi.ntfcCn=Contents +uss.ion.noi.ntfcDate=Notification Date +uss.ion.noi.ntfcTime=Notification Time +uss.ion.noi.ntfcHH=Notification Hour +uss.ion.noi.ntfcMM=Notification Minute +uss.ion.noi.bhNtfcIntrvl=Beforehand Interval +uss.ion.noi.bhNtfcIntrvl.msg=Beforehand Interval is required. +uss.ion.noi.alertNtfcTime=Date and time of notification is not valid. + +#UI COP Message# +cop.sms.trnsmitTelno=Sender +cop.sms.trnsmitCn=Contents +cop.sms.recptnTelno=Receiver(s) +cop.sms.send=Send +cop.sms.addRecptn=Add +cop.sms.recptnTelno.msg=The phone number of receiver is required. + +#UI sym.log Message# +sym.log.histSeCode = History Code +sym.log.sysNm = System Name +sym.log.histCn = History Contents +sym.log.atchFile = Attached File +sym.log.atchFileList = Attached File List +sym.ems.receiver = Receiver +sym.ems.title = Title +sym.ems.content = Content + +#Vlidator Errors# +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. + +#Vlidator Errors- ReprtStatsVO# +sts.reprtId = Report ID +sts.title = Report Title +sts.category = Report Category +sts.status = Report Status +sts.regDate = Registration Date + +#Rest day messages# +sym.cal.restDay = Holiday Date +sym.cal.restName = Holiday Name +sym.cal.restDetail = Holiday Detail +sym.cal.restCategory = Holiday Category + + +#Custom message# +custom.fail.access=It's not a normal approach. Log in and use it. +custom.fail.accessDenied=You do not have permission to request. +custom.isNotExist.msg=Data required for processing does not exist. diff --git a/src/main/resources/message/message-common_ko.properties b/src/main/resources/message/message-common_ko.properties new file mode 100644 index 0000000..86c6433 --- /dev/null +++ b/src/main/resources/message/message-common_ko.properties @@ -0,0 +1,385 @@ +valueRequired={0} is required. + +pageNotFound=The requested page is not found. +sessionExpired=The session is expired due to excessive idle time. +invalidSession=You attempted to access the system via an invalid session. +accessDenied=You do not have the permission for the operation.
Please contact the administrator. +serverError=An error has occurred while performing the requested operation.
Please contact the administrator. + +duplicate.object=The {0} is already registered + +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 + + +#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. + + +#UI Cop Message# +cop.extrlUser = \uc678\ubd80\uc0ac\uc6a9\uc790 +cop.intrlUser = \ub0b4\ubd80\uc0ac\uc6a9\uc790 +cop.private = \ube44\uacf5\uac1c +cop.public = \uacf5\uac1c + +cop.adbkNm = \uc8fc\uc18c\ub85d\uba85 +cop.othbcScope = \uacf5\uac1c\ubc94\uc704 +cop.company = \ud68c\uc0ac +cop.part = \ubd80\uc11c +cop.man = \uac1c\uc778 +cop.adbkUser = \uad6c\uc131\uc6d0 +cop.bbsNm = \uac8c\uc2dc\ud310\uba85 +cop.bbsIntrcn = \uac8c\uc2dc\ud310\uc18c\uac1c +cop.bbsTyCode = \uac8c\uc2dc\ud310 \uc720\ud615 +cop.bbsAttrbCode = \uac8c\uc2dc\ud310 \uc18d\uc131 +cop.replyPosblAt = \ub2f5\uc7a5\uac00\ub2a5\uc5ec\ubd80 +cop.fileAtchPosblAt = \ud30c\uc77c\ucca8\ubd80\uac00\ub2a5\uc5ec\ubd80 +cop.posblAtchFileNumber = \ucca8\ubd80\uac00\ub2a5\ud30c\uc77c \uc22b\uc790 +cop.tmplatId = \ud15c\ud50c\ub9bf \uc815\ubcf4 +cop.guestList.subject = \ubc29\uba85\ub85d \uac8c\uc2dc\uae00\uc785\ub2c8\ub2e4. +cop.nttSj = \uc81c\ubaa9 +cop.nttCn = \uae00\ub0b4\uc6a9 +cop.ntceBgnde = \uac8c\uc2dc\uc2dc\uc791\uc77c +cop.ntceEndde = \uac8c\uc2dc\uc885\ub8cc\uc77c +cop.ntcrNm = \uc791\uc131\uc790 +cop.password = \ud328\uc2a4\uc6cc\ub4dc +cop.atchFile = \ud30c\uc77c\ucca8\ubd80 +cop.guestList = \ubc29\uba85\ub85d +cop.guestListCn = \ubc29\uba85\ub85d \ub0b4\uc6a9 +cop.noticeTerm = \uac8c\uc2dc\uae30\uac04 +cop.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +cop.cmmntyNm = \ucee4\ubba4\ub2c8\ud2f0\uba85 +cop.cmmntyIntrcn = \ucee4\ubba4\ub2c8\ud2f0 \uc18c\uac1c +cop.cmmntyMngr = \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790 +cop.clbOprtr = \ub3d9\ud638\ud68c \uc6b4\uc601\uc790 +cop.clbIntrcn = \ub3d9\ud638\ud68c \uc18c\uac1c +cop.clbNm = \ub3d9\ud638\ud68c \uba85 +cop.tmplatNm = \ud15c\ud50c\ub9bf\uba85 +cop.tmplatSeCode = \ud15c\ud50c\ub9bf \uad6c\ubd84 +cop.tmplatCours = \ud15c\ud50c\ub9bf\uacbd\ub85c +cop.useAt = \uc0ac\uc6a9\uc5ec\ubd80 +cop.ncrdNm = \uc774\ub984 +cop.cmpnyNm = \ud68c\uc0ac\uba85 +cop.deptNm = \ubd80\uc11c\uba85 +cop.ofcpsNm = \uc9c1\uc704 +cop.clsfNm = \uc9c1\uae09 +cop.emailAdres = \uc774\uba54\uc77c\uc8fc\uc18c +cop.telNo = \uc804\ud654\ubc88\ud638 +cop.mbtlNum = \ud734\ub300\ud3f0\ubc88\ud638 +cop.adres = \uc8fc\uc18c +cop.extrlUserAt = \uc678\ubd80\uc0ac\uc6a9\uc790\uc5ec\ubd80 +cop.publicAt = \uacf5\uac1c\uc5ec\ubd80 +cop.remark = \ube44\uace0 +cop.trgetNm = \ucee4\ubba4\ub2c8\ud2f0/\ub3d9\ud638\ud68c \uc815\ubcf4 +cop.preview = \ubbf8\ub9ac\ubcf4\uae30 + +cop.withdraw.msg=\ud0c8\ud1f4\ucc98\ub9ac \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.reregist.msg=\uc7ac\uac00\uc785 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.registmanager.msg=\uc6b4\uc601\uc9c4\uc73c\ub85c \ub4f1\ub85d\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.use.msg=\uc0ac\uc6a9 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.unuse.msg=\uc0ac\uc6a9\uc911\uc9c0 \ucc98\ub9ac\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c? +cop.delete.confirm.msg=\uc0ac\uc6a9\uc911\uc9c0\ub97c \uc120\ud0dd\ud558\uc2e4 \uacbd\uc6b0 \ub2e4\uc2dc \uc0ac\uc6a9\uc73c\ub85c \ubcc0\uacbd\uc774 \ubd88\uac00\ub2a5\ud569\ub2c8\ub2e4. +cop.ing.msg=\uc2b9\uc778\uc694\uccad \uc911\uc785\ub2c8\ub2e4. +cop.request.msg=\uac00\uc785\uc2e0\uccad\uc774 \uc815\uc0c1\uc801\uc73c\ub85c \uc694\uccad\ub418\uc5c8\uc2b5\ub2c8\ub2e4 +cop.password.msg=\ud328\uc2a4\uc6cc\ub4dc\ub97c \uc785\ub825\ud574 \uc8fc\uc2ed\uc2dc\uc624. +cop.password.not.same.msg=\ud328\uc2a4\uc6cc\ub4dc\uac00 \uc77c\uce58\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +cop.comment.wrterNm = \uc791\uc131\uc790 +cop.comment.commentCn = \ub0b4\uc6a9 +cop.comment.commentPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.satisfaction.wrterNm = \uc791\uc131\uc790 +cop.satisfaction.stsfdgCn = \ub0b4\uc6a9 +cop.satisfaction.stsfdg = \ub9cc\uc871\ub3c4 +cop.satisfaction.stsfdgPassword = \ud328\uc2a4\uc6cc\ub4dc + +cop.scrap.scrapNm = \uc2a4\ud06c\ub7a9\uba85 + +#UI USS Message# +uss.ion.noi.ntfcSj=\uc81c\ubaa9 +uss.ion.noi.ntfcCn=\ub0b4\uc6a9 +uss.ion.noi.ntfcDate=\uc54c\ub9bc\uc77c\uc790 +uss.ion.noi.ntfcTime=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcHH=\uc54c\ub9bc\uc2dc\uac04 +uss.ion.noi.ntfcMM=\uc54c\ub9bc\ubd84 +uss.ion.noi.bhNtfcIntrvl=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 +uss.ion.noi.bhNtfcIntrvl.msg=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. +uss.ion.noi.alertNtfcTime=\uc54c\ub9bc\uc77c\uc790 \ubc0f \uc2dc\uac04\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. + +#UI COP Message# +cop.sms.trnsmitTelno=\ubc1c\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.trnsmitCn=\uc804\uc1a1\ub0b4\uc6a9 +cop.sms.recptnTelno=\uc218\uc2e0\uc804\ud654\ubc88\ud638 +cop.sms.send=\uc804\uc1a1 +cop.sms.addRecptn=\ucd94\uac00 +cop.sms.recptnTelno.msg=\uc218\uc2e0\uc804\ud654\ubc88\ud638 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4. + +#UI sym.log Message# +sym.log.histSeCode = \uc774\ub825\uad6c\ubd84 +sym.log.sysNm = \uc2dc\uc2a4\ud15c\uba85 +sym.log.histCn = \uc774\ub825\ub0b4\uc6a9 +sym.log.atchFile = \ucca8\ubd80\ud30c\uc77c +sym.log.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d +sym.ems.receiver = \ubc1b\ub294\uc0ac\ub78c +sym.ems.title = \uc81c\ubaa9 +sym.ems.content = \ubc1c\uc2e0\ub0b4\uc6a9 + +#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) \uc815\uc218 \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) \uc2e4\uc218 \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.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.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4. +error.security.runtime.error = error + +#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. + +#Vlidator Errors- wordDicaryVO# +wordDicaryVO.wordNm=\uc6a9\uc5b4\uba85 +wordDicaryVO.engNm=\uc601\ubb38\uba85 +wordDicaryVO.wordDc=\uc6a9\uc5b4\uc124\uba85 +wordDicaryVO.synonm=\ub3d9\uc758\uc5b4 + +#Vlidator Errors- cnsltManageVO# +cnsltManageVO.cnsltSj=\uc0c1\ub2f4\uc81c\ubaa9 +cnsltManageVO.cnsltCn=\uc0c1\ub2f4\ub0b4\uc6a9 +cnsltManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +cnsltManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +cnsltManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +cnsltManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +cnsltManageVO.wrterNm=\uc791\uc131\uc790\uba85 +cnsltManageVO.managtCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- siteManageVO# +siteManageVO.siteNm=\uc0ac\uc774\ud2b8\uba85 +siteManageVO.siteUrl=\uc0ac\uc774\ud2b8 URL +siteManageVO.siteDc=\uc0ac\uc774\ud2b8\uc124\uba85 +siteManageVO.siteThemaClCode=\uc0ac\uc774\ud2b8\uc8fc\uc81c\ubd84\ub958 +siteManageVO.actvtyAt=\ud65c\uc131\uc5ec\ubd80 +siteManageVO.useAt=\uc0ac\uc6a9\uc5ec\ubd80 + +#Vlidator Errors- recomendSiteManageVO# +recomendSiteManageVO.recomendSiteNm=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uba85 +recomendSiteManageVO.recomendSiteUrl=\ucd94\ucc9c\uc0ac\uc774\ud2b8 URL +recomendSiteManageVO.recomendSiteDc=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc124\uba85 +recomendSiteManageVO.recomendResnCn=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc2b9\uc778\uc0ac\uc720 +recomendSiteManageVO.confmDe=\uc2b9\uc778\uc77c\uc790 + +#Vlidator Errors- hpcmManageVO# +hpcmManageVO.hpcmSeCode=\ub3c4\uc6c0\ub9d0\uad6c\ubd84 +hpcmManageVO.hpcmDf=\ub3c4\uc6c0\ub9d0\uc815\uc758 +hpcmManageVO.hpcmDc=\ub3c4\uc6c0\ub9d0\uc124\uba85 + +#Vlidator Errors- newsManageVO# +newsManageVO.newsSj=\ub274\uc2a4\uc81c\ubaa9 +newsManageVO.newsCn=\ub274\uc2a4\ub0b4\uc6a9 +newsManageVO.ntceDe=\uac8c\uc2dc\uc77c\uc790 + +#Vlidator Errors- faqManageVO# +faqManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +faqManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +faqManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- stplatManageVO# +stplatManageVO.useStplatNm=\uc774\uc6a9\uc57d\uad00\uba85 +stplatManageVO.useStplatCn=\uc774\uc6a9\uc57d\uad00\ub0b4\uc6a9 +stplatManageVO.infoProvdAgreCn=\uc815\ubcf4\uc81c\uacf5\ub3d9\uc758\ub0b4\uc6a9 + +#Vlidator Errors- cpyrhtPrtcPolicyVO# +cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45\ub0b4\uc6a9 + +#Vlidator Errors- qnaManageVO# +qnaManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9 +qnaManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9 +qnaManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638 +qnaManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638 +qnaManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638 +qnaManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638 +qnaManageVO.wrterNm=\uc791\uc131\uc790\uba85 +qnaManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9 + +#Vlidator Errors- ReprtStatsVO# +sts.reprtId = \ubcf4\uace0\uc11cID +sts.title = \ubcf4\uace0\uc11c\uba85 +sts.category = \ubcf4\uace0\uc11c\uc720\ud615 +sts.status = \uc9c4\ud589\uc0c1\ud0dc +sts.regDate = \ub4f1\ub85d\uc77c\uc2dc + +#Rest day messages# +sym.cal.restDay = \ud734\uc77c\uc77c\uc790 +sym.cal.restName = \ud734\uc77c\uba85 +sym.cal.restDetail = \ud734\uc77c\uc124\uba85 +sym.cal.restCategory = \ud734\uc77c\uad6c\ubd84 + +image.errorBg = \uc624\ub958\uc774\ubbf8\uc9c0 + + +#Custom message# +custom.fail.access=\uc815\uc0c1\uc801\uc778 \uc811\uadfc\uc774 \uc544\ub2d9\ub2c8\ub2e4. \ub85c\uadf8\uc778 \ud6c4 \uc774\uc6a9\ud558\uc138\uc694. +custom.fail.accessDenied=\uc694\uccad\uc5d0 \ub300\ud55c \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4. +custom.isNotExist.msg=\ucc98\ub9ac\uc5d0 \ud544\uc694\ud55c \uc790\ub8cc\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4. diff --git a/src/main/resources/properties/commons-logging.properties b/src/main/resources/properties/commons-logging.properties new file mode 100644 index 0000000..d5332ca --- /dev/null +++ b/src/main/resources/properties/commons-logging.properties @@ -0,0 +1,2 @@ +org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger +org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl \ No newline at end of file diff --git a/src/main/resources/sql/mapper/base/test-mapper.xml b/src/main/resources/sql/mapper/base/test-mapper.xml new file mode 100644 index 0000000..d674130 --- /dev/null +++ b/src/main/resources/sql/mapper/base/test-mapper.xml @@ -0,0 +1,13 @@ + + + + +${sql} + +${sql} + +${sql} + +COMMIT + + \ No newline at end of file diff --git a/src/main/resources/sql/mapper/base/utility.xml b/src/main/resources/sql/mapper/base/utility.xml new file mode 100644 index 0000000..7f335db --- /dev/null +++ b/src/main/resources/sql/mapper/base/utility.xml @@ -0,0 +1,37 @@ + + + + + + +SELECT QROWS.* FROM ( + SELECT ROW_NUMBER() OVER() ROW_NUM + , COUNT(*) OVER() TOT_CNT, QBODY.* + FROM ( + + ) QBODY + ) QROWS +WHERE ROW_NUM BETWEEN ((#{pageNum} - 1) * #{fetchSize}) + 1 AND (#{pageNum} * #{fetchSize}) + + + +ORDER BY ${orderBy} + + + +DATE_FORMAT(CURRENT_TIMESTAMP, '%Y%m%d%H%i%s') +TO_CHAR(CURRENT_TIMESTAMP, 'YYYYMMDDHH24MISS') + +SELECTNOW FROM DUAL + +DATE_FORMAT(CURRENT_DATE, '%Y%m%d') +TO_CHAR(CURRENT_DATE, 'YYYYMMDD') + +SELECTTODAY FROM DUAL + +NVL(#{thisDay},) + +SELECTTHIS_DAY FROM DUAL + + \ No newline at end of file diff --git a/src/main/resources/sql/mybatis-config.xml b/src/main/resources/sql/mybatis-config.xml new file mode 100644 index 0000000..44b3157 --- /dev/null +++ b/src/main/resources/sql/mybatis-config.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/sql/lvis.sql b/src/main/sql/lvis.sql new file mode 100644 index 0000000..799f0c2 --- /dev/null +++ b/src/main/sql/lvis.sql @@ -0,0 +1,214 @@ +CREATE TABLE TB_CAR_BSC_MTTR +( + BSC_MTTR_ID VARCHAR(30) NOT NULL, + MESSAGEID VARCHAR(10) NULL, + MESSAGENAME VARCHAR(100) NULL, + MESSAGEREASON VARCHAR(500) NULL, + MESSAGEREMARK VARCHAR(100) NULL, + EXCEPTIONSTACKTRACE VARCHAR(100) NULL, + CNTC_INFO_CODE VARCHAR(30) NULL, + DMND_LEVY_STDDE VARCHAR(8) NULL, + DMND_INQIRE_SE_CODE VARCHAR(1) NULL, + DMND_VHRNO VARCHAR(16) NULL, + DMND_VIN VARCHAR(17) NULL, + PRYE VARCHAR(4) NULL, + REGIST_DE VARCHAR(8) NULL, + ERSR_REGIST_SE_CODE VARCHAR(4) NULL, + ERSR_REGIST_SE_NM VARCHAR(100) NULL, + ERSR_REGIST_DE VARCHAR(8) NULL, + REGIST_DETAIL_CODE VARCHAR(3) NULL, + DSPLVL VARCHAR(6) NULL, + USE_STRNGHLD_LEGALDONG_CODE VARCHAR(10) NULL, + USE_STRNGHLD_ADSTRD_CODE VARCHAR(10) NULL, + USE_STRNGHLD_MNTN VARCHAR(2) NULL, + USE_STRNGHLD_LNBR VARCHAR(4) NULL, + USE_STRNGHLD_HO VARCHAR(4) NULL, + USE_STRNGHLD_ADRES_NM VARCHAR(150) NULL, + USE_STRNGHLD_ROAD_NM_CODE VARCHAR(12) NULL, + USGSRHLD_UNDGRND_BULD_SE_CODE VARCHAR(1) NULL, + USE_STRNGHLD_BULD_MAIN_NO VARCHAR(5) NULL, + USE_STRNGHLD_BULD_SUB_NO VARCHAR(5) NULL, + USGSRHLD_ADRES_FULL VARCHAR(500) NULL, + MBER_SE_CODE VARCHAR(2) NULL, + MBER_NM VARCHAR(50) NULL, + MBER_SE_NO VARCHAR(100) NULL, + TELNO VARCHAR(20) NULL, + OWNER_LEGALDONG_CODE VARCHAR(10) NULL, + OWNER_ADSTRD_CODE VARCHAR(10) NULL, + OWNER_MNTN VARCHAR(2) NULL, + OWNER_LNBR VARCHAR(4) NULL, + OWNER_HO VARCHAR(4) NULL, + OWNER_ADRES_NM VARCHAR(150) NULL, + OWNER_ROAD_NM_CODE VARCHAR(12) NULL, + OWNER_UNDGRND_BULD_SE_CODE VARCHAR(1) NULL, + OWNER_BULD_MAIN_NO VARCHAR(5) NULL, + OWNER_BULD_SUB_NO VARCHAR(5) NULL, + OWNER_ADRES_FULL VARCHAR(500) NULL, + AFTR_VHRNO VARCHAR(16) NULL, + USE_FUEL_CODE VARCHAR(1) NULL, + PRPOS_SE_CODE VARCHAR(2) NULL, + MTRS_FOM_NM VARCHAR(50) NULL, + FRNT_VHRNO VARCHAR(16) NULL, + VHRNO VARCHAR(16) NULL, + VIN VARCHAR(17) NULL, + CNM VARCHAR(50) NULL, + VHCLE_TOT_WT VARCHAR(6) NULL, + CAAG_ENDDE VARCHAR(8) NULL, + CHANGE_DE VARCHAR(8) NULL, + VHCTY_ASORT_CODE VARCHAR(1) NULL, + VHCTY_TY_CODE VARCHAR(1) NULL, + VHCTY_SE_CODE VARCHAR(1) NULL, + MXMM_LDG VARCHAR(10) NULL, + VHCTY_ASORT_NM VARCHAR(100) NULL, + VHCTY_TY_NM VARCHAR(100) NULL, + VHCTY_SE_NM VARCHAR(100) NULL, + FRST_REGIST_DE VARCHAR(8) NULL, + FOM_NM VARCHAR(50) NULL, + ACQS_DE VARCHAR(8) NULL, + ACQS_END_DE VARCHAR(8) NULL, + YBL_MD VARCHAR(8) NULL, + TRANSR_REGIST_DE VARCHAR(8) NULL, + SPCF_REGIST_STTUS_CODE VARCHAR(6) NULL, + COLOR_NM VARCHAR(50) NULL, + MRTG_CO VARCHAR(9) NULL, + SEIZR_CO VARCHAR(9) NULL, + STMD_CO VARCHAR(9) NULL, + NMPL_CSDY_AT VARCHAR(1) NULL, + NMPL_CSDY_REMNR_DE VARCHAR(8) NULL, + ORIGIN_SE_CODE VARCHAR(1) NULL, + NMPL_STNDRD_CODE VARCHAR(1) NULL, + ACQS_AMOUNT VARCHAR(50) NULL, + INSPT_VALID_PD_BGNDE VARCHAR(8) NULL, + INSPT_VALID_PD_ENDDE VARCHAR(8) NULL, + CHCK_VALID_PD_BGNDE VARCHAR(8) NULL, + CHCK_VALID_PD_ENDDE VARCHAR(8) NULL, + USE_STRNGHLD_GRC_CODE VARCHAR(4) NULL, + TKCAR_PSCAP_CO VARCHAR(3) NULL, + SPMNNO VARCHAR(20) NULL, + TRVL_DSTNC VARCHAR(10) NULL, + FRST_REGIST_RQRCNO VARCHAR(20) NULL, + VLNT_ERSR_PRVNTC_NTICE_DE VARCHAR(8) NULL, + REGIST_INSTT_NM VARCHAR(100) NULL, + VIMS_PRPOS_SE_CODE VARCHAR(2) NULL, + VIMS_VHCTY_ASORT_CODE VARCHAR(1) NULL, + VIMS_VHCTY_TY_CODE VARCHAR(1) NULL, + VIMS_VHCTY_SE_CODE VARCHAR(1) NULL, + CBD_LT VARCHAR(10) NULL, + CBD_BT VARCHAR(10) NULL, + CBD_HG VARCHAR(10) NULL, + FRST_MXMM_LDG VARCHAR(10) NULL, + FUEL_CNSMP_RT VARCHAR(5) NULL, + ELCTY_CMPND_FUEL_CNSMP_RT VARCHAR(5) NULL, + PROCESS_IMPRTY_RESN_CODE VARCHAR(2) NULL, + PROCESS_IMPRTY_RESN_DTLS VARCHAR(50) NULL, + REG_DT VARCHAR(14) NULL, + RGTR VARCHAR(10) NULL +); + +ALTER TABLE TB_CAR_BSC_MTTR +ADD PRIMARY KEY (BSC_MTTR_ID); + +ALTER TABLE TB_CAR_BSC_MTTR COMMENT = '자동차 기본사항'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN BSC_MTTR_ID BSC_MTTR_ID VARCHAR(30) NOT NULL COMMENT '기본 사항 ID'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN MESSAGEID MESSAGEID VARCHAR(10) NULL COMMENT '결과 메시지 ID'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN MESSAGENAME MESSAGENAME VARCHAR(100) NULL COMMENT '결과 메시지 명'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN MESSAGEREASON MESSAGEREASON VARCHAR(500) NULL COMMENT '결과 메시지 사유'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN MESSAGEREMARK MESSAGEREMARK VARCHAR(100) NULL COMMENT '결과 메시지 비고'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN EXCEPTIONSTACKTRACE EXCEPTIONSTACKTRACE VARCHAR(100) NULL COMMENT '오류 메시지 STACK'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN CNTC_INFO_CODE CNTC_INFO_CODE VARCHAR(30) NULL COMMENT '연계 정보 코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN DMND_LEVY_STDDE DMND_LEVY_STDDE VARCHAR(8) NULL COMMENT '요청 부과기준일'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN DMND_INQIRE_SE_CODE DMND_INQIRE_SE_CODE VARCHAR(1) NULL COMMENT '요청 조회구분코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN DMND_VHRNO DMND_VHRNO VARCHAR(16) NULL COMMENT '요청 자동차등록번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN DMND_VIN DMND_VIN VARCHAR(17) NULL COMMENT '요청 차대번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN PRYE PRYE VARCHAR(4) NULL COMMENT '연식'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN REGIST_DE REGIST_DE VARCHAR(8) NULL COMMENT '등록일'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN ERSR_REGIST_SE_CODE ERSR_REGIST_SE_CODE VARCHAR(4) NULL COMMENT '말소등록구분코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN ERSR_REGIST_SE_NM ERSR_REGIST_SE_NM VARCHAR(100) NULL COMMENT '말소등록구분명'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN ERSR_REGIST_DE ERSR_REGIST_DE VARCHAR(8) NULL COMMENT '말송등록일'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN REGIST_DETAIL_CODE REGIST_DETAIL_CODE VARCHAR(3) NULL COMMENT '등록상세코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN DSPLVL DSPLVL VARCHAR(6) NULL COMMENT '배기량'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USE_STRNGHLD_LEGALDONG_CODE USE_STRNGHLD_LEGALDONG_CODE VARCHAR(10) NULL COMMENT '사용본거지법정동코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USE_STRNGHLD_ADSTRD_CODE USE_STRNGHLD_ADSTRD_CODE VARCHAR(10) NULL COMMENT '사용본거지행정동코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USE_STRNGHLD_MNTN USE_STRNGHLD_MNTN VARCHAR(2) NULL COMMENT '사용본거지산'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USE_STRNGHLD_LNBR USE_STRNGHLD_LNBR VARCHAR(4) NULL COMMENT '사용본거지번지'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USE_STRNGHLD_HO USE_STRNGHLD_HO VARCHAR(4) NULL COMMENT '사용본거지호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USE_STRNGHLD_ADRES_NM USE_STRNGHLD_ADRES_NM VARCHAR(150) NULL COMMENT '사용본거지상세주소'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USE_STRNGHLD_ROAD_NM_CODE USE_STRNGHLD_ROAD_NM_CODE VARCHAR(12) NULL COMMENT '사용본거지도로명코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USGSRHLD_UNDGRND_BULD_SE_CODE USGSRHLD_UNDGRND_BULD_SE_CODE VARCHAR(1) NULL COMMENT '사용본거지지하건물구분코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USE_STRNGHLD_BULD_MAIN_NO USE_STRNGHLD_BULD_MAIN_NO VARCHAR(5) NULL COMMENT '사용본거지건물주요번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USE_STRNGHLD_BULD_SUB_NO USE_STRNGHLD_BULD_SUB_NO VARCHAR(5) NULL COMMENT '사용본거지건물부번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USGSRHLD_ADRES_FULL USGSRHLD_ADRES_FULL VARCHAR(500) NULL COMMENT '사용본거지전체주소'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN MBER_SE_CODE MBER_SE_CODE VARCHAR(2) NULL COMMENT '대표소유자회원구분코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN MBER_NM MBER_NM VARCHAR(50) NULL COMMENT '대표소유자성명'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN MBER_SE_NO MBER_SE_NO VARCHAR(100) NULL COMMENT '대표소유자회원번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN TELNO TELNO VARCHAR(20) NULL COMMENT '대표소유자전화번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN OWNER_LEGALDONG_CODE OWNER_LEGALDONG_CODE VARCHAR(10) NULL COMMENT '소유자법정동코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN OWNER_ADSTRD_CODE OWNER_ADSTRD_CODE VARCHAR(10) NULL COMMENT '소유자행정동코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN OWNER_MNTN OWNER_MNTN VARCHAR(2) NULL COMMENT '소유자산'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN OWNER_LNBR OWNER_LNBR VARCHAR(4) NULL COMMENT '소유자번지'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN OWNER_HO OWNER_HO VARCHAR(4) NULL COMMENT '소유자호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN OWNER_ADRES_NM OWNER_ADRES_NM VARCHAR(150) NULL COMMENT '소유자상세주소'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN OWNER_ROAD_NM_CODE OWNER_ROAD_NM_CODE VARCHAR(12) NULL COMMENT '소유자도로명코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN OWNER_UNDGRND_BULD_SE_CODE OWNER_UNDGRND_BULD_SE_CODE VARCHAR(1) NULL COMMENT '소유자지하건물구분코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN OWNER_BULD_MAIN_NO OWNER_BULD_MAIN_NO VARCHAR(5) NULL COMMENT '소유자건물주요번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN OWNER_BULD_SUB_NO OWNER_BULD_SUB_NO VARCHAR(5) NULL COMMENT '소유자건물부번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN OWNER_ADRES_FULL OWNER_ADRES_FULL VARCHAR(500) NULL COMMENT '소유자전체주소'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN AFTR_VHRNO AFTR_VHRNO VARCHAR(16) NULL COMMENT '신차량번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USE_FUEL_CODE USE_FUEL_CODE VARCHAR(1) NULL COMMENT '사용연료코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN PRPOS_SE_CODE PRPOS_SE_CODE VARCHAR(2) NULL COMMENT '용도구분코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN MTRS_FOM_NM MTRS_FOM_NM VARCHAR(50) NULL COMMENT '원동기형식명'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN FRNT_VHRNO FRNT_VHRNO VARCHAR(16) NULL COMMENT '이전차량번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VHRNO VHRNO VARCHAR(16) NULL COMMENT '차량번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VIN VIN VARCHAR(17) NULL COMMENT '차대번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN CNM CNM VARCHAR(50) NULL COMMENT '차명'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VHCLE_TOT_WT VHCLE_TOT_WT VARCHAR(6) NULL COMMENT '차량총중량'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN CAAG_ENDDE CAAG_ENDDE VARCHAR(8) NULL COMMENT '차령만료일자'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN CHANGE_DE CHANGE_DE VARCHAR(8) NULL COMMENT '차번호변경시기'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VHCTY_ASORT_CODE VHCTY_ASORT_CODE VARCHAR(1) NULL COMMENT '차종종별코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VHCTY_TY_CODE VHCTY_TY_CODE VARCHAR(1) NULL COMMENT '차종유형코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VHCTY_SE_CODE VHCTY_SE_CODE VARCHAR(1) NULL COMMENT '차종분류코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN MXMM_LDG MXMM_LDG VARCHAR(10) NULL COMMENT '최대적재량'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VHCTY_ASORT_NM VHCTY_ASORT_NM VARCHAR(100) NULL COMMENT '차종종별명'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VHCTY_TY_NM VHCTY_TY_NM VARCHAR(100) NULL COMMENT '차종유형명'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VHCTY_SE_NM VHCTY_SE_NM VARCHAR(100) NULL COMMENT '차종분류명'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN FRST_REGIST_DE FRST_REGIST_DE VARCHAR(8) NULL COMMENT '최초등록일'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN FOM_NM FOM_NM VARCHAR(50) NULL COMMENT '형식'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN ACQS_DE ACQS_DE VARCHAR(8) NULL COMMENT '취득일자'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN ACQS_END_DE ACQS_END_DE VARCHAR(8) NULL COMMENT '취득종료일자'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN YBL_MD YBL_MD VARCHAR(8) NULL COMMENT '제작년월일'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN TRANSR_REGIST_DE TRANSR_REGIST_DE VARCHAR(8) NULL COMMENT '이전등록일'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN SPCF_REGIST_STTUS_CODE SPCF_REGIST_STTUS_CODE VARCHAR(6) NULL COMMENT '제원등록상태코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN COLOR_NM COLOR_NM VARCHAR(50) NULL COMMENT '색상명'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN MRTG_CO MRTG_CO VARCHAR(9) NULL COMMENT '저당수'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN SEIZR_CO SEIZR_CO VARCHAR(9) NULL COMMENT '압류건수'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN STMD_CO STMD_CO VARCHAR(9) NULL COMMENT '구조변경수'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN NMPL_CSDY_AT NMPL_CSDY_AT VARCHAR(1) NULL COMMENT '번호판영치여부'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN NMPL_CSDY_REMNR_DE NMPL_CSDY_REMNR_DE VARCHAR(8) NULL COMMENT '번호판영치최고일'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN ORIGIN_SE_CODE ORIGIN_SE_CODE VARCHAR(1) NULL COMMENT '출처구분코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN NMPL_STNDRD_CODE NMPL_STNDRD_CODE VARCHAR(1) NULL COMMENT '번호판규격코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN ACQS_AMOUNT ACQS_AMOUNT VARCHAR(50) NULL COMMENT '취득금액'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN INSPT_VALID_PD_BGNDE INSPT_VALID_PD_BGNDE VARCHAR(8) NULL COMMENT '검사유효기간시작일'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN INSPT_VALID_PD_ENDDE INSPT_VALID_PD_ENDDE VARCHAR(8) NULL COMMENT '검사유효기간종료일'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN CHCK_VALID_PD_BGNDE CHCK_VALID_PD_BGNDE VARCHAR(8) NULL COMMENT '점검유효기간시작일'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN CHCK_VALID_PD_ENDDE CHCK_VALID_PD_ENDDE VARCHAR(8) NULL COMMENT '점검유효기간종료일'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN USE_STRNGHLD_GRC_CODE USE_STRNGHLD_GRC_CODE VARCHAR(4) NULL COMMENT '사용본거지관청코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN TKCAR_PSCAP_CO TKCAR_PSCAP_CO VARCHAR(3) NULL COMMENT '승차정원수'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN SPMNNO SPMNNO VARCHAR(20) NULL COMMENT '제원관리번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN TRVL_DSTNC TRVL_DSTNC VARCHAR(10) NULL COMMENT '주행거리'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN FRST_REGIST_RQRCNO FRST_REGIST_RQRCNO VARCHAR(20) NULL COMMENT '최초등록접수번호'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VLNT_ERSR_PRVNTC_NTICE_DE VLNT_ERSR_PRVNTC_NTICE_DE VARCHAR(8) NULL COMMENT '예고통지일'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN REGIST_INSTT_NM REGIST_INSTT_NM VARCHAR(100) NULL COMMENT '등록기관명'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VIMS_PRPOS_SE_CODE VIMS_PRPOS_SE_CODE VARCHAR(2) NULL COMMENT 'VIMS_용도구분코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VIMS_VHCTY_ASORT_CODE VIMS_VHCTY_ASORT_CODE VARCHAR(1) NULL COMMENT 'VIMS_차종종별코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VIMS_VHCTY_TY_CODE VIMS_VHCTY_TY_CODE VARCHAR(1) NULL COMMENT 'VIMS_차종유형코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN VIMS_VHCTY_SE_CODE VIMS_VHCTY_SE_CODE VARCHAR(1) NULL COMMENT 'VIMS_차종분류코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN CBD_LT CBD_LT VARCHAR(10) NULL COMMENT '차체길이'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN CBD_BT CBD_BT VARCHAR(10) NULL COMMENT '차체너비'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN CBD_HG CBD_HG VARCHAR(10) NULL COMMENT '차체높이'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN FRST_MXMM_LDG FRST_MXMM_LDG VARCHAR(10) NULL COMMENT '최초최대적재량'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN FUEL_CNSMP_RT FUEL_CNSMP_RT VARCHAR(5) NULL COMMENT '연료소비율'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN ELCTY_CMPND_FUEL_CNSMP_RT ELCTY_CMPND_FUEL_CNSMP_RT VARCHAR(5) NULL COMMENT '전기복합연료소비율'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN PROCESS_IMPRTY_RESN_CODE PROCESS_IMPRTY_RESN_CODE VARCHAR(2) NULL COMMENT '처리불가사유코드'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN PROCESS_IMPRTY_RESN_DTLS PROCESS_IMPRTY_RESN_DTLS VARCHAR(50) NULL COMMENT '처리불가사유명세'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN REG_DT REG_DT VARCHAR(14) NULL COMMENT '등록 일시'; + ALTER TABLE TB_CAR_BSC_MTTR CHANGE COLUMN RGTR RGTR VARCHAR(10) NULL COMMENT '등록자'; \ No newline at end of file diff --git a/src/test/java/cokr/xit/interfaces/saeol/SaeolMessageTest.java b/src/test/java/cokr/xit/interfaces/saeol/SaeolMessageTest.java new file mode 100644 index 0000000..b9c0828 --- /dev/null +++ b/src/test/java/cokr/xit/interfaces/saeol/SaeolMessageTest.java @@ -0,0 +1,41 @@ +package cokr.xit.interfaces.saeol; + +import java.util.List; + +import org.junit.jupiter.api.Test; + +import cokr.xit.interfaces.saeol.service.bean.Configuration; +import cokr.xit.interfaces.saeol.service.bean.XmlSupport; + +public class SaeolMessageTest { + private XmlSupport xmlSupport = new XmlSupport(); + + @Test + void config() { + System.out.println("charset: " + Configuration.charset()); + System.out.println("sido: " + Configuration.sido()); + System.out.println("sigungu: " + Configuration.sigungu()); + System.out.println("sources: " + Configuration.sources()); + System.out.println("target org: " + Configuration.target().getOrg()); + System.out.println("target url: " + Configuration.target().getUrl()); + System.out.println("target certServer: " + Configuration.target().getCertServer()); + } + + @Test + void request() { + List.of(new SOHNN00004(), new SOHNN00011()).forEach(msg -> + System.out.println("req msg:\n" + xmlSupport.stringify(msg.getRequest(), false)) + ); + } + + @Test + void response() { + List.of(new SOHNN00004(), new SOHNN00011()).forEach(msg -> { + SaeolMessage.Request req = msg.getRequest(); + String body = xmlSupport.stringify(req, false); + + xmlSupport.parse(msg, body, false); + System.out.println("req msg:\n" + xmlSupport.stringify(req, false)); + }); + } +} \ No newline at end of file diff --git a/src/test/resources/spring/context-beans.xml b/src/test/resources/spring/context-beans.xml new file mode 100644 index 0000000..d5b4ec7 --- /dev/null +++ b/src/test/resources/spring/context-beans.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/src/test/resources/spring/context-common.xml b/src/test/resources/spring/context-common.xml new file mode 100644 index 0000000..e27b705 --- /dev/null +++ b/src/test/resources/spring/context-common.xml @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + classpath:message/message-common + classpath:org/egovframe/rte/fdl/property/messages/properties + + + + + 60 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/test/resources/spring/context-datasource.xml b/src/test/resources/spring/context-datasource.xml new file mode 100644 index 0000000..f29e414 --- /dev/null +++ b/src/test/resources/spring/context-datasource.xml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + oracle + mariadb + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/task/javadoc.xml b/task/javadoc.xml new file mode 100644 index 0000000..0fe6402 --- /dev/null +++ b/task/javadoc.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + +