두번째 커밋
parent
e017e6696a
commit
ebf856d7ae
@ -1,234 +1,234 @@
|
|||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>cokr.xit</groupId>
|
<groupId>cokr.xit</groupId>
|
||||||
<artifactId>xit-file</artifactId>
|
<artifactId>xit-file</artifactId>
|
||||||
<version>23.04.01</version>
|
<version>23.04.01</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>xit-file</name>
|
<name>xit-file</name>
|
||||||
<url>http://maven.apache.org</url>
|
<url>http://maven.apache.org</url>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
|
||||||
<java.version>1.8</java.version>
|
<java.version>1.8</java.version>
|
||||||
<maven.compiler.source>${java.version}</maven.compiler.source>
|
<maven.compiler.source>${java.version}</maven.compiler.source>
|
||||||
<maven.compiler.target>${java.version}</maven.compiler.target>
|
<maven.compiler.target>${java.version}</maven.compiler.target>
|
||||||
|
|
||||||
<spring.maven.artifact.version>5.3.20</spring.maven.artifact.version>
|
<spring.maven.artifact.version>5.3.20</spring.maven.artifact.version>
|
||||||
<org.egovframe.rte.version>4.1.0</org.egovframe.rte.version>
|
<org.egovframe.rte.version>4.1.0</org.egovframe.rte.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>mvn2s</id>
|
<id>mvn2s</id>
|
||||||
<url>https://repo1.maven.org/maven2/</url>
|
<url>https://repo1.maven.org/maven2/</url>
|
||||||
<releases>
|
<releases>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
</releases>
|
</releases>
|
||||||
<snapshots>
|
<snapshots>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
</snapshots>
|
</snapshots>
|
||||||
</repository>
|
</repository>
|
||||||
<repository>
|
<repository>
|
||||||
<id>egovframe</id>
|
<id>egovframe</id>
|
||||||
<url>http://maven.egovframe.kr:8080/maven/</url>
|
<url>http://maven.egovframe.kr:8080/maven/</url>
|
||||||
<releases>
|
<releases>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
</releases>
|
</releases>
|
||||||
<snapshots>
|
<snapshots>
|
||||||
<enabled>false</enabled>
|
<enabled>false</enabled>
|
||||||
</snapshots>
|
</snapshots>
|
||||||
</repository>
|
</repository>
|
||||||
<repository>
|
<repository>
|
||||||
<id>egovframe2</id>
|
<id>egovframe2</id>
|
||||||
<url>https://www.egovframe.go.kr/maven/</url>
|
<url>https://www.egovframe.go.kr/maven/</url>
|
||||||
<releases>
|
<releases>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
</releases>
|
</releases>
|
||||||
<snapshots>
|
<snapshots>
|
||||||
<enabled>false</enabled>
|
<enabled>false</enabled>
|
||||||
</snapshots>
|
</snapshots>
|
||||||
</repository>
|
</repository>
|
||||||
<!--
|
<!--
|
||||||
<repository>
|
<repository>
|
||||||
<id>maven-releases</id>
|
<id>maven-releases</id>
|
||||||
<url>http://xit.xit-nexus.com:8081/repository/maven-releases/</url>
|
<url>http://xit.xit-nexus.com:8081/repository/maven-releases/</url>
|
||||||
<snapshots>
|
<snapshots>
|
||||||
<enabled>false</enabled>
|
<enabled>false</enabled>
|
||||||
</snapshots>
|
</snapshots>
|
||||||
<releases>
|
<releases>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
</releases>
|
</releases>
|
||||||
</repository>
|
</repository>
|
||||||
<repository>
|
<repository>
|
||||||
<id>maven-snapshots</id>
|
<id>maven-snapshots</id>
|
||||||
<url>http://xit.xit-nexus.com:8081/repository/maven-snapshots/</url>
|
<url>http://xit.xit-nexus.com:8081/repository/maven-snapshots/</url>
|
||||||
<snapshots>
|
<snapshots>
|
||||||
<enabled>true</enabled>
|
<enabled>true</enabled>
|
||||||
</snapshots>
|
</snapshots>
|
||||||
<releases>
|
<releases>
|
||||||
<enabled>false</enabled>
|
<enabled>false</enabled>
|
||||||
</releases>
|
</releases>
|
||||||
</repository>
|
</repository>
|
||||||
-->
|
-->
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>cokr.xit</groupId>
|
<groupId>cokr.xit</groupId>
|
||||||
<artifactId>xit-foundation</artifactId>
|
<artifactId>xit-foundation</artifactId>
|
||||||
<version>23.04.01</version>
|
<version>23.04.01</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mariadb.jdbc</groupId>
|
<groupId>org.mariadb.jdbc</groupId>
|
||||||
<artifactId>mariadb-java-client</artifactId>
|
<artifactId>mariadb-java-client</artifactId>
|
||||||
<version>2.7.2</version>
|
<version>2.7.2</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<defaultGoal>install</defaultGoal>
|
<defaultGoal>install</defaultGoal>
|
||||||
<directory>${basedir}/target</directory>
|
<directory>${basedir}/target</directory>
|
||||||
<finalName>${project.artifactId}-${project.version}</finalName>
|
<finalName>${project.artifactId}-${project.version}</finalName>
|
||||||
|
|
||||||
<resources>
|
<resources>
|
||||||
<resource><directory>${basedir}/src/main/resources</directory></resource>
|
<resource><directory>${basedir}/src/main/resources</directory></resource>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
||||||
<testResources>
|
<testResources>
|
||||||
<testResource><directory>${basedir}/src/test/resources</directory></testResource>
|
<testResource><directory>${basedir}/src/test/resources</directory></testResource>
|
||||||
<testResource><directory>${basedir}/src/main/resources</directory></testResource>
|
<testResource><directory>${basedir}/src/main/resources</directory></testResource>
|
||||||
</testResources>
|
</testResources>
|
||||||
|
|
||||||
<pluginManagement>
|
<pluginManagement>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.tomcat.maven</groupId>
|
<groupId>org.apache.tomcat.maven</groupId>
|
||||||
<artifactId>tomcat7-maven-plugin</artifactId>
|
<artifactId>tomcat7-maven-plugin</artifactId>
|
||||||
<version>2.2</version>
|
<version>2.2</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<port>80</port>
|
<port>80</port>
|
||||||
<path>/</path>
|
<path>/</path>
|
||||||
<systemProperties>
|
<systemProperties>
|
||||||
<JAVA_OPTS>-Xms256m -Xmx768m -XX:MaxPermSize=256m</JAVA_OPTS>
|
<JAVA_OPTS>-Xms256m -Xmx768m -XX:MaxPermSize=256m</JAVA_OPTS>
|
||||||
</systemProperties>
|
</systemProperties>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
<configuration>
|
<configuration>
|
||||||
<source>1.8</source>
|
<source>1.8</source>
|
||||||
<target>1.8</target>
|
<target>1.8</target>
|
||||||
<encoding>UTF-8</encoding>
|
<encoding>UTF-8</encoding>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
<artifactId>hibernate3-maven-plugin</artifactId>
|
<artifactId>hibernate3-maven-plugin</artifactId>
|
||||||
<version>2.1</version>
|
<version>2.1</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<components>
|
<components>
|
||||||
<component>
|
<component>
|
||||||
<name>hbm2ddl</name>
|
<name>hbm2ddl</name>
|
||||||
<implementation>annotationconfiguration</implementation>
|
<implementation>annotationconfiguration</implementation>
|
||||||
</component>
|
</component>
|
||||||
</components>
|
</components>
|
||||||
</configuration>
|
</configuration>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hsqldb</groupId>
|
<groupId>org.hsqldb</groupId>
|
||||||
<artifactId>hsqldb</artifactId>
|
<artifactId>hsqldb</artifactId>
|
||||||
<version>2.3.2</version>
|
<version>2.3.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</plugin>
|
</plugin>
|
||||||
<!-- EMMA -->
|
<!-- EMMA -->
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
<artifactId>emma-maven-plugin</artifactId>
|
<artifactId>emma-maven-plugin</artifactId>
|
||||||
<version>1.0-alpha-3</version>
|
<version>1.0-alpha-3</version>
|
||||||
</plugin>
|
</plugin>
|
||||||
<!-- PMD manven plugin -->
|
<!-- PMD manven plugin -->
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-pmd-plugin</artifactId>
|
<artifactId>maven-pmd-plugin</artifactId>
|
||||||
<version>3.1</version>
|
<version>3.1</version>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
</pluginManagement>
|
</pluginManagement>
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-jar-plugin</artifactId>
|
<artifactId>maven-jar-plugin</artifactId>
|
||||||
<version>3.3.0</version>
|
<version>3.3.0</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<includes>
|
<includes>
|
||||||
<include>**/*.class</include>
|
<include>**/*.class</include>
|
||||||
</includes>
|
</includes>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<!-- EMMA -->
|
<!-- EMMA -->
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-surefire-plugin</artifactId>
|
<artifactId>maven-surefire-plugin</artifactId>
|
||||||
<version>3.0.0</version>
|
<version>3.0.0</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<skipTests>true</skipTests>
|
<skipTests>true</skipTests>
|
||||||
<reportFormat>xml</reportFormat>
|
<reportFormat>xml</reportFormat>
|
||||||
<excludes>
|
<excludes>
|
||||||
<exclude>**/Abstract*.java</exclude>
|
<exclude>**/Abstract*.java</exclude>
|
||||||
<exclude>**/*Suite.java</exclude>
|
<exclude>**/*Suite.java</exclude>
|
||||||
</excludes>
|
</excludes>
|
||||||
<includes>
|
<includes>
|
||||||
<include>**/*Test.java</include>
|
<include>**/*Test.java</include>
|
||||||
</includes>
|
</includes>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.codehaus.mojo</groupId>
|
<groupId>org.codehaus.mojo</groupId>
|
||||||
<artifactId>emma-maven-plugin</artifactId>
|
<artifactId>emma-maven-plugin</artifactId>
|
||||||
<inherited>true</inherited>
|
<inherited>true</inherited>
|
||||||
</plugin>
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-source-plugin</artifactId>
|
<artifactId>maven-source-plugin</artifactId>
|
||||||
<version>2.2</version>
|
<version>2.2</version>
|
||||||
<executions>
|
<executions>
|
||||||
<execution>
|
<execution>
|
||||||
<id>attach-sources</id>
|
<id>attach-sources</id>
|
||||||
<goals>
|
<goals>
|
||||||
<goal>jar</goal>
|
<goal>jar</goal>
|
||||||
</goals>
|
</goals>
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
<!-- Javadoc -->
|
<!-- Javadoc -->
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-javadoc-plugin</artifactId>
|
<artifactId>maven-javadoc-plugin</artifactId>
|
||||||
<version>2.9.1</version>
|
<version>2.9.1</version>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
|
|
||||||
<!-- Nexus deploy -->
|
<!-- Nexus deploy -->
|
||||||
<distributionManagement>
|
<distributionManagement>
|
||||||
<snapshotRepository>
|
<snapshotRepository>
|
||||||
<id>maven-snapshot</id>
|
<id>maven-snapshot</id>
|
||||||
<url>http://xit.xit-nexus.com:8081/repository/maven-snapshots/</url>
|
<url>http://xit.xit-nexus.com:8081/repository/maven-snapshots/</url>
|
||||||
</snapshotRepository>
|
</snapshotRepository>
|
||||||
|
|
||||||
<repository>
|
<repository>
|
||||||
<id>maven-release</id>
|
<id>maven-release</id>
|
||||||
<url>http://xit.xit-nexus.com:8081/repository/maven-releases/</url>
|
<url>http://xit.xit-nexus.com:8081/repository/maven-releases/</url>
|
||||||
</repository>
|
</repository>
|
||||||
</distributionManagement>
|
</distributionManagement>
|
||||||
<!-- Nexus deploy -->
|
<!-- Nexus deploy -->
|
||||||
</project>
|
</project>
|
File diff suppressed because it is too large
Load Diff
@ -1,229 +1,229 @@
|
|||||||
package cokr.xit.base.file;
|
package cokr.xit.base.file;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.FileOutputStream;
|
import java.io.FileOutputStream;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import org.apache.poi.ss.usermodel.Cell;
|
import org.apache.poi.ss.usermodel.Cell;
|
||||||
import org.apache.poi.ss.usermodel.CellStyle;
|
import org.apache.poi.ss.usermodel.CellStyle;
|
||||||
import org.apache.poi.ss.usermodel.Row;
|
import org.apache.poi.ss.usermodel.Row;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
||||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
||||||
import org.springframework.util.ResourceUtils;
|
import org.springframework.util.ResourceUtils;
|
||||||
|
|
||||||
import cokr.xit.foundation.AbstractComponent;
|
import cokr.xit.foundation.AbstractComponent;
|
||||||
import cokr.xit.foundation.data.StringMap;
|
import cokr.xit.foundation.data.StringMap;
|
||||||
|
|
||||||
/**엑셀 스프레드시트의 읽기나 쓰기를 돕는 유틸리티
|
/**엑셀 스프레드시트의 읽기나 쓰기를 돕는 유틸리티
|
||||||
* @author mjkhan
|
* @author mjkhan
|
||||||
*/
|
*/
|
||||||
public class XLS extends AbstractComponent {
|
public class XLS extends AbstractComponent {
|
||||||
/**엑셀 파일(*.xlsx)의 mime type */
|
/**엑셀 파일(*.xlsx)의 mime type */
|
||||||
public static final String MIME_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
public static final String MIME_TYPE = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
||||||
|
|
||||||
/**워크시트에 데이터셋의 각 요소(row)의 값을 쓰기 위한 Functional interface
|
/**워크시트에 데이터셋의 각 요소(row)의 값을 쓰기 위한 Functional interface
|
||||||
* @author mjkhan
|
* @author mjkhan
|
||||||
* @param <E> 데이터셋의 요소(row) 유형
|
* @param <E> 데이터셋의 요소(row) 유형
|
||||||
*/
|
*/
|
||||||
@FunctionalInterface
|
@FunctionalInterface
|
||||||
public static interface Writer<E> {
|
public static interface Writer<E> {
|
||||||
/**워크시트에 데이터셋의 각 요소(row)의 값을 쓴다.
|
/**워크시트에 데이터셋의 각 요소(row)의 값을 쓴다.
|
||||||
* @param sheet 워크시트
|
* @param sheet 워크시트
|
||||||
* @param element 데이터셋의 각 요소(row)
|
* @param element 데이터셋의 각 요소(row)
|
||||||
* @param index 데이터셋의 요소의 인덱스. 0부터 시작
|
* @param index 데이터셋의 요소의 인덱스. 0부터 시작
|
||||||
*/
|
*/
|
||||||
void write(XSSFSheet sheet, E element, int index);
|
void write(XSSFSheet sheet, E element, int index);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**셀의 값을 읽어 반환한다.
|
/**셀의 값을 읽어 반환한다.
|
||||||
* @param cell 셀
|
* @param cell 셀
|
||||||
* @return 셀의 값
|
* @return 셀의 값
|
||||||
*/
|
*/
|
||||||
public static Object getValue(Cell cell) {
|
public static Object getValue(Cell cell) {
|
||||||
switch (cell.getCellType()) {
|
switch (cell.getCellType()) {
|
||||||
case STRING: return cell.getStringCellValue();
|
case STRING: return cell.getStringCellValue();
|
||||||
case NUMERIC: return cell.getNumericCellValue();
|
case NUMERIC: return cell.getNumericCellValue();
|
||||||
case BOOLEAN: return cell.getBooleanCellValue();
|
case BOOLEAN: return cell.getBooleanCellValue();
|
||||||
case BLANK: return "";
|
case BLANK: return "";
|
||||||
default: return null;
|
default: return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**값을 셀에 설정한다.
|
/**값을 셀에 설정한다.
|
||||||
* @param cell Cell
|
* @param cell Cell
|
||||||
* @param value 값
|
* @param value 값
|
||||||
*/
|
*/
|
||||||
public static void setValue(Cell cell, Object value) {
|
public static void setValue(Cell cell, Object value) {
|
||||||
if (isEmpty(value)) {
|
if (isEmpty(value)) {
|
||||||
cell.setCellValue("");
|
cell.setCellValue("");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (value instanceof String) {
|
if (value instanceof String) {
|
||||||
cell.setCellValue((String)value);
|
cell.setCellValue((String)value);
|
||||||
} else if (value instanceof Number) {
|
} else if (value instanceof Number) {
|
||||||
Number number = (Number)value;
|
Number number = (Number)value;
|
||||||
cell.setCellValue(number.doubleValue());
|
cell.setCellValue(number.doubleValue());
|
||||||
} else if (value instanceof Date) {
|
} else if (value instanceof Date) {
|
||||||
cell.setCellValue((Date)value);
|
cell.setCellValue((Date)value);
|
||||||
} else if (value instanceof Boolean) {
|
} else if (value instanceof Boolean) {
|
||||||
Boolean b = (Boolean)value;
|
Boolean b = (Boolean)value;
|
||||||
cell.setCellValue(b.booleanValue());
|
cell.setCellValue(b.booleanValue());
|
||||||
} else
|
} else
|
||||||
throw new IllegalArgumentException(value.getClass().getName() + ": " + value);
|
throw new IllegalArgumentException(value.getClass().getName() + ": " + value);
|
||||||
}
|
}
|
||||||
|
|
||||||
private StringMap<CellStyle> styles;
|
private StringMap<CellStyle> styles;
|
||||||
|
|
||||||
public void setValue(String key, Cell cell, Object value) {
|
public void setValue(String key, Cell cell, Object value) {
|
||||||
setValue(cell, value);
|
setValue(cell, value);
|
||||||
|
|
||||||
if (styles == null)
|
if (styles == null)
|
||||||
styles = new StringMap<>();
|
styles = new StringMap<>();
|
||||||
|
|
||||||
CellStyle style = styles.get(key);
|
CellStyle style = styles.get(key);
|
||||||
if (style == null)
|
if (style == null)
|
||||||
styles.put(key, style = cell.getCellStyle());
|
styles.put(key, style = cell.getCellStyle());
|
||||||
|
|
||||||
cell.setCellStyle(style);
|
cell.setCellStyle(style);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**셀의 값을 읽어 String으로 반환한다.
|
/**셀의 값을 읽어 String으로 반환한다.
|
||||||
* @param cell 셀
|
* @param cell 셀
|
||||||
* @return 셀의 문자열값
|
* @return 셀의 문자열값
|
||||||
*/
|
*/
|
||||||
public static String getString(Cell cell) {
|
public static String getString(Cell cell) {
|
||||||
Object value = getValue(cell);
|
Object value = getValue(cell);
|
||||||
return isEmpty(value) ? ""
|
return isEmpty(value) ? ""
|
||||||
: value instanceof String ? (String)value
|
: value instanceof String ? (String)value
|
||||||
: value.toString();
|
: value.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**셀의 값을 읽어 Number로 반환한다.
|
/**셀의 값을 읽어 Number로 반환한다.
|
||||||
* @param cell 셀
|
* @param cell 셀
|
||||||
* @return
|
* @return
|
||||||
* <ul><li>셀의 숫자값</li>
|
* <ul><li>셀의 숫자값</li>
|
||||||
* <li>값이 비어있으면 0</li>
|
* <li>값이 비어있으면 0</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
*/
|
*/
|
||||||
public static Number getNumber(Cell cell) {
|
public static Number getNumber(Cell cell) {
|
||||||
Object value = getValue(cell);
|
Object value = getValue(cell);
|
||||||
return isEmpty(value) ? 0
|
return isEmpty(value) ? 0
|
||||||
: value instanceof Number ? (Number)value
|
: value instanceof Number ? (Number)value
|
||||||
: value instanceof String ? Double.parseDouble((String)value)
|
: value instanceof String ? Double.parseDouble((String)value)
|
||||||
: 0;
|
: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**셀의 값을 읽어 Boolean으로 반환한다.
|
/**셀의 값을 읽어 Boolean으로 반환한다.
|
||||||
* @param cell 셀
|
* @param cell 셀
|
||||||
* @return
|
* @return
|
||||||
* <ul><li>셀의 Boolean값</li>
|
* <ul><li>셀의 Boolean값</li>
|
||||||
* <li>값이 비어있으면 false</li>
|
* <li>값이 비어있으면 false</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
*/
|
*/
|
||||||
public static Boolean getBoolean(Cell cell) {
|
public static Boolean getBoolean(Cell cell) {
|
||||||
Object value = getValue(cell);
|
Object value = getValue(cell);
|
||||||
return isEmpty(value) ? false
|
return isEmpty(value) ? false
|
||||||
: value instanceof Boolean ? (Boolean)value
|
: value instanceof Boolean ? (Boolean)value
|
||||||
: Boolean.valueOf(value.toString());
|
: Boolean.valueOf(value.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
private XSSFWorkbook workbook;
|
private XSSFWorkbook workbook;
|
||||||
|
|
||||||
/**FileInputStream에서 엑셀 스프레드시트를 읽어들인다.
|
/**FileInputStream에서 엑셀 스프레드시트를 읽어들인다.
|
||||||
* @param input FileInputStream
|
* @param input FileInputStream
|
||||||
* @return XLS
|
* @return XLS
|
||||||
*/
|
*/
|
||||||
public XLS load(FileInputStream input) {
|
public XLS load(FileInputStream input) {
|
||||||
try {
|
try {
|
||||||
workbook = new XSSFWorkbook(input);
|
workbook = new XSSFWorkbook(input);
|
||||||
return this;
|
return this;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw applicationException(e);
|
throw applicationException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**지정한 경로의 파일에서 엑셀 스프레드시트를 읽어들인다.
|
/**지정한 경로의 파일에서 엑셀 스프레드시트를 읽어들인다.
|
||||||
* @param path 파일 경로. classpath:..., 또는 file:...
|
* @param path 파일 경로. classpath:..., 또는 file:...
|
||||||
* @return XLS
|
* @return XLS
|
||||||
*/
|
*/
|
||||||
public XLS load(String path) {
|
public XLS load(String path) {
|
||||||
try (FileInputStream input = new FileInputStream(ResourceUtils.getFile(path))) {
|
try (FileInputStream input = new FileInputStream(ResourceUtils.getFile(path))) {
|
||||||
return load(input);
|
return load(input);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw applicationException(e);
|
throw applicationException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**엑셀 스프레드시트의 워크북을 반환한다.
|
/**엑셀 스프레드시트의 워크북을 반환한다.
|
||||||
* @return 엑셀 스프레드시트의 워크북
|
* @return 엑셀 스프레드시트의 워크북
|
||||||
*/
|
*/
|
||||||
public XSSFWorkbook getWorkbook() {
|
public XSSFWorkbook getWorkbook() {
|
||||||
return ifEmpty(workbook, () -> workbook = new XSSFWorkbook());
|
return ifEmpty(workbook, () -> workbook = new XSSFWorkbook());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**엑셀 스프레드시트에서 지정하는 인덱스의 워크시트를 반환한다.
|
/**엑셀 스프레드시트에서 지정하는 인덱스의 워크시트를 반환한다.
|
||||||
* @param index 워크시트 인덱스. 0부터 시작
|
* @param index 워크시트 인덱스. 0부터 시작
|
||||||
* @return 엑셀 스프레드시트 워크시트
|
* @return 엑셀 스프레드시트 워크시트
|
||||||
*/
|
*/
|
||||||
public XSSFSheet getWorksheet(int index) {
|
public XSSFSheet getWorksheet(int index) {
|
||||||
int count = getWorkbook().getNumberOfSheets();
|
int count = getWorkbook().getNumberOfSheets();
|
||||||
return index < count ? workbook.getSheetAt(index) : workbook.createSheet();
|
return index < count ? workbook.getSheetAt(index) : workbook.createSheet();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**지정하는 인덱스의 워크시트를 읽는다.
|
/**지정하는 인덱스의 워크시트를 읽는다.
|
||||||
* @param sheetIndex 워크시트 인덱스. 0부터 시작
|
* @param sheetIndex 워크시트 인덱스. 0부터 시작
|
||||||
* @param reader 워크시트의 각 row의 셀값을 읽어 작업을 수행하는 Function
|
* @param reader 워크시트의 각 row의 셀값을 읽어 작업을 수행하는 Function
|
||||||
* @return XLS
|
* @return XLS
|
||||||
*/
|
*/
|
||||||
public XLS read(int sheetIndex, Consumer<Row> reader) {
|
public XLS read(int sheetIndex, Consumer<Row> reader) {
|
||||||
if (reader == null) return this;
|
if (reader == null) return this;
|
||||||
|
|
||||||
XSSFSheet worksheet = getWorksheet(sheetIndex);
|
XSSFSheet worksheet = getWorksheet(sheetIndex);
|
||||||
for (Row row: worksheet) {
|
for (Row row: worksheet) {
|
||||||
reader.accept(row);
|
reader.accept(row);
|
||||||
}
|
}
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**지정하는 인덱스의 워크시트에 dataset의 각 row의 값들을 쓴다.
|
/**지정하는 인덱스의 워크시트에 dataset의 각 row의 값들을 쓴다.
|
||||||
* @param sheetIndex 워크시트 인덱스. 0부터 시작
|
* @param sheetIndex 워크시트 인덱스. 0부터 시작
|
||||||
* @param dataset 데이터셋
|
* @param dataset 데이터셋
|
||||||
* @param writer dataset의 각 row의 값들을 워크시트에 쓰는 Function
|
* @param writer dataset의 각 row의 값들을 워크시트에 쓰는 Function
|
||||||
* @return XLS
|
* @return XLS
|
||||||
*/
|
*/
|
||||||
public <E, T extends Iterable<E>> XLS write(int sheetIndex, T dataset, Writer<E> writer) {
|
public <E, T extends Iterable<E>> XLS write(int sheetIndex, T dataset, Writer<E> writer) {
|
||||||
XSSFSheet worksheet = getWorksheet(sheetIndex);
|
XSSFSheet worksheet = getWorksheet(sheetIndex);
|
||||||
if (!isEmpty(dataset)) {
|
if (!isEmpty(dataset)) {
|
||||||
int index = -1;
|
int index = -1;
|
||||||
for (E e: dataset) {
|
for (E e: dataset) {
|
||||||
++index;
|
++index;
|
||||||
writer.write(worksheet, e, index);
|
writer.write(worksheet, e, index);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (styles != null) {
|
if (styles != null) {
|
||||||
styles.clear();
|
styles.clear();
|
||||||
styles = null;
|
styles = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**지정하는 경로로 엑셀 스프레드시트를 저장하고 해당 파일을 반환한다.
|
/**지정하는 경로로 엑셀 스프레드시트를 저장하고 해당 파일을 반환한다.
|
||||||
* @param path 저장할 파일 경로
|
* @param path 저장할 파일 경로
|
||||||
* @return 스프레드시트 파일
|
* @return 스프레드시트 파일
|
||||||
*/
|
*/
|
||||||
public File write(String path) {
|
public File write(String path) {
|
||||||
if (workbook == null)
|
if (workbook == null)
|
||||||
throw new NullPointerException("No workbook to write");
|
throw new NullPointerException("No workbook to write");
|
||||||
|
|
||||||
try (FileOutputStream out = new FileOutputStream(path);) {
|
try (FileOutputStream out = new FileOutputStream(path);) {
|
||||||
workbook.write(out);
|
workbook.write(out);
|
||||||
return new File(path);
|
return new File(path);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw applicationException(e);
|
throw applicationException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,211 +1,211 @@
|
|||||||
package cokr.xit.base.file.dao;
|
package cokr.xit.base.file.dao;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
|
import org.egovframe.rte.psl.dataaccess.mapper.Mapper;
|
||||||
|
|
||||||
import cokr.xit.base.file.FileInfo;
|
import cokr.xit.base.file.FileInfo;
|
||||||
import cokr.xit.base.file.service.FileQuery;
|
import cokr.xit.base.file.service.FileQuery;
|
||||||
import cokr.xit.foundation.component.AbstractMapper;
|
import cokr.xit.foundation.component.AbstractMapper;
|
||||||
import cokr.xit.foundation.data.DataObject;
|
import cokr.xit.foundation.data.DataObject;
|
||||||
|
|
||||||
/**파일 정보 DAO
|
/**파일 정보 DAO
|
||||||
* <ul><li>FileMapper는 파일 정보에 접근하기 위해 file-mapper.xml 파일을 사용한다.</li>
|
* <ul><li>FileMapper는 파일 정보에 접근하기 위해 file-mapper.xml 파일을 사용한다.</li>
|
||||||
* <li>이 파일에는 파일 경로에 대한 설정이 SQL문으로 설정되어 있다.</li>
|
* <li>이 파일에는 파일 경로에 대한 설정이 SQL문으로 설정되어 있다.</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
* <p><b>파일 저장 경로의 설정</b>
|
* <p><b>파일 저장 경로의 설정</b>
|
||||||
* <p>파일 저장 경로는 다음 SQL문으로 설정한다.
|
* <p>파일 저장 경로는 다음 SQL문으로 설정한다.
|
||||||
* <pre>{@code <sql id="fileDirs">
|
* <pre>{@code <sql id="fileDirs">
|
||||||
* SELECT INF_TYPE
|
* SELECT INF_TYPE
|
||||||
* , CONCAT('D://workspace/xit/base/files/', DIR, TO_CHAR(CURRENT_DATE, 'YYYY/MM/DD/')) DIR
|
* , CONCAT('D://workspace/xit/base/files/', DIR, TO_CHAR(CURRENT_DATE, 'YYYY/MM/DD/')) DIR
|
||||||
* FROM (
|
* FROM (
|
||||||
* SELECT '00' INF_TYPE, 'attachment/' DIR UNION
|
* SELECT '00' INF_TYPE, 'attachment/' DIR UNION
|
||||||
* SELECT '10' INF_TYPE, 'document/' DIR UNION
|
* SELECT '10' INF_TYPE, 'document/' DIR UNION
|
||||||
* SELECT '20' INF_TYPE, 'article/' DIR
|
* SELECT '20' INF_TYPE, 'article/' DIR
|
||||||
* ) FILE_DIRS
|
* ) FILE_DIRS
|
||||||
* </sql>}</pre>
|
* </sql>}</pre>
|
||||||
* 위 문장은
|
* 위 문장은
|
||||||
* <ul><li>애플리케이션의 파일을 저장하는 루트 디렉토리를 'D://workspace/xit/base/files/'로 지정한다.
|
* <ul><li>애플리케이션의 파일을 저장하는 루트 디렉토리를 'D://workspace/xit/base/files/'로 지정한다.
|
||||||
* <li>정보 유형 '00'과 관계있는 파일은 '루트 디렉토리/attachment/YYYY/MM/DD'
|
* <li>정보 유형 '00'과 관계있는 파일은 '루트 디렉토리/attachment/YYYY/MM/DD'
|
||||||
* <li>정보 유형 '01'과 관계있는 파일은 '루트 디렉토리/document/YYYY/MM/DD'
|
* <li>정보 유형 '01'과 관계있는 파일은 '루트 디렉토리/document/YYYY/MM/DD'
|
||||||
* <li>정보 유형 '02'과 관계있는 파일은 '루트 디렉토리/article/YYYY/MM/DD'
|
* <li>정보 유형 '02'과 관계있는 파일은 '루트 디렉토리/article/YYYY/MM/DD'
|
||||||
* </ul>
|
* </ul>
|
||||||
* <p>디렉토리에 각각 저장하도록 하고 있다.<br />
|
* <p>디렉토리에 각각 저장하도록 하고 있다.<br />
|
||||||
* 애플리케이션은 요구사항에 따라 이 문장을 수정하여 파일 저장 디렉토리를 지정한다.
|
* 애플리케이션은 요구사항에 따라 이 문장을 수정하여 파일 저장 디렉토리를 지정한다.
|
||||||
* <p><b>파일 URL의 설정</b>
|
* <p><b>파일 URL의 설정</b>
|
||||||
* <p>파일 URL은 다음 SQL문으로 추출한다.
|
* <p>파일 URL은 다음 SQL문으로 추출한다.
|
||||||
* <pre>{@code <sql id="selectFiles">
|
* <pre>{@code <sql id="selectFiles">
|
||||||
* SELECT A.*, REPLACE(FILE_PATH, 'D://workspace/xit/base', '') URL
|
* SELECT A.*, REPLACE(FILE_PATH, 'D://workspace/xit/base', '') URL
|
||||||
* FROM TBL_FILE A
|
* FROM TBL_FILE A
|
||||||
* ...
|
* ...
|
||||||
* </sql>}</pre>
|
* </sql>}</pre>
|
||||||
* 위 문장은
|
* 위 문장은
|
||||||
* <ul><li>저장된 파일 정보의 FILE_PATH 컬럼의 값에서 'D://workspace/xit/base' 부분을 제거하여 파일의 URL로 추출하도록 하고 있다.</li>
|
* <ul><li>저장된 파일 정보의 FILE_PATH 컬럼의 값에서 'D://workspace/xit/base' 부분을 제거하여 파일의 URL로 추출하도록 하고 있다.</li>
|
||||||
* <li>애플리케이션은 요구사항에 따라 이 문장을 수정하여 파일의 URL로 사용할 수 있다.</li>
|
* <li>애플리케이션은 요구사항에 따라 이 문장을 수정하여 파일의 URL로 사용할 수 있다.</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
* @author mjkhan
|
* @author mjkhan
|
||||||
*/
|
*/
|
||||||
@Mapper("fileMapper")
|
@Mapper("fileMapper")
|
||||||
public interface FileMapper extends AbstractMapper {
|
public interface FileMapper extends AbstractMapper {
|
||||||
/**주어진 관계 정보의 파일 정보 목록을 반환한다.<br />
|
/**주어진 관계 정보의 파일 정보 목록을 반환한다.<br />
|
||||||
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보 목록을 반환한다.
|
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보 목록을 반환한다.
|
||||||
* @param req 조회 조건
|
* @param req 조회 조건
|
||||||
* <pre><code> {
|
* <pre><code> {
|
||||||
* "infoType": 관계 정보 유형
|
* "infoType": 관계 정보 유형
|
||||||
* "infoKeys": 관계 정보 키
|
* "infoKeys": 관계 정보 키
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
* @return 파일 정보 목록
|
* @return 파일 정보 목록
|
||||||
*/
|
*/
|
||||||
List<DataObject> getFileList(FileQuery req);
|
List<DataObject> getFileList(FileQuery req);
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보들을 반환한다.<br />
|
/**주어진 관계 정보의 파일 정보들을 반환한다.<br />
|
||||||
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보들을 반환한다.
|
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보들을 반환한다.
|
||||||
* @param req 조회 조건
|
* @param req 조회 조건
|
||||||
* <pre><code> {
|
* <pre><code> {
|
||||||
* "infoType": 관계 정보 유형
|
* "infoType": 관계 정보 유형
|
||||||
* "infoKeys": 관계 정보 키
|
* "infoKeys": 관계 정보 키
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
* @return 파일 정보
|
* @return 파일 정보
|
||||||
*/
|
*/
|
||||||
List<FileInfo> getFilesOf(FileQuery req);
|
List<FileInfo> getFilesOf(FileQuery req);
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보들을 반환한다.
|
/**주어진 아이디의 파일 정보들을 반환한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 파일 정보
|
* @return 파일 정보
|
||||||
*/
|
*/
|
||||||
default List<FileInfo> getFiles(String... fileIDs) {
|
default List<FileInfo> getFiles(String... fileIDs) {
|
||||||
return getFilesOf(
|
return getFilesOf(
|
||||||
new FileQuery()
|
new FileQuery()
|
||||||
.setFileIDs(fileIDs)
|
.setFileIDs(fileIDs)
|
||||||
.setOrderBy("FILE_ID")
|
.setOrderBy("FILE_ID")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보를 반환한다.
|
/**주어진 아이디의 파일 정보를 반환한다.
|
||||||
* @param fileID 파일 정보 아이디
|
* @param fileID 파일 정보 아이디
|
||||||
* @return 파일 정보
|
* @return 파일 정보
|
||||||
*/
|
*/
|
||||||
default FileInfo getFile(String fileID) {
|
default FileInfo getFile(String fileID) {
|
||||||
List<FileInfo> files = getFiles(fileID);
|
List<FileInfo> files = getFiles(fileID);
|
||||||
return !files.isEmpty() ? files.get(0) : null;
|
return !files.isEmpty() ? files.get(0) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**파일 정보를 등록한다.
|
/**파일 정보를 등록한다.
|
||||||
* @param params 파라미터
|
* @param params 파라미터
|
||||||
* <pre><code> {
|
* <pre><code> {
|
||||||
* "file": 파일 정보
|
* "file": 파일 정보
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
int insertFile(Map<String, ?> params);
|
int insertFile(Map<String, ?> params);
|
||||||
|
|
||||||
/**파일 정보를 등록한다.
|
/**파일 정보를 등록한다.
|
||||||
* @param files 파일 정보
|
* @param files 파일 정보
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
default int create(List<FileInfo> files) {
|
default int create(List<FileInfo> files) {
|
||||||
if (isEmpty(files)) return 0;
|
if (isEmpty(files)) return 0;
|
||||||
|
|
||||||
DataObject params = params().set("currentUser", currentUser());
|
DataObject params = params().set("currentUser", currentUser());
|
||||||
int affected = 0;
|
int affected = 0;
|
||||||
for (FileInfo file:files)
|
for (FileInfo file:files)
|
||||||
affected += insertFile(params.set("file", file));
|
affected += insertFile(params.set("file", file));
|
||||||
|
|
||||||
return affected;
|
return affected;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 파일 정보 아이디의 순서대로 정렬 순서를 변경한다.
|
/**주어진 파일 정보 아이디의 순서대로 정렬 순서를 변경한다.
|
||||||
* @param params 파라미터
|
* @param params 파라미터
|
||||||
* <pre><code> {
|
* <pre><code> {
|
||||||
* "fileIDs": 파일 정보 아이디
|
* "fileIDs": 파일 정보 아이디
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
int reorder(Map<String, ?> params);
|
int reorder(Map<String, ?> params);
|
||||||
|
|
||||||
/**주어진 파일 정보 아이디의 순서대로 정렬 순서를 변경한다.
|
/**주어진 파일 정보 아이디의 순서대로 정렬 순서를 변경한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
default int reorder(String... fileIDs) {
|
default int reorder(String... fileIDs) {
|
||||||
if (isEmpty(fileIDs)) return 0;
|
if (isEmpty(fileIDs)) return 0;
|
||||||
|
|
||||||
return reorder(params().set("fileIDs", fileIDs));
|
return reorder(params().set("fileIDs", fileIDs));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보들의 다운로드 횟수를 증가시킨다.
|
/**주어진 아이디의 파일 정보들의 다운로드 횟수를 증가시킨다.
|
||||||
* @param params 파라미터
|
* @param params 파라미터
|
||||||
* <pre><code> {
|
* <pre><code> {
|
||||||
* "fileIDs": 파일 정보 아이디
|
* "fileIDs": 파일 정보 아이디
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
int updateDownloadCount(Map<String, ?> params);
|
int updateDownloadCount(Map<String, ?> params);
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보들의 다운로드 횟수를 증가시킨다.
|
/**주어진 아이디의 파일 정보들의 다운로드 횟수를 증가시킨다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
default int updateDownloadCount(String... fileIDs) {
|
default int updateDownloadCount(String... fileIDs) {
|
||||||
if (isEmpty(fileIDs)) return 0;
|
if (isEmpty(fileIDs)) return 0;
|
||||||
|
|
||||||
return updateDownloadCount(params().set("fileIDs", fileIDs));
|
return updateDownloadCount(params().set("fileIDs", fileIDs));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보를 제거한다.<br />
|
/**주어진 관계 정보의 파일 정보를 제거한다.<br />
|
||||||
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보를 제거한다.
|
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보를 제거한다.
|
||||||
* @param params
|
* @param params
|
||||||
* <pre><code> {
|
* <pre><code> {
|
||||||
* "infoType": 관계 정보 유형
|
* "infoType": 관계 정보 유형
|
||||||
* "infoKeys": 관계 정보 키
|
* "infoKeys": 관계 정보 키
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
int removeFiles(Map<String, ?> params);
|
int removeFiles(Map<String, ?> params);
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보를 제거한다.<br />
|
/**주어진 관계 정보의 파일 정보를 제거한다.<br />
|
||||||
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보를 제거한다.
|
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보를 제거한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKeys 관계 정보 키
|
* @param infoKeys 관계 정보 키
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
default int remove(String infoType, String... infoKeys) {
|
default int remove(String infoType, String... infoKeys) {
|
||||||
return removeFiles(
|
return removeFiles(
|
||||||
params()
|
params()
|
||||||
.set("infoType", infoType)
|
.set("infoType", infoType)
|
||||||
.set("infoKeys", ifEmpty(infoKeys, () -> null))
|
.set("infoKeys", ifEmpty(infoKeys, () -> null))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보를 제거한다.
|
/**주어진 아이디의 파일 정보를 제거한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
default int remove(String... fileIDs) {
|
default int remove(String... fileIDs) {
|
||||||
return removeFiles(
|
return removeFiles(
|
||||||
params().set("fileIDs", ifEmpty(fileIDs, () -> null))
|
params().set("fileIDs", ifEmpty(fileIDs, () -> null))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보를 삭제한다.
|
/**주어진 아이디의 파일 정보를 삭제한다.
|
||||||
* @param params 파라미터
|
* @param params 파라미터
|
||||||
* <pre><code> {
|
* <pre><code> {
|
||||||
* "fileIDs": 파일 정보 아이디
|
* "fileIDs": 파일 정보 아이디
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
int deleteFiles(Map<String, ?> params);
|
int deleteFiles(Map<String, ?> params);
|
||||||
|
|
||||||
/**주어진 파일 정보를 삭제한다.
|
/**주어진 파일 정보를 삭제한다.
|
||||||
* @param files 파일 정보
|
* @param files 파일 정보
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
default int delete(List<FileInfo> files) {
|
default int delete(List<FileInfo> files) {
|
||||||
if (isEmpty(files)) return 0;
|
if (isEmpty(files)) return 0;
|
||||||
|
|
||||||
String[] fileIDs = files.stream().map(FileInfo::getId).collect(Collectors.toList()).toArray(new String[files.size()]);
|
String[] fileIDs = files.stream().map(FileInfo::getId).collect(Collectors.toList()).toArray(new String[files.size()]);
|
||||||
return deleteFiles(params().set("fileIDs", ifEmpty(fileIDs, () -> null)));
|
return deleteFiles(params().set("fileIDs", ifEmpty(fileIDs, () -> null)));
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,3 +1,3 @@
|
|||||||
/**파일 정보 테이블 접근 객체
|
/**파일 정보 테이블 접근 객체
|
||||||
*/
|
*/
|
||||||
package cokr.xit.base.file.dao;
|
package cokr.xit.base.file.dao;
|
@ -1,17 +1,17 @@
|
|||||||
/**파일 정보 관리 모듈.
|
/**파일 정보 관리 모듈.
|
||||||
* <ul><li>애플리케이션이 관리하는 파일은 여러 경로로 유입된다.</li>
|
* <ul><li>애플리케이션이 관리하는 파일은 여러 경로로 유입된다.</li>
|
||||||
* <li>파일들은 여러 유형의 정보와 관계있다. 정보와 관계없는 파일은 없다.</li>
|
* <li>파일들은 여러 유형의 정보와 관계있다. 정보와 관계없는 파일은 없다.</li>
|
||||||
* <li>정보와 파일 사이의 관계를 명시하려면, 파일과 관계있는 정보의 유형과 해당 정보의 아이디가 있어야 한다.</li>
|
* <li>정보와 파일 사이의 관계를 명시하려면, 파일과 관계있는 정보의 유형과 해당 정보의 아이디가 있어야 한다.</li>
|
||||||
* <li>이 때 <b>관계 정보의 유형을 infoType</b>이라 하고, 애플리케이션 개발자가 정의한다.<br />
|
* <li>이 때 <b>관계 정보의 유형을 infoType</b>이라 하고, 애플리케이션 개발자가 정의한다.<br />
|
||||||
* 예) 사용자 프로필의 이미지 파일의 infoType은 "00", 단속 정보의 이미지 파일의 infoType은 "10"</li>
|
* 예) 사용자 프로필의 이미지 파일의 infoType은 "00", 단속 정보의 이미지 파일의 infoType은 "10"</li>
|
||||||
* <li><b>관계 정보의 아이디는 infoKey</b>라고 한다.<br />
|
* <li><b>관계 정보의 아이디는 infoKey</b>라고 한다.<br />
|
||||||
* 관계 정보의 아이디가 여러 개의 필드값으로 되어있으면, 이들을 대시(-)로 연결하여 infoKey로 사용한다.</li>
|
* 관계 정보의 아이디가 여러 개의 필드값으로 되어있으면, 이들을 대시(-)로 연결하여 infoKey로 사용한다.</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
* <p>애플리케이션의 <b>파일 정보는 관계 정보의 infoType, infoKey + 파일 자체의 메타 정보</b>로 이루어지며<br />
|
* <p>애플리케이션의 <b>파일 정보는 관계 정보의 infoType, infoKey + 파일 자체의 메타 정보</b>로 이루어지며<br />
|
||||||
* 데이타베이스의 <a href="{@docRoot}/doc-files/xit-base-mysql.sql" target="_blank">TBL_FILE 테이블</a>에 저장하여 관리한다.
|
* 데이타베이스의 <a href="{@docRoot}/doc-files/xit-base-mysql.sql" target="_blank">TBL_FILE 테이블</a>에 저장하여 관리한다.
|
||||||
* <p>파일 저장 디렉토리의 설정은 {@link cokr.xit.base.file.dao.FileMapper FileMapper} 문서를 참고한다.
|
* <p>파일 저장 디렉토리의 설정은 {@link cokr.xit.base.file.dao.FileMapper FileMapper} 문서를 참고한다.
|
||||||
* <ul><li>배포 모듈: xit-file-yy.mm.dd.jar</li>
|
* <ul><li>배포 모듈: xit-file-yy.mm.dd.jar</li>
|
||||||
* <li>의존 모듈: {@link cokr.xit.foundation xit-foundation-yy.mm.dd.jar}</li>
|
* <li>의존 모듈: {@link cokr.xit.foundation xit-foundation-yy.mm.dd.jar}</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
*/
|
*/
|
||||||
package cokr.xit.base.file;
|
package cokr.xit.base.file;
|
@ -1,60 +1,60 @@
|
|||||||
package cokr.xit.base.file.service;
|
package cokr.xit.base.file.service;
|
||||||
|
|
||||||
import cokr.xit.foundation.component.QueryRequest;
|
import cokr.xit.foundation.component.QueryRequest;
|
||||||
|
|
||||||
public class FileQuery extends QueryRequest {
|
public class FileQuery extends QueryRequest {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
private String infoType;
|
private String infoType;
|
||||||
private String[] infoKeys;
|
private String[] infoKeys;
|
||||||
private String[] fileIDs;
|
private String[] fileIDs;
|
||||||
|
|
||||||
/**관계정보 유형을 반환한다.
|
/**관계정보 유형을 반환한다.
|
||||||
* @return 관계정보 유형
|
* @return 관계정보 유형
|
||||||
*/
|
*/
|
||||||
public String getInfoType() {
|
public String getInfoType() {
|
||||||
return infoType;
|
return infoType;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**관계정보 유형을 설정한다.
|
/**관계정보 유형을 설정한다.
|
||||||
* @param <T> FileQuery
|
* @param <T> FileQuery
|
||||||
* @param infoType 관계정보 유형
|
* @param infoType 관계정보 유형
|
||||||
* @return FileQuery
|
* @return FileQuery
|
||||||
*/
|
*/
|
||||||
public <T extends FileQuery> T setInfoType(String infoType) {
|
public <T extends FileQuery> T setInfoType(String infoType) {
|
||||||
this.infoType = infoType;
|
this.infoType = infoType;
|
||||||
return self();
|
return self();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**관계정보 키를 반환한다.
|
/**관계정보 키를 반환한다.
|
||||||
* @return 관계정보 키
|
* @return 관계정보 키
|
||||||
*/
|
*/
|
||||||
public String[] getInfoKeys() {
|
public String[] getInfoKeys() {
|
||||||
return ifEmpty(infoKeys, () -> null);
|
return ifEmpty(infoKeys, () -> null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**관계정보 키를 설정한다.
|
/**관계정보 키를 설정한다.
|
||||||
* @param <T> FileQuery
|
* @param <T> FileQuery
|
||||||
* @param infoKeys 관계정보 키
|
* @param infoKeys 관계정보 키
|
||||||
* @return FileQuery
|
* @return FileQuery
|
||||||
*/
|
*/
|
||||||
public <T extends FileQuery> T setInfoKeys(String... infoKeys) {
|
public <T extends FileQuery> T setInfoKeys(String... infoKeys) {
|
||||||
this.infoKeys = infoKeys;
|
this.infoKeys = infoKeys;
|
||||||
return self();
|
return self();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**파일 아이디를 반환한다.
|
/**파일 아이디를 반환한다.
|
||||||
* @return 파일 아이디
|
* @return 파일 아이디
|
||||||
*/
|
*/
|
||||||
public String[] getFileIDs() {
|
public String[] getFileIDs() {
|
||||||
return ifEmpty(fileIDs, () -> null);
|
return ifEmpty(fileIDs, () -> null);
|
||||||
}
|
}
|
||||||
/**파일 아이디를 설정한다.
|
/**파일 아이디를 설정한다.
|
||||||
* @param <T> FileQuery
|
* @param <T> FileQuery
|
||||||
* @param fileIDs 파일 아이디
|
* @param fileIDs 파일 아이디
|
||||||
* @return FileQuery
|
* @return FileQuery
|
||||||
*/
|
*/
|
||||||
public <T extends FileQuery> T setFileIDs(String... fileIDs) {
|
public <T extends FileQuery> T setFileIDs(String... fileIDs) {
|
||||||
this.fileIDs = fileIDs;
|
this.fileIDs = fileIDs;
|
||||||
return self();
|
return self();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,112 +1,112 @@
|
|||||||
package cokr.xit.base.file.service;
|
package cokr.xit.base.file.service;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import cokr.xit.base.file.FileInfo;
|
import cokr.xit.base.file.FileInfo;
|
||||||
import cokr.xit.foundation.data.DataObject;
|
import cokr.xit.foundation.data.DataObject;
|
||||||
|
|
||||||
/**파일 정보 서비스를 제공한다.
|
/**파일 정보 서비스를 제공한다.
|
||||||
* <ul><li>{@link #getFileList(String, String...) 파일 정보 목록 조회}</li>
|
* <ul><li>{@link #getFileList(String, String...) 파일 정보 목록 조회}</li>
|
||||||
* <li>{@link #getFilesOf(String, String...) 파일 정보 가져오기}</li>
|
* <li>{@link #getFilesOf(String, String...) 파일 정보 가져오기}</li>
|
||||||
* <li>{@link #create(List) 파일 등록}</li>
|
* <li>{@link #create(List) 파일 등록}</li>
|
||||||
* <li>{@link #reorder(String...) 파일 순서 변경}</li>
|
* <li>{@link #reorder(String...) 파일 순서 변경}</li>
|
||||||
* <li>{@link #updateDownloadCount(String...) 다운로드 횟수 증가}</li>
|
* <li>{@link #updateDownloadCount(String...) 다운로드 횟수 증가}</li>
|
||||||
* <li>{@link #remove(String, String...) 파일 정보 제거}</li>
|
* <li>{@link #remove(String, String...) 파일 정보 제거}</li>
|
||||||
* <li>{@link #deleteOf(String, String...) 파일 정보 및 파일 삭제}</li>
|
* <li>{@link #deleteOf(String, String...) 파일 정보 및 파일 삭제}</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
* @author mjkhan
|
* @author mjkhan
|
||||||
*/
|
*/
|
||||||
public interface FileService {
|
public interface FileService {
|
||||||
/**주어진 관계 정보의 파일 정보 목록을 반환한다.<br />
|
/**주어진 관계 정보의 파일 정보 목록을 반환한다.<br />
|
||||||
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보 목록을 반환한다.
|
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보 목록을 반환한다.
|
||||||
* @param req 조회 조건
|
* @param req 조회 조건
|
||||||
* <pre><code> {
|
* <pre><code> {
|
||||||
* "infoType": 관계 정보 유형
|
* "infoType": 관계 정보 유형
|
||||||
* "infoKeys": 관계 정보 키
|
* "infoKeys": 관계 정보 키
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
* @return 파일 정보 목록
|
* @return 파일 정보 목록
|
||||||
*/
|
*/
|
||||||
List<DataObject> getFileList(FileQuery req);
|
List<DataObject> getFileList(FileQuery req);
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보들을 반환한다.<br />
|
/**주어진 관계 정보의 파일 정보들을 반환한다.<br />
|
||||||
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보들을 반환한다.
|
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보들을 반환한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKeys 관계 정보 키
|
* @param infoKeys 관계 정보 키
|
||||||
* @return 파일 정보
|
* @return 파일 정보
|
||||||
*/
|
*/
|
||||||
List<FileInfo> getFilesOf(String infoType, String... infoKeys);
|
List<FileInfo> getFilesOf(String infoType, String... infoKeys);
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보를 반환한다.
|
/**주어진 관계 정보의 파일 정보를 반환한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKey 관계 정보 키
|
* @param infoKey 관계 정보 키
|
||||||
* @return 파일 정보
|
* @return 파일 정보
|
||||||
*/
|
*/
|
||||||
FileInfo getFileOf(String infoType, String infoKey);
|
FileInfo getFileOf(String infoType, String infoKey);
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보들을 반환한다.
|
/**주어진 아이디의 파일 정보들을 반환한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 파일 정보
|
* @return 파일 정보
|
||||||
*/
|
*/
|
||||||
List<FileInfo> getFiles(String... fileIDs);
|
List<FileInfo> getFiles(String... fileIDs);
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보를 반환한다.
|
/**주어진 아이디의 파일 정보를 반환한다.
|
||||||
* @param fileID 파일 정보 아이디
|
* @param fileID 파일 정보 아이디
|
||||||
* @return 파일 정보
|
* @return 파일 정보
|
||||||
*/
|
*/
|
||||||
FileInfo getFile(String fileID);
|
FileInfo getFile(String fileID);
|
||||||
|
|
||||||
/**파일 정보를 등록한다.
|
/**파일 정보를 등록한다.
|
||||||
* @param files 파일 정보
|
* @param files 파일 정보
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
int create(List<FileInfo> files);
|
int create(List<FileInfo> files);
|
||||||
|
|
||||||
/**파일 정보를 등록한다.
|
/**파일 정보를 등록한다.
|
||||||
* @param files 파일 정보
|
* @param files 파일 정보
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
default int create(FileInfo... files) {
|
default int create(FileInfo... files) {
|
||||||
return create(Arrays.asList(files));
|
return create(Arrays.asList(files));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 파일 정보 아이디의 순서대로 정렬 순서를 변경한다.
|
/**주어진 파일 정보 아이디의 순서대로 정렬 순서를 변경한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
public int reorder(String... fileIDs);
|
public int reorder(String... fileIDs);
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보들의 다운로드 횟수를 증가시킨다.
|
/**주어진 아이디의 파일 정보들의 다운로드 횟수를 증가시킨다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
int updateDownloadCount(String... fileIDs);
|
int updateDownloadCount(String... fileIDs);
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보를 제거한다.<br />
|
/**주어진 관계 정보의 파일 정보를 제거한다.<br />
|
||||||
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보를 제거한다.
|
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보를 제거한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKeys 관계 정보 키
|
* @param infoKeys 관계 정보 키
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
int remove(String infoType, String... infoKeys);
|
int remove(String infoType, String... infoKeys);
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보를 제거한다.
|
/**주어진 아이디의 파일 정보를 제거한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
int remove(String... fileIDs);
|
int remove(String... fileIDs);
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보와 파일을 삭제하다.<br />
|
/**주어진 관계 정보의 파일 정보와 파일을 삭제하다.<br />
|
||||||
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보와 파일을 삭제한다.
|
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보와 파일을 삭제한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKeys 관계 정보 키
|
* @param infoKeys 관계 정보 키
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
int deleteOf(String infoType, String... infoKeys);
|
int deleteOf(String infoType, String... infoKeys);
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보와 파일을 삭제한다.
|
/**주어진 아이디의 파일 정보와 파일을 삭제한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
int delete(String... fileIDs);
|
int delete(String... fileIDs);
|
||||||
}
|
}
|
@ -1,220 +1,220 @@
|
|||||||
package cokr.xit.base.file.service.bean;
|
package cokr.xit.base.file.service.bean;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import cokr.xit.base.file.FileInfo;
|
import cokr.xit.base.file.FileInfo;
|
||||||
import cokr.xit.base.file.dao.FileMapper;
|
import cokr.xit.base.file.dao.FileMapper;
|
||||||
import cokr.xit.base.file.service.FileQuery;
|
import cokr.xit.base.file.service.FileQuery;
|
||||||
import cokr.xit.foundation.AbstractComponent;
|
import cokr.xit.foundation.AbstractComponent;
|
||||||
import cokr.xit.foundation.data.DataObject;
|
import cokr.xit.foundation.data.DataObject;
|
||||||
|
|
||||||
/**파일 정보 Bean
|
/**파일 정보 Bean
|
||||||
* <p><b>파일 저장 경로의 설정</b>
|
* <p><b>파일 저장 경로의 설정</b>
|
||||||
* <p>파일 저장 경로는 다음 SQL문으로 설정한다.
|
* <p>파일 저장 경로는 다음 SQL문으로 설정한다.
|
||||||
* <pre>{@code <sql id="fileDirs">
|
* <pre>{@code <sql id="fileDirs">
|
||||||
* SELECT INF_TYPE
|
* SELECT INF_TYPE
|
||||||
* , CONCAT('D://workspace/xit/base/files/', DIR, TO_CHAR(CURRENT_DATE, 'YYYY/MM/DD/')) DIR
|
* , CONCAT('D://workspace/xit/base/files/', DIR, TO_CHAR(CURRENT_DATE, 'YYYY/MM/DD/')) DIR
|
||||||
* FROM (
|
* FROM (
|
||||||
* SELECT '00' INF_TYPE, 'attachment/' DIR UNION
|
* SELECT '00' INF_TYPE, 'attachment/' DIR UNION
|
||||||
* SELECT '10' INF_TYPE, 'document/' DIR UNION
|
* SELECT '10' INF_TYPE, 'document/' DIR UNION
|
||||||
* SELECT '20' INF_TYPE, 'article/' DIR
|
* SELECT '20' INF_TYPE, 'article/' DIR
|
||||||
* ) FILE_DIRS
|
* ) FILE_DIRS
|
||||||
* </sql>}</pre>
|
* </sql>}</pre>
|
||||||
* 위 문장은
|
* 위 문장은
|
||||||
* <ul><li>애플리케이션의 파일을 저장하는 루트 디렉토리를 'D://workspace/xit/base/files/'로 지정한다.
|
* <ul><li>애플리케이션의 파일을 저장하는 루트 디렉토리를 'D://workspace/xit/base/files/'로 지정한다.
|
||||||
* <li>정보 유형 '00'과 관계있는 파일은 '루트 디렉토리/attachment/YYYY/MM/DD'
|
* <li>정보 유형 '00'과 관계있는 파일은 '루트 디렉토리/attachment/YYYY/MM/DD'
|
||||||
* <li>정보 유형 '01'과 관계있는 파일은 '루트 디렉토리/document/YYYY/MM/DD'
|
* <li>정보 유형 '01'과 관계있는 파일은 '루트 디렉토리/document/YYYY/MM/DD'
|
||||||
* <li>정보 유형 '02'과 관계있는 파일은 '루트 디렉토리/article/YYYY/MM/DD'
|
* <li>정보 유형 '02'과 관계있는 파일은 '루트 디렉토리/article/YYYY/MM/DD'
|
||||||
* </ul>
|
* </ul>
|
||||||
* <p>디렉토리에 각각 저장하도록 하고 있다.<br />
|
* <p>디렉토리에 각각 저장하도록 하고 있다.<br />
|
||||||
* 애플리케이션은 요구사항에 따라 이 문장을 수정하여 파일 저장 디렉토리를 지정한다.
|
* 애플리케이션은 요구사항에 따라 이 문장을 수정하여 파일 저장 디렉토리를 지정한다.
|
||||||
* <p><b>파일 URL의 설정</b>
|
* <p><b>파일 URL의 설정</b>
|
||||||
* <p>파일 URL은 다음 SQL문으로 추출한다.
|
* <p>파일 URL은 다음 SQL문으로 추출한다.
|
||||||
* <pre>{@code <sql id="selectFiles">
|
* <pre>{@code <sql id="selectFiles">
|
||||||
* SELECT A.*, REPLACE(FILE_PATH, 'D://workspace/xit/base', '') URL
|
* SELECT A.*, REPLACE(FILE_PATH, 'D://workspace/xit/base', '') URL
|
||||||
* FROM TBL_FILE A
|
* FROM TBL_FILE A
|
||||||
* ...
|
* ...
|
||||||
* </sql>}</pre>
|
* </sql>}</pre>
|
||||||
* 위 문장은
|
* 위 문장은
|
||||||
* <ul><li>저장된 파일 정보의 FILE_PATH 컬럼의 값에서 'D://workspace/xit/base' 부분을 제거하여 파일의 URL로 추출하도록 하고 있다.</li>
|
* <ul><li>저장된 파일 정보의 FILE_PATH 컬럼의 값에서 'D://workspace/xit/base' 부분을 제거하여 파일의 URL로 추출하도록 하고 있다.</li>
|
||||||
* <li>애플리케이션은 요구사항에 따라 이 문장을 수정하여 파일의 URL로 사용할 수 있다.</li>
|
* <li>애플리케이션은 요구사항에 따라 이 문장을 수정하여 파일의 URL로 사용할 수 있다.</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
* @author mjkhan
|
* @author mjkhan
|
||||||
*/
|
*/
|
||||||
@Component("fileBean")
|
@Component("fileBean")
|
||||||
public class FileBean extends AbstractComponent {
|
public class FileBean extends AbstractComponent {
|
||||||
@Resource(name = "fileMapper")
|
@Resource(name = "fileMapper")
|
||||||
private FileMapper fileMapper;
|
private FileMapper fileMapper;
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보 목록을 반환한다.<br />
|
/**주어진 관계 정보의 파일 정보 목록을 반환한다.<br />
|
||||||
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보 목록을 반환한다.
|
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보 목록을 반환한다.
|
||||||
* @param req 조회 조건
|
* @param req 조회 조건
|
||||||
* <pre><code> {
|
* <pre><code> {
|
||||||
* "infoType": 관계 정보 유형
|
* "infoType": 관계 정보 유형
|
||||||
* "infoKeys": 관계 정보 키
|
* "infoKeys": 관계 정보 키
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
* @return 파일 정보 목록
|
* @return 파일 정보 목록
|
||||||
*/
|
*/
|
||||||
public List<DataObject> getFileList(FileQuery req) {
|
public List<DataObject> getFileList(FileQuery req) {
|
||||||
return fileMapper.getFileList(req.setOrderBy("INF_TYPE, INF_KEY, SRT_ORD"));
|
return fileMapper.getFileList(req.setOrderBy("INF_TYPE, INF_KEY, SRT_ORD"));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보들을 반환한다.<br />
|
/**주어진 관계 정보의 파일 정보들을 반환한다.<br />
|
||||||
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보들을 반환한다.
|
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보들을 반환한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKeys 관계 정보 키
|
* @param infoKeys 관계 정보 키
|
||||||
* @return 파일 정보
|
* @return 파일 정보
|
||||||
*/
|
*/
|
||||||
public List<FileInfo> getFilesOf(String infoType, String... infoKeys) {
|
public List<FileInfo> getFilesOf(String infoType, String... infoKeys) {
|
||||||
return fileMapper.getFilesOf(
|
return fileMapper.getFilesOf(
|
||||||
new FileQuery()
|
new FileQuery()
|
||||||
.setInfoType(infoType)
|
.setInfoType(infoType)
|
||||||
.setInfoKeys(infoKeys)
|
.setInfoKeys(infoKeys)
|
||||||
.setOrderBy("INF_TYPE, INF_KEY, SRT_ORD")
|
.setOrderBy("INF_TYPE, INF_KEY, SRT_ORD")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보를 반환한다.
|
/**주어진 관계 정보의 파일 정보를 반환한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKey 관계 정보 키
|
* @param infoKey 관계 정보 키
|
||||||
* @return 파일 정보
|
* @return 파일 정보
|
||||||
*/
|
*/
|
||||||
public FileInfo getFileOf(String infoType, String infoKey) {
|
public FileInfo getFileOf(String infoType, String infoKey) {
|
||||||
List<FileInfo> list = getFilesOf(infoType, infoKey);
|
List<FileInfo> list = getFilesOf(infoType, infoKey);
|
||||||
return !list.isEmpty() ? list.get(0) : null;
|
return !list.isEmpty() ? list.get(0) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보들을 반환한다.
|
/**주어진 아이디의 파일 정보들을 반환한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 파일 정보
|
* @return 파일 정보
|
||||||
*/
|
*/
|
||||||
public List<FileInfo> getFiles(String... fileIDs) {
|
public List<FileInfo> getFiles(String... fileIDs) {
|
||||||
return fileMapper.getFiles(fileIDs);
|
return fileMapper.getFiles(fileIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보를 반환한다.
|
/**주어진 아이디의 파일 정보를 반환한다.
|
||||||
* @param fileID 파일 정보 아이디
|
* @param fileID 파일 정보 아이디
|
||||||
* @return 파일 정보
|
* @return 파일 정보
|
||||||
*/
|
*/
|
||||||
public FileInfo getFile(String fileID) {
|
public FileInfo getFile(String fileID) {
|
||||||
return fileMapper.getFile(fileID);
|
return fileMapper.getFile(fileID);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**파일 정보를 등록한다.
|
/**파일 정보를 등록한다.
|
||||||
* @param files 파일 정보
|
* @param files 파일 정보
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
public int create(List<FileInfo> files) {
|
public int create(List<FileInfo> files) {
|
||||||
int affected = fileMapper.create(files);
|
int affected = fileMapper.create(files);
|
||||||
write(files);
|
write(files);
|
||||||
return affected;
|
return affected;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**파일 정보로 파일을 생성한다.
|
/**파일 정보로 파일을 생성한다.
|
||||||
* @param files 파일 정보
|
* @param files 파일 정보
|
||||||
*/
|
*/
|
||||||
public void write(List<FileInfo> files) {
|
public void write(List<FileInfo> files) {
|
||||||
try {
|
try {
|
||||||
mkdirs(files);
|
mkdirs(files);
|
||||||
files.forEach(FileInfo::write);
|
files.forEach(FileInfo::write);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
delete(files);
|
delete(files);
|
||||||
throw applicationException(e);
|
throw applicationException(e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**파일 정보의 디렉토리를 생성한다.
|
/**파일 정보의 디렉토리를 생성한다.
|
||||||
* @param files 파일 정보
|
* @param files 파일 정보
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
protected void mkdirs(List<FileInfo> files) throws Exception {
|
protected void mkdirs(List<FileInfo> files) throws Exception {
|
||||||
Set<String> dirs = files.stream()
|
Set<String> dirs = files.stream()
|
||||||
.map(file -> FileInfo.dir(file.getPath()))
|
.map(file -> FileInfo.dir(file.getPath()))
|
||||||
.collect(Collectors.toSet());
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
for (String path: dirs) {
|
for (String path: dirs) {
|
||||||
File dir = new File(path);
|
File dir = new File(path);
|
||||||
if (!dir.exists())
|
if (!dir.exists())
|
||||||
dir.mkdirs();
|
dir.mkdirs();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 파일 정보 아이디의 순서대로 정렬 순서를 변경한다.
|
/**주어진 파일 정보 아이디의 순서대로 정렬 순서를 변경한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
public int reorder(String... fileIDs) {
|
public int reorder(String... fileIDs) {
|
||||||
return fileMapper.reorder(fileIDs);
|
return fileMapper.reorder(fileIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보들의 다운로드 횟수를 증가시킨다.
|
/**주어진 아이디의 파일 정보들의 다운로드 횟수를 증가시킨다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
public int updateDownloadCount(String... fileIDs) {
|
public int updateDownloadCount(String... fileIDs) {
|
||||||
return fileMapper.updateDownloadCount(fileIDs);
|
return fileMapper.updateDownloadCount(fileIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보를 제거한다.<br />
|
/**주어진 관계 정보의 파일 정보를 제거한다.<br />
|
||||||
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보를 제거한다.
|
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보를 제거한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKeys 관계 정보 키
|
* @param infoKeys 관계 정보 키
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
public int remove(String infoType, String... infoKeys) {
|
public int remove(String infoType, String... infoKeys) {
|
||||||
return fileMapper.remove(infoType, infoKeys);
|
return fileMapper.remove(infoType, infoKeys);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보를 제거한다.
|
/**주어진 아이디의 파일 정보를 제거한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
public int remove(String... fileIDs) {
|
public int remove(String... fileIDs) {
|
||||||
return fileMapper.remove(fileIDs);
|
return fileMapper.remove(fileIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보와 파일을 삭제하다.<br />
|
/**주어진 관계 정보의 파일 정보와 파일을 삭제하다.<br />
|
||||||
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보와 파일을 삭제한다.
|
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보와 파일을 삭제한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKeys 관계 정보 키
|
* @param infoKeys 관계 정보 키
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
public int deleteOf(String infoType, String... infoKeys) {
|
public int deleteOf(String infoType, String... infoKeys) {
|
||||||
List<FileInfo> files = getFilesOf(infoType, infoKeys);
|
List<FileInfo> files = getFilesOf(infoType, infoKeys);
|
||||||
if (delete(files) < 1) return 0;
|
if (delete(files) < 1) return 0;
|
||||||
|
|
||||||
return fileMapper.delete(files);
|
return fileMapper.delete(files);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보와 파일을 삭제한다.
|
/**주어진 아이디의 파일 정보와 파일을 삭제한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return 저장된 정보수
|
* @return 저장된 정보수
|
||||||
*/
|
*/
|
||||||
public int deleteByIDs(String... fileIDs) {
|
public int deleteByIDs(String... fileIDs) {
|
||||||
List<FileInfo> files = getFiles(fileIDs);
|
List<FileInfo> files = getFiles(fileIDs);
|
||||||
if (delete(files) < 1) return 0;
|
if (delete(files) < 1) return 0;
|
||||||
|
|
||||||
return fileMapper.delete(files);
|
return fileMapper.delete(files);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**파일 정보의 파일들을 삭제한다.
|
/**파일 정보의 파일들을 삭제한다.
|
||||||
* @param files 파일 정보
|
* @param files 파일 정보
|
||||||
* @return 삭제된 파일 수
|
* @return 삭제된 파일 수
|
||||||
*/
|
*/
|
||||||
protected int delete(List<FileInfo> files) {
|
protected int delete(List<FileInfo> files) {
|
||||||
if (isEmpty(files)) return 0;
|
if (isEmpty(files)) return 0;
|
||||||
|
|
||||||
int affected = 0;
|
int affected = 0;
|
||||||
for (FileInfo file: files)
|
for (FileInfo file: files)
|
||||||
affected += file.delete() ? 1 : 0;
|
affected += file.delete() ? 1 : 0;
|
||||||
|
|
||||||
return affected;
|
return affected;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,84 +1,84 @@
|
|||||||
package cokr.xit.base.file.service.bean;
|
package cokr.xit.base.file.service.bean;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import cokr.xit.base.file.FileInfo;
|
import cokr.xit.base.file.FileInfo;
|
||||||
import cokr.xit.base.file.service.FileQuery;
|
import cokr.xit.base.file.service.FileQuery;
|
||||||
import cokr.xit.base.file.service.FileService;
|
import cokr.xit.base.file.service.FileService;
|
||||||
import cokr.xit.foundation.component.AbstractServiceBean;
|
import cokr.xit.foundation.component.AbstractServiceBean;
|
||||||
import cokr.xit.foundation.data.DataObject;
|
import cokr.xit.foundation.data.DataObject;
|
||||||
|
|
||||||
/**파일 정보 서비스 인터페이스 구현체
|
/**파일 정보 서비스 인터페이스 구현체
|
||||||
* @author mjkhan
|
* @author mjkhan
|
||||||
*/
|
*/
|
||||||
@Service("fileService")
|
@Service("fileService")
|
||||||
public class FileServiceBean extends AbstractServiceBean implements FileService {
|
public class FileServiceBean extends AbstractServiceBean implements FileService {
|
||||||
@Resource(name="fileBean")
|
@Resource(name="fileBean")
|
||||||
private FileBean fileBean;
|
private FileBean fileBean;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<DataObject> getFileList(FileQuery req) {
|
public List<DataObject> getFileList(FileQuery req) {
|
||||||
return fileBean.getFileList(req);
|
return fileBean.getFileList(req);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<FileInfo> getFilesOf(String infoType, String... infoKeys) {
|
public List<FileInfo> getFilesOf(String infoType, String... infoKeys) {
|
||||||
return fileBean.getFilesOf(infoType, infoKeys);
|
return fileBean.getFilesOf(infoType, infoKeys);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FileInfo getFileOf(String infoType, String infoKey) {
|
public FileInfo getFileOf(String infoType, String infoKey) {
|
||||||
return fileBean.getFileOf(infoType, infoKey);
|
return fileBean.getFileOf(infoType, infoKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<FileInfo> getFiles(String... fileIDs) {
|
public List<FileInfo> getFiles(String... fileIDs) {
|
||||||
return fileBean.getFiles(fileIDs);
|
return fileBean.getFiles(fileIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FileInfo getFile(String fileID) {
|
public FileInfo getFile(String fileID) {
|
||||||
return fileBean.getFile(fileID);
|
return fileBean.getFile(fileID);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int create(List<FileInfo> files) {
|
public int create(List<FileInfo> files) {
|
||||||
if (isEmpty(files)) return 0;
|
if (isEmpty(files)) return 0;
|
||||||
|
|
||||||
return fileBean.create(files);
|
return fileBean.create(files);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int reorder(String... fileIDs) {
|
public int reorder(String... fileIDs) {
|
||||||
return fileBean.reorder(fileIDs);
|
return fileBean.reorder(fileIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int updateDownloadCount(String... fileIDs) {
|
public int updateDownloadCount(String... fileIDs) {
|
||||||
return fileBean.updateDownloadCount(fileIDs);
|
return fileBean.updateDownloadCount(fileIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int remove(String infoType, String... infoKeys) {
|
public int remove(String infoType, String... infoKeys) {
|
||||||
return fileBean.remove(infoType, infoKeys);
|
return fileBean.remove(infoType, infoKeys);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int remove(String... fileIDs) {
|
public int remove(String... fileIDs) {
|
||||||
return fileBean.remove(fileIDs);
|
return fileBean.remove(fileIDs);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int deleteOf(String infoType, String... infoKeys) {
|
public int deleteOf(String infoType, String... infoKeys) {
|
||||||
return fileBean.deleteOf(infoType, infoKeys);
|
return fileBean.deleteOf(infoType, infoKeys);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int delete(String... fileIDs) {
|
public int delete(String... fileIDs) {
|
||||||
return fileBean.deleteByIDs(fileIDs);
|
return fileBean.deleteByIDs(fileIDs);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,3 +1,3 @@
|
|||||||
/**파일 정보 서비스 구현부
|
/**파일 정보 서비스 구현부
|
||||||
*/
|
*/
|
||||||
package cokr.xit.base.file.service.bean;
|
package cokr.xit.base.file.service.bean;
|
@ -1,3 +1,3 @@
|
|||||||
/**파일 정보 서비스 인터페이스
|
/**파일 정보 서비스 인터페이스
|
||||||
*/
|
*/
|
||||||
package cokr.xit.base.file.service;
|
package cokr.xit.base.file.service;
|
@ -1,147 +1,147 @@
|
|||||||
package cokr.xit.base.file.web;
|
package cokr.xit.base.file.web;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.net.URLConnection;
|
import java.net.URLConnection;
|
||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import org.springframework.util.FileCopyUtils;
|
import org.springframework.util.FileCopyUtils;
|
||||||
import org.springframework.web.servlet.view.AbstractView;
|
import org.springframework.web.servlet.view.AbstractView;
|
||||||
|
|
||||||
import cokr.xit.base.file.FileInfo;
|
import cokr.xit.base.file.FileInfo;
|
||||||
import cokr.xit.foundation.Assert;
|
import cokr.xit.foundation.Assert;
|
||||||
|
|
||||||
/**파일의 다운로드를 처리하기 위한 {@link org.springframework.web.servlet.View}
|
/**파일의 다운로드를 처리하기 위한 {@link org.springframework.web.servlet.View}
|
||||||
* <p>DownloadView가 파일을 다운로드하기 위해서는 {@link org.springframework.web.servlet.ModelAndView}로 다음과 같은 속성의 값을 지정해야 한다.
|
* <p>DownloadView가 파일을 다운로드하기 위해서는 {@link org.springframework.web.servlet.ModelAndView}로 다음과 같은 속성의 값을 지정해야 한다.
|
||||||
* <ul><li>"file" - {@link File}, {@link InputStream}, 또는 {@link FileInfo}</li>
|
* <ul><li>"file" - {@link File}, {@link InputStream}, 또는 {@link FileInfo}</li>
|
||||||
* <li>"filename" - 다운로드될 때 사용자가 보게될 파일이름. "file"이 InputStream일 경우는 필수</li>
|
* <li>"filename" - 다운로드될 때 사용자가 보게될 파일이름. "file"이 InputStream일 경우는 필수</li>
|
||||||
* <li>"contentType" - 컨텐트 유형. 지정하지 않으면 "file" 속성의 객체를 검사하여 추측하며, 알아낼 수 없으면 'application/octet-stream'을 설정
|
* <li>"contentType" - 컨텐트 유형. 지정하지 않으면 "file" 속성의 객체를 검사하여 추측하며, 알아낼 수 없으면 'application/octet-stream'을 설정
|
||||||
* <li>"disposition" - 응답의 Content-Disposition 헤더값. 지정하지 않으면 'attachment'를 설정</li>
|
* <li>"disposition" - 응답의 Content-Disposition 헤더값. 지정하지 않으면 'attachment'를 설정</li>
|
||||||
* <li>"length" - 파일 길이. 지정하지 않으면 "file" 속성의 객체를 검사하여 설정한다. "file" 속성 객체가 InputStream일 경우는 필수</li>
|
* <li>"length" - 파일 길이. 지정하지 않으면 "file" 속성의 객체를 검사하여 설정한다. "file" 속성 객체가 InputStream일 경우는 필수</li>
|
||||||
* <li>"delete" - "file" 속성의 객체가 {@link File}일 경우 삭제 여부(true 또는 false). 지정하지 않으면 다운로드 후 삭제한다.</li>
|
* <li>"delete" - "file" 속성의 객체가 {@link File}일 경우 삭제 여부(true 또는 false). 지정하지 않으면 다운로드 후 삭제한다.</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
* @author mjkhan
|
* @author mjkhan
|
||||||
*/
|
*/
|
||||||
public class DownloadView extends AbstractView {
|
public class DownloadView extends AbstractView {
|
||||||
@Override
|
@Override
|
||||||
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest hreq, HttpServletResponse hresp) throws Exception {
|
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest hreq, HttpServletResponse hresp) throws Exception {
|
||||||
InputStream input = getInputStream(model);
|
InputStream input = getInputStream(model);
|
||||||
if (input == null) {
|
if (input == null) {
|
||||||
hresp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
hresp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||||
hresp.sendError(HttpServletResponse.SC_NOT_FOUND);
|
hresp.sendError(HttpServletResponse.SC_NOT_FOUND);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
try (InputStream stream = input) {
|
try (InputStream stream = input) {
|
||||||
String filename = getFilename(model);
|
String filename = getFilename(model);
|
||||||
if (Assert.isEmpty(filename))
|
if (Assert.isEmpty(filename))
|
||||||
throw new IllegalArgumentException("Unable to determine the filename");
|
throw new IllegalArgumentException("Unable to determine the filename");
|
||||||
|
|
||||||
String contentType = getContentType(model);
|
String contentType = getContentType(model);
|
||||||
if (Assert.isEmpty(contentType)) {
|
if (Assert.isEmpty(contentType)) {
|
||||||
contentType = Assert.ifEmpty(URLConnection.guessContentTypeFromName(filename), "application/octet-stream");
|
contentType = Assert.ifEmpty(URLConnection.guessContentTypeFromName(filename), "application/octet-stream");
|
||||||
}
|
}
|
||||||
String disposition = Assert.ifEmpty((String)model.get("disposition"), "attachment");
|
String disposition = Assert.ifEmpty((String)model.get("disposition"), "attachment");
|
||||||
Number length = getLength(model);
|
Number length = getLength(model);
|
||||||
if (length == null)
|
if (length == null)
|
||||||
throw new IllegalArgumentException("Unable to determine the length");
|
throw new IllegalArgumentException("Unable to determine the length");
|
||||||
|
|
||||||
hresp.setCharacterEncoding("UTF-8");
|
hresp.setCharacterEncoding("UTF-8");
|
||||||
hresp.setContentType(contentType);
|
hresp.setContentType(contentType);
|
||||||
hresp.setHeader("Content-Disposition", disposition + "; filename=\"" + URLEncoder.encode(filename, "UTF-8") +"\"");
|
hresp.setHeader("Content-Disposition", disposition + "; filename=\"" + URLEncoder.encode(filename, "UTF-8") +"\"");
|
||||||
hresp.setContentLengthLong(length.longValue());
|
hresp.setContentLengthLong(length.longValue());
|
||||||
|
|
||||||
FileCopyUtils.copy(stream, hresp.getOutputStream());
|
FileCopyUtils.copy(stream, hresp.getOutputStream());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw Assert.runtimeException(e);
|
throw Assert.runtimeException(e);
|
||||||
} finally {
|
} finally {
|
||||||
clear(model);
|
clear(model);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private InputStream getInputStream(Map<String, Object> model) throws Exception {
|
private InputStream getInputStream(Map<String, Object> model) throws Exception {
|
||||||
Object obj = model.get("file");
|
Object obj = model.get("file");
|
||||||
if (obj == null) return null;
|
if (obj == null) return null;
|
||||||
|
|
||||||
if (obj instanceof InputStream)
|
if (obj instanceof InputStream)
|
||||||
return (InputStream)obj;
|
return (InputStream)obj;
|
||||||
if (obj instanceof File) {
|
if (obj instanceof File) {
|
||||||
File file = (File)obj;
|
File file = (File)obj;
|
||||||
return new FileInputStream(file);
|
return new FileInputStream(file);
|
||||||
}
|
}
|
||||||
if (obj instanceof FileInfo) {
|
if (obj instanceof FileInfo) {
|
||||||
FileInfo fileInfo = (FileInfo)obj;
|
FileInfo fileInfo = (FileInfo)obj;
|
||||||
return fileInfo.getInputStream();
|
return fileInfo.getInputStream();
|
||||||
}
|
}
|
||||||
throw new IllegalArgumentException("'file' must be either a " + File.class.getName() + ", a " + InputStream.class.getName() + ", or a " + FileInfo.class.getName());
|
throw new IllegalArgumentException("'file' must be either a " + File.class.getName() + ", a " + InputStream.class.getName() + ", or a " + FileInfo.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getFilename(Map<String, Object> model) {
|
private String getFilename(Map<String, Object> model) {
|
||||||
String filename = (String)model.get("filename");
|
String filename = (String)model.get("filename");
|
||||||
if (!Assert.isEmpty(filename)) return filename;
|
if (!Assert.isEmpty(filename)) return filename;
|
||||||
|
|
||||||
Object obj = model.get("file");
|
Object obj = model.get("file");
|
||||||
if (obj instanceof File) {
|
if (obj instanceof File) {
|
||||||
File file = (File)obj;
|
File file = (File)obj;
|
||||||
return file.getName();
|
return file.getName();
|
||||||
}
|
}
|
||||||
if (obj instanceof FileInfo) {
|
if (obj instanceof FileInfo) {
|
||||||
FileInfo fileInfo = (FileInfo)obj;
|
FileInfo fileInfo = (FileInfo)obj;
|
||||||
return fileInfo.getName();
|
return fileInfo.getName();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getContentType(Map<String, Object> model) throws Exception {
|
private String getContentType(Map<String, Object> model) throws Exception {
|
||||||
String contentType = (String)model.get("contentType");
|
String contentType = (String)model.get("contentType");
|
||||||
if (!Assert.isEmpty(contentType)) return contentType;
|
if (!Assert.isEmpty(contentType)) return contentType;
|
||||||
|
|
||||||
Object obj = model.get("file");
|
Object obj = model.get("file");
|
||||||
if (obj instanceof InputStream) {
|
if (obj instanceof InputStream) {
|
||||||
InputStream input = (InputStream)obj;
|
InputStream input = (InputStream)obj;
|
||||||
return URLConnection.guessContentTypeFromStream(input);
|
return URLConnection.guessContentTypeFromStream(input);
|
||||||
}
|
}
|
||||||
if (obj instanceof File) {
|
if (obj instanceof File) {
|
||||||
File file = (File)obj;
|
File file = (File)obj;
|
||||||
return URLConnection.guessContentTypeFromName(file.getName());
|
return URLConnection.guessContentTypeFromName(file.getName());
|
||||||
}
|
}
|
||||||
if (obj instanceof FileInfo) {
|
if (obj instanceof FileInfo) {
|
||||||
FileInfo fileInfo = (FileInfo)obj;
|
FileInfo fileInfo = (FileInfo)obj;
|
||||||
return fileInfo.getMimeType();
|
return fileInfo.getMimeType();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Number getLength(Map<String, Object> model) {
|
private Number getLength(Map<String, Object> model) {
|
||||||
Number length = (Number)model.get("length");
|
Number length = (Number)model.get("length");
|
||||||
if (!Assert.isEmpty(length)) return length;
|
if (!Assert.isEmpty(length)) return length;
|
||||||
|
|
||||||
Object obj = model.get("file");
|
Object obj = model.get("file");
|
||||||
if (obj instanceof File) {
|
if (obj instanceof File) {
|
||||||
File file = (File)obj;
|
File file = (File)obj;
|
||||||
return file.length();
|
return file.length();
|
||||||
}
|
}
|
||||||
if (obj instanceof FileInfo) {
|
if (obj instanceof FileInfo) {
|
||||||
FileInfo fileInfo = (FileInfo)obj;
|
FileInfo fileInfo = (FileInfo)obj;
|
||||||
return fileInfo.getSize();
|
return fileInfo.getSize();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void clear(Map<String, Object> model) {
|
private void clear(Map<String, Object> model) {
|
||||||
Object obj = model.get("file");
|
Object obj = model.get("file");
|
||||||
if (!(obj instanceof File)) return;
|
if (!(obj instanceof File)) return;
|
||||||
|
|
||||||
Boolean delete = (Boolean)model.get("delete");
|
Boolean delete = (Boolean)model.get("delete");
|
||||||
if (Boolean.FALSE.equals(delete)) return;
|
if (Boolean.FALSE.equals(delete)) return;
|
||||||
|
|
||||||
File file = (File)obj;
|
File file = (File)obj;
|
||||||
if (file.exists())
|
if (file.exists())
|
||||||
file.delete();
|
file.delete();
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,169 +1,169 @@
|
|||||||
package cokr.xit.base.file.web;
|
package cokr.xit.base.file.web;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import org.springframework.web.servlet.ModelAndView;
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
import cokr.xit.base.file.FileInfo;
|
import cokr.xit.base.file.FileInfo;
|
||||||
import cokr.xit.base.file.service.FileQuery;
|
import cokr.xit.base.file.service.FileQuery;
|
||||||
import cokr.xit.base.file.service.FileService;
|
import cokr.xit.base.file.service.FileService;
|
||||||
import cokr.xit.foundation.web.AbstractController;
|
import cokr.xit.foundation.web.AbstractController;
|
||||||
|
|
||||||
/**파일 정보 서비스 웹 컨트롤러.<br />
|
/**파일 정보 서비스 웹 컨트롤러.<br />
|
||||||
* {웹 컨텍스트}/file/*로 접근할 수 있다.
|
* {웹 컨텍스트}/file/*로 접근할 수 있다.
|
||||||
* @author mjkhan
|
* @author mjkhan
|
||||||
*/
|
*/
|
||||||
@RequestMapping(name="파일관리", value="/file")
|
@RequestMapping(name="파일관리", value="/file")
|
||||||
public class FileController extends AbstractController {
|
public class FileController extends AbstractController {
|
||||||
@Resource(name="fileService")
|
@Resource(name="fileService")
|
||||||
private FileService fileService;
|
private FileService fileService;
|
||||||
|
|
||||||
/**파일 서비스 인터페이스를 반환한다.
|
/**파일 서비스 인터페이스를 반환한다.
|
||||||
* @return 파일 서비스 인터페이스
|
* @return 파일 서비스 인터페이스
|
||||||
*/
|
*/
|
||||||
protected FileService fileService() {
|
protected FileService fileService() {
|
||||||
return fileService;
|
return fileService;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보 목록을 반환한다.<br />
|
/**주어진 관계 정보의 파일 정보 목록을 반환한다.<br />
|
||||||
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보 목록을 반환한다.
|
* 관계 정보 키가 없으면 관계 정보 유형의 모든 파일 정보 목록을 반환한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKeys 관계 정보 키
|
* @param infoKeys 관계 정보 키
|
||||||
* @return ModelAndView
|
* @return ModelAndView
|
||||||
* <pre><code>{
|
* <pre><code>{
|
||||||
* "fileList": [...]
|
* "fileList": [...]
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
*/
|
*/
|
||||||
@RequestMapping(name="파일목록 조회", value="/list.do")
|
@RequestMapping(name="파일목록 조회", value="/list.do")
|
||||||
public ModelAndView getFileList(FileQuery req) {
|
public ModelAndView getFileList(FileQuery req) {
|
||||||
return setCollectionInfo(
|
return setCollectionInfo(
|
||||||
new ModelAndView("jsonView"),
|
new ModelAndView("jsonView"),
|
||||||
fileService.getFileList(setFetchSize(req)),
|
fileService.getFileList(setFetchSize(req)),
|
||||||
"file"
|
"file"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**업로드한 파일을 주어진 관계 정보의 파일로 등록한다.
|
/**업로드한 파일을 주어진 관계 정보의 파일로 등록한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKey 관계 정보 키
|
* @param infoKey 관계 정보 키
|
||||||
* @param uploads 업로드 파일
|
* @param uploads 업로드 파일
|
||||||
* @return ModelAndView
|
* @return ModelAndView
|
||||||
* <pre><code>{
|
* <pre><code>{
|
||||||
* "affected": 등록된 파일 수,
|
* "affected": 등록된 파일 수,
|
||||||
* "saved": true || false
|
* "saved": true || false
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
*/
|
*/
|
||||||
@PostMapping(name="파일 등록", value="/create.do")
|
@PostMapping(name="파일 등록", value="/create.do")
|
||||||
public ModelAndView create(
|
public ModelAndView create(
|
||||||
String infoType,
|
String infoType,
|
||||||
String infoKey,
|
String infoKey,
|
||||||
MultipartFile[] uploads
|
MultipartFile[] uploads
|
||||||
) {
|
) {
|
||||||
List<FileInfo> files = new FileInfoFactory().makeFileInfos(infoType, infoKey, uploads);
|
List<FileInfo> files = new FileInfoFactory().makeFileInfos(infoType, infoKey, uploads);
|
||||||
int affected = fileService.create(files);
|
int affected = fileService.create(files);
|
||||||
return new ModelAndView("jsonView")
|
return new ModelAndView("jsonView")
|
||||||
.addObject("affected", affected)
|
.addObject("affected", affected)
|
||||||
.addObject("saved", affected > 0);
|
.addObject("saved", affected > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 파일 정보의 파일을 다운로드한다.
|
/**주어진 파일 정보의 파일을 다운로드한다.
|
||||||
* @param fileID 파일 정보 아이디
|
* @param fileID 파일 정보 아이디
|
||||||
* @return downloadView
|
* @return downloadView
|
||||||
*/
|
*/
|
||||||
@RequestMapping(name="다운로드", value="/download.do")
|
@RequestMapping(name="다운로드", value="/download.do")
|
||||||
public ModelAndView download(String fileID) {
|
public ModelAndView download(String fileID) {
|
||||||
FileInfo fileInfo = fileService.getFile(fileID);
|
FileInfo fileInfo = fileService.getFile(fileID);
|
||||||
fileService.updateDownloadCount(fileID);
|
fileService.updateDownloadCount(fileID);
|
||||||
return new ModelAndView("downloadView")
|
return new ModelAndView("downloadView")
|
||||||
.addObject("file", fileInfo);
|
.addObject("file", fileInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 파일 정보 아이디의 순서대로 정렬 순서를 변경한다.
|
/**주어진 파일 정보 아이디의 순서대로 정렬 순서를 변경한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return jsonView
|
* @return jsonView
|
||||||
* <pre><code>{
|
* <pre><code>{
|
||||||
* "affected": 저장된 정보수,
|
* "affected": 저장된 정보수,
|
||||||
* "saved": true || false
|
* "saved": true || false
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
*/
|
*/
|
||||||
@PostMapping(name="순서 변경", value="/reorder.do")
|
@PostMapping(name="순서 변경", value="/reorder.do")
|
||||||
public ModelAndView reorder(String... fileIDs) {
|
public ModelAndView reorder(String... fileIDs) {
|
||||||
int affected = fileService.reorder(fileIDs);
|
int affected = fileService.reorder(fileIDs);
|
||||||
return new ModelAndView("jsonView")
|
return new ModelAndView("jsonView")
|
||||||
.addObject("affected", affected)
|
.addObject("affected", affected)
|
||||||
.addObject("saved", affected > 0);
|
.addObject("saved", affected > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보를 제거한다.
|
/**주어진 아이디의 파일 정보를 제거한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return jsonView
|
* @return jsonView
|
||||||
* <pre><code>{
|
* <pre><code>{
|
||||||
* "affected": 저장된 정보수,
|
* "affected": 저장된 정보수,
|
||||||
* "saved": true || false
|
* "saved": true || false
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
*/
|
*/
|
||||||
@PostMapping(name="파일 제거", value="/remove.do")
|
@PostMapping(name="파일 제거", value="/remove.do")
|
||||||
public ModelAndView remove(String... fileIDs) {
|
public ModelAndView remove(String... fileIDs) {
|
||||||
int affected = fileService.remove(fileIDs);
|
int affected = fileService.remove(fileIDs);
|
||||||
return new ModelAndView("jsonView")
|
return new ModelAndView("jsonView")
|
||||||
.addObject("affected", affected)
|
.addObject("affected", affected)
|
||||||
.addObject("saved", affected > 0);
|
.addObject("saved", affected > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보를 제거한다.<br />
|
/**주어진 관계 정보의 파일 정보를 제거한다.<br />
|
||||||
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보를 제거한다.
|
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보를 제거한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKeys 관계 정보 키
|
* @param infoKeys 관계 정보 키
|
||||||
* @return jsonView
|
* @return jsonView
|
||||||
* <pre><code>{
|
* <pre><code>{
|
||||||
* "affected": 저장된 정보수,
|
* "affected": 저장된 정보수,
|
||||||
* "saved": true || false
|
* "saved": true || false
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
*/
|
*/
|
||||||
@PostMapping(name="관련파일 제거", value="/removeLinked.do")
|
@PostMapping(name="관련파일 제거", value="/removeLinked.do")
|
||||||
public ModelAndView remove(String infoType, String... infoKeys) {
|
public ModelAndView remove(String infoType, String... infoKeys) {
|
||||||
int affected = fileService.remove(infoType, infoKeys);
|
int affected = fileService.remove(infoType, infoKeys);
|
||||||
return new ModelAndView("jsonView")
|
return new ModelAndView("jsonView")
|
||||||
.addObject("affected", affected)
|
.addObject("affected", affected)
|
||||||
.addObject("saved", affected > 0);
|
.addObject("saved", affected > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 아이디의 파일 정보와 파일을 삭제한다.
|
/**주어진 아이디의 파일 정보와 파일을 삭제한다.
|
||||||
* @param fileIDs 파일 정보 아이디
|
* @param fileIDs 파일 정보 아이디
|
||||||
* @return jsonView
|
* @return jsonView
|
||||||
* <pre><code>{
|
* <pre><code>{
|
||||||
* "affected": 저장된 정보수,
|
* "affected": 저장된 정보수,
|
||||||
* "saved": true || false
|
* "saved": true || false
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
*/
|
*/
|
||||||
@PostMapping(name="파일 삭제", value="/delete.do")
|
@PostMapping(name="파일 삭제", value="/delete.do")
|
||||||
public ModelAndView delete(String... fileIDs) {
|
public ModelAndView delete(String... fileIDs) {
|
||||||
int affected = fileService.delete(fileIDs);
|
int affected = fileService.delete(fileIDs);
|
||||||
return new ModelAndView("jsonView")
|
return new ModelAndView("jsonView")
|
||||||
.addObject("affected", affected)
|
.addObject("affected", affected)
|
||||||
.addObject("saved", affected > 0);
|
.addObject("saved", affected > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 관계 정보의 파일 정보와 파일을 삭제하다.<br />
|
/**주어진 관계 정보의 파일 정보와 파일을 삭제하다.<br />
|
||||||
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보와 파일을 삭제한다.
|
* 관계 정보 키를 지정하지 않으면 해당 정보 유형의 모든 파일 정보와 파일을 삭제한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKeys 관계 정보 키
|
* @param infoKeys 관계 정보 키
|
||||||
* @return jsonView
|
* @return jsonView
|
||||||
* <pre><code>{
|
* <pre><code>{
|
||||||
* "affected": 저장된 정보수,
|
* "affected": 저장된 정보수,
|
||||||
* "saved": true || false
|
* "saved": true || false
|
||||||
* }</code></pre>
|
* }</code></pre>
|
||||||
*/
|
*/
|
||||||
@PostMapping(name="관련파일 삭제", value="/deleteOf.do")
|
@PostMapping(name="관련파일 삭제", value="/deleteOf.do")
|
||||||
public ModelAndView delete(String infoType, String... infoKeys) {
|
public ModelAndView delete(String infoType, String... infoKeys) {
|
||||||
int affected = fileService.deleteOf(infoType, infoKeys);
|
int affected = fileService.deleteOf(infoType, infoKeys);
|
||||||
return new ModelAndView("jsonView")
|
return new ModelAndView("jsonView")
|
||||||
.addObject("affected", affected)
|
.addObject("affected", affected)
|
||||||
.addObject("saved", affected > 0);
|
.addObject("saved", affected > 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,67 +1,67 @@
|
|||||||
package cokr.xit.base.file.web;
|
package cokr.xit.base.file.web;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import cokr.xit.base.file.FileInfo;
|
import cokr.xit.base.file.FileInfo;
|
||||||
|
|
||||||
/**파일 정보 생성자
|
/**파일 정보 생성자
|
||||||
* @author mjkhan
|
* @author mjkhan
|
||||||
*/
|
*/
|
||||||
public class FileInfoFactory extends FileInfo.Factory {
|
public class FileInfoFactory extends FileInfo.Factory {
|
||||||
/**주어진 관계 정보 유형과 키, 그리고 업로드 파일로 FileInfo 목록을 생성한다.
|
/**주어진 관계 정보 유형과 키, 그리고 업로드 파일로 FileInfo 목록을 생성한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKey 관계 정보 키
|
* @param infoKey 관계 정보 키
|
||||||
* @param multipartFiles 업로드 파일
|
* @param multipartFiles 업로드 파일
|
||||||
* @return FileInfo 목록
|
* @return FileInfo 목록
|
||||||
*/
|
*/
|
||||||
public List<FileInfo> makeFileInfos(String infoType, String infoKey, Iterable<MultipartFile> multipartFiles) {
|
public List<FileInfo> makeFileInfos(String infoType, String infoKey, Iterable<MultipartFile> multipartFiles) {
|
||||||
if (isEmpty(multipartFiles))
|
if (isEmpty(multipartFiles))
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
|
|
||||||
ArrayList<FileInfo> result = new ArrayList<>();
|
ArrayList<FileInfo> result = new ArrayList<>();
|
||||||
for (MultipartFile file: multipartFiles)
|
for (MultipartFile file: multipartFiles)
|
||||||
try {
|
try {
|
||||||
if (file == null) continue;
|
if (file == null) continue;
|
||||||
|
|
||||||
FileInfo info = new FileInfo();
|
FileInfo info = new FileInfo();
|
||||||
String filename = FileInfo.name(file.getOriginalFilename());
|
String filename = FileInfo.name(file.getOriginalFilename());
|
||||||
info.setName(filename);
|
info.setName(filename);
|
||||||
info.setMimeType(file.getContentType());
|
info.setMimeType(file.getContentType());
|
||||||
info.setSize(file.getSize());
|
info.setSize(file.getSize());
|
||||||
info.setInputStream(file.getInputStream());
|
info.setInputStream(file.getInputStream());
|
||||||
info.setSortOrder(result.size());
|
info.setSortOrder(result.size());
|
||||||
info.setInfoType(infoType);
|
info.setInfoType(infoType);
|
||||||
info.setInfoKey(infoKey);
|
info.setInfoKey(infoKey);
|
||||||
result.add(info);
|
result.add(info);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw runtimeException(e);
|
throw runtimeException(e);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 관계 정보 유형과 키, 그리고 업로드 파일로 FileInfo 목록을 생성한다.
|
/**주어진 관계 정보 유형과 키, 그리고 업로드 파일로 FileInfo 목록을 생성한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKey 관계 정보 키
|
* @param infoKey 관계 정보 키
|
||||||
* @param multipartFiles 업로드 파일
|
* @param multipartFiles 업로드 파일
|
||||||
* @return FileInfo 목록
|
* @return FileInfo 목록
|
||||||
*/
|
*/
|
||||||
public List<FileInfo> makeFileInfos(String infoType, String infoKey, MultipartFile... multipartFiles) {
|
public List<FileInfo> makeFileInfos(String infoType, String infoKey, MultipartFile... multipartFiles) {
|
||||||
return makeFileInfos(infoType, infoKey, Arrays.asList(multipartFiles));
|
return makeFileInfos(infoType, infoKey, Arrays.asList(multipartFiles));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**주어진 관계 정보 유형과 키, 그리고 업로드 파일로 FileInfo을 생성한다.
|
/**주어진 관계 정보 유형과 키, 그리고 업로드 파일로 FileInfo을 생성한다.
|
||||||
* @param infoType 관계 정보 유형
|
* @param infoType 관계 정보 유형
|
||||||
* @param infoKey 관계 정보 키
|
* @param infoKey 관계 정보 키
|
||||||
* @param multipartFile 업로드 파일
|
* @param multipartFile 업로드 파일
|
||||||
* @return FileInfo
|
* @return FileInfo
|
||||||
*/
|
*/
|
||||||
public FileInfo make(String infoType, String infoKey, MultipartFile multipartFile) {
|
public FileInfo make(String infoType, String infoKey, MultipartFile multipartFile) {
|
||||||
List<FileInfo> files = makeFileInfos(infoType, infoKey, multipartFile);
|
List<FileInfo> files = makeFileInfos(infoType, infoKey, multipartFile);
|
||||||
return !files.isEmpty() ? files.get(0) : null;
|
return !files.isEmpty() ? files.get(0) : null;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,14 +1,14 @@
|
|||||||
package cokr.xit.base.file.web;
|
package cokr.xit.base.file.web;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import org.springframework.web.servlet.view.AbstractView;
|
import org.springframework.web.servlet.view.AbstractView;
|
||||||
|
|
||||||
public class XLSView extends AbstractView {
|
public class XLSView extends AbstractView {
|
||||||
@Override
|
@Override
|
||||||
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest hreq, HttpServletResponse hresp) throws Exception {
|
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest hreq, HttpServletResponse hresp) throws Exception {
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,3 +1,3 @@
|
|||||||
/**파일 정보 서비스 웹 컨트롤러
|
/**파일 정보 서비스 웹 컨트롤러
|
||||||
*/
|
*/
|
||||||
package cokr.xit.base.file.web;
|
package cokr.xit.base.file.web;
|
@ -1,64 +1,64 @@
|
|||||||
package cokr.xit.base.file.service;
|
package cokr.xit.base.file.service;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
import org.junit.jupiter.api.Assertions;
|
import org.junit.jupiter.api.Assertions;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import cokr.xit.base.file.FileInfo;
|
import cokr.xit.base.file.FileInfo;
|
||||||
import cokr.xit.foundation.data.DataObject;
|
import cokr.xit.foundation.data.DataObject;
|
||||||
import cokr.xit.foundation.test.TestSupport;
|
import cokr.xit.foundation.test.TestSupport;
|
||||||
|
|
||||||
public class FileServiceTest extends TestSupport {
|
public class FileServiceTest extends TestSupport {
|
||||||
@Resource(name="fileService")
|
@Resource(name="fileService")
|
||||||
private FileService service;
|
private FileService service;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void files() {
|
public void files() {
|
||||||
File[] files = {
|
File[] files = {
|
||||||
new File(".\\src\\test\\resources\\files\\a-jpg-file.jpg"),
|
new File(".\\src\\test\\resources\\files\\a-jpg-file.jpg"),
|
||||||
new File(".\\src\\test\\resources\\files\\an-excel-file.xlsx"),
|
new File(".\\src\\test\\resources\\files\\an-excel-file.xlsx"),
|
||||||
new File(".\\src\\test\\resources\\files\\a-pdf-file.pdf")
|
new File(".\\src\\test\\resources\\files\\a-pdf-file.pdf")
|
||||||
};
|
};
|
||||||
String infoType = "00";
|
String infoType = "00";
|
||||||
String infoKey = "info-key-00";
|
String infoKey = "info-key-00";
|
||||||
FileQuery req = new FileQuery().setInfoType(infoType);
|
FileQuery req = new FileQuery().setInfoType(infoType);
|
||||||
|
|
||||||
List<FileInfo> fileInfos = new FileInfo.Factory().createFileInfos(infoType, infoKey, files);
|
List<FileInfo> fileInfos = new FileInfo.Factory().createFileInfos(infoType, infoKey, files);
|
||||||
Assertions.assertTrue(service.create(fileInfos) > 0);
|
Assertions.assertTrue(service.create(fileInfos) > 0);
|
||||||
fileInfos.forEach(System.out::println);
|
fileInfos.forEach(System.out::println);
|
||||||
|
|
||||||
List<DataObject> fileList = service.getFileList(req);
|
List<DataObject> fileList = service.getFileList(req);
|
||||||
Assertions.assertFalse(fileList.isEmpty());
|
Assertions.assertFalse(fileList.isEmpty());
|
||||||
|
|
||||||
fileList = service.getFileList(req.setInfoKeys(infoKey));
|
fileList = service.getFileList(req.setInfoKeys(infoKey));
|
||||||
Assertions.assertFalse(fileList.isEmpty());
|
Assertions.assertFalse(fileList.isEmpty());
|
||||||
|
|
||||||
List<FileInfo> fileInfoList = service.getFilesOf(infoType, infoKey);
|
List<FileInfo> fileInfoList = service.getFilesOf(infoType, infoKey);
|
||||||
Assertions.assertFalse(fileInfoList.isEmpty());
|
Assertions.assertFalse(fileInfoList.isEmpty());
|
||||||
fileInfoList.forEach(fileInfo -> Assertions.assertTrue(new File(fileInfo.getPath()).exists()));
|
fileInfoList.forEach(fileInfo -> Assertions.assertTrue(new File(fileInfo.getPath()).exists()));
|
||||||
|
|
||||||
String[] fileIDs = fileInfos.stream()
|
String[] fileIDs = fileInfos.stream()
|
||||||
.map(FileInfo::getId)
|
.map(FileInfo::getId)
|
||||||
.collect(Collectors.toList())
|
.collect(Collectors.toList())
|
||||||
.toArray(new String[fileInfos.size()]);
|
.toArray(new String[fileInfos.size()]);
|
||||||
|
|
||||||
Assertions.assertTrue(service.updateDownloadCount(fileIDs) > 0);
|
Assertions.assertTrue(service.updateDownloadCount(fileIDs) > 0);
|
||||||
fileInfoList = service.getFiles(fileIDs);
|
fileInfoList = service.getFiles(fileIDs);
|
||||||
fileInfoList.forEach(info -> Assertions.assertTrue(info.getDownloadCount() > 0));
|
fileInfoList.forEach(info -> Assertions.assertTrue(info.getDownloadCount() > 0));
|
||||||
|
|
||||||
service.reorder(
|
service.reorder(
|
||||||
fileInfoList.get(2).getId(),
|
fileInfoList.get(2).getId(),
|
||||||
fileInfoList.get(1).getId(),
|
fileInfoList.get(1).getId(),
|
||||||
fileInfoList.get(0).getId()
|
fileInfoList.get(0).getId()
|
||||||
);
|
);
|
||||||
fileInfoList = service.getFiles(fileIDs);
|
fileInfoList = service.getFiles(fileIDs);
|
||||||
|
|
||||||
service.deleteOf(infoType, infoKey);
|
service.deleteOf(infoType, infoKey);
|
||||||
fileInfoList.forEach(fileInfo -> Assertions.assertFalse(new File(fileInfo.getPath()).exists()));
|
fileInfoList.forEach(fileInfo -> Assertions.assertFalse(new File(fileInfo.getPath()).exists()));
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,2 +1,2 @@
|
|||||||
# see https://projectlombok.org/features/constructor lombok.copyableAnnotations
|
# see https://projectlombok.org/features/constructor lombok.copyableAnnotations
|
||||||
lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier
|
lombok.copyableAnnotations += org.springframework.beans.factory.annotation.Qualifier
|
||||||
|
@ -1,382 +1,382 @@
|
|||||||
valueRequired={0}\uac00 \uc124\uc815\ub418\uc9c0 \uc54a\uc558\uc2b5\ub2c8\ub2e4.
|
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.
|
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.
|
sessionExpired=\uc138\uc158\uc774 \ub9cc\ub8cc\ub410\uc2b5\ub2c8\ub2e4.
|
||||||
|
|
||||||
duplicate.object=\uc774\ubbf8 \ub4f1\ub85d\ub41c {0}\uc785\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.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}
|
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.
|
info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||||
|
|
||||||
#UI Common resource#
|
#UI Common resource#
|
||||||
table.num=\ubc88\ud638
|
table.num=\ubc88\ud638
|
||||||
table.regdate=\ub4f1\ub85d\uc77c
|
table.regdate=\ub4f1\ub85d\uc77c
|
||||||
table.reger=\ub4f1\ub85d\uc790
|
table.reger=\ub4f1\ub85d\uc790
|
||||||
table.select=\uc120\ud0dd
|
table.select=\uc120\ud0dd
|
||||||
title.html=egovframe common component
|
title.html=egovframe common component
|
||||||
title.detail=\uc0c1\uc138\uc870\ud68c
|
title.detail=\uc0c1\uc138\uc870\ud68c
|
||||||
title.inquire=\uc870\ud68c
|
title.inquire=\uc870\ud68c
|
||||||
title.update=\uc218\uc815
|
title.update=\uc218\uc815
|
||||||
title.create=\ub4f1\ub85d
|
title.create=\ub4f1\ub85d
|
||||||
title.delete=\uc0ad\uc81c
|
title.delete=\uc0ad\uc81c
|
||||||
title.save=\uc800\uc7a5
|
title.save=\uc800\uc7a5
|
||||||
title.list=\ubaa9\ub85d
|
title.list=\ubaa9\ub85d
|
||||||
title.searchCondition=\uac80\uc0c9\uc870\uac74
|
title.searchCondition=\uac80\uc0c9\uc870\uac74
|
||||||
title.search=\uac80\uc0c9\uc5b4
|
title.search=\uac80\uc0c9\uc5b4
|
||||||
title.reply=\ub2f5\uae00
|
title.reply=\ub2f5\uae00
|
||||||
title.scrap=\uc2a4\ud06c\ub7a9
|
title.scrap=\uc2a4\ud06c\ub7a9
|
||||||
title.comment=\ub313\uae00
|
title.comment=\ub313\uae00
|
||||||
title.attachedFileSelect=\ud30c\uc77c\uc120\ud0dd
|
title.attachedFileSelect=\ud30c\uc77c\uc120\ud0dd
|
||||||
title.attachedFileDelete=\ud30c\uc77c\uc0ad\uc81c
|
title.attachedFileDelete=\ud30c\uc77c\uc0ad\uc81c
|
||||||
title.link=\ub9c1\ud06c
|
title.link=\ub9c1\ud06c
|
||||||
title.management=\uad00\ub9ac
|
title.management=\uad00\ub9ac
|
||||||
title.all=\uc804\uccb4
|
title.all=\uc804\uccb4
|
||||||
|
|
||||||
input.select=\uc120\ud0dd\ud558\uc138\uc694
|
input.select=\uc120\ud0dd\ud558\uc138\uc694
|
||||||
input.cSelect=\uc120\ud0dd
|
input.cSelect=\uc120\ud0dd
|
||||||
input.input=\uc785\ub825
|
input.input=\uc785\ub825
|
||||||
input.button=\ubc84\ud2bc
|
input.button=\ubc84\ud2bc
|
||||||
input.selectAll.title=\uc804\uccb4\uc120\ud0dd\uccb4\ud06c\ubc15\uc2a4
|
input.selectAll.title=\uc804\uccb4\uc120\ud0dd\uccb4\ud06c\ubc15\uc2a4
|
||||||
input.yes=\uc608
|
input.yes=\uc608
|
||||||
input.no=\uc544\ub2c8\uc624
|
input.no=\uc544\ub2c8\uc624
|
||||||
|
|
||||||
select.searchCondition=\uc870\ud68c\uc870\uac74 \uc120\ud0dd
|
select.searchCondition=\uc870\ud68c\uc870\uac74 \uc120\ud0dd
|
||||||
|
|
||||||
button.select=\uc120\ud0dd
|
button.select=\uc120\ud0dd
|
||||||
button.search=\uac80\uc0c9
|
button.search=\uac80\uc0c9
|
||||||
button.use=\uc0ac\uc6a9
|
button.use=\uc0ac\uc6a9
|
||||||
button.notUsed=\uc0ac\uc6a9\uc911\uc9c0
|
button.notUsed=\uc0ac\uc6a9\uc911\uc9c0
|
||||||
button.inquire=\uc870\ud68c
|
button.inquire=\uc870\ud68c
|
||||||
button.update=\uc218\uc815
|
button.update=\uc218\uc815
|
||||||
button.create=\ub4f1\ub85d
|
button.create=\ub4f1\ub85d
|
||||||
button.delete=\uc0ad\uc81c
|
button.delete=\uc0ad\uc81c
|
||||||
button.deleteDatabase=\uc644\uc804\uc0ad\uc81c
|
button.deleteDatabase=\uc644\uc804\uc0ad\uc81c
|
||||||
button.close=\ub2eb\uae30
|
button.close=\ub2eb\uae30
|
||||||
button.save=\uc800\uc7a5
|
button.save=\uc800\uc7a5
|
||||||
button.list=\ubaa9\ub85d
|
button.list=\ubaa9\ub85d
|
||||||
button.reset=\ucde8\uc18c
|
button.reset=\ucde8\uc18c
|
||||||
button.passwordUpdate=\uc554\ud638\ubcc0\uacbd
|
button.passwordUpdate=\uc554\ud638\ubcc0\uacbd
|
||||||
button.subscribe=\uac00\uc785\uc2e0\uccad
|
button.subscribe=\uac00\uc785\uc2e0\uccad
|
||||||
button.realname=\uc2e4\uba85\ud655\uc778
|
button.realname=\uc2e4\uba85\ud655\uc778
|
||||||
button.moveToGpin=GPIN\uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9
|
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.moveToIhidnum=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 \uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9
|
||||||
button.agree=\ub3d9\uc758
|
button.agree=\ub3d9\uc758
|
||||||
button.disagree=\ube44\ub3d9\uc758
|
button.disagree=\ube44\ub3d9\uc758
|
||||||
button.possible=\uac00\ub2a5
|
button.possible=\uac00\ub2a5
|
||||||
button.impossible=\ubd88\uac00\ub2a5
|
button.impossible=\ubd88\uac00\ub2a5
|
||||||
button.qnaregist=Q&A\ub4f1\ub85d
|
button.qnaregist=Q&A\ub4f1\ub85d
|
||||||
button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d
|
button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d
|
||||||
button.preview=\ubbf8\ub9ac\ubcf4\uae30
|
button.preview=\ubbf8\ub9ac\ubcf4\uae30
|
||||||
button.next=\ub2e4\uc74c
|
button.next=\ub2e4\uc74c
|
||||||
button.add=\ubc14\ub85c\ucd94\uac00
|
button.add=\ubc14\ub85c\ucd94\uac00
|
||||||
button.confirm=\ud655\uc778
|
button.confirm=\ud655\uc778
|
||||||
button.back = \ub4a4\ub85c
|
button.back = \ub4a4\ub85c
|
||||||
button.yes = \uc608
|
button.yes = \uc608
|
||||||
button.no = \uc544\ub2c8\uc624
|
button.no = \uc544\ub2c8\uc624
|
||||||
button.home = \ud648
|
button.home = \ud648
|
||||||
button.user = \uc0ac\uc6a9\uc790\uc9c0\uc6d0
|
button.user = \uc0ac\uc6a9\uc790\uc9c0\uc6d0
|
||||||
button.cop = \ud611\uc5c5
|
button.cop = \ud611\uc5c5
|
||||||
button.wrkstart = \ucd9c\uadfc
|
button.wrkstart = \ucd9c\uadfc
|
||||||
button.wrkend = \ud1f4\uadfc
|
button.wrkend = \ud1f4\uadfc
|
||||||
button.reply = \ub2f5\uae00
|
button.reply = \ub2f5\uae00
|
||||||
button.scrap = \uc2a4\ud06c\ub7a9
|
button.scrap = \uc2a4\ud06c\ub7a9
|
||||||
button.comment = \ub313\uae00
|
button.comment = \ub313\uae00
|
||||||
button.excel = \uc5d1\uc140
|
button.excel = \uc5d1\uc140
|
||||||
button.init=\ucd08\uae30\ud654
|
button.init=\ucd08\uae30\ud654
|
||||||
button.acknowledgment=\uc2b9\uc778
|
button.acknowledgment=\uc2b9\uc778
|
||||||
button.cancelAcknowledgment=\uc2b9\uc778\ucde8\uc18c
|
button.cancelAcknowledgment=\uc2b9\uc778\ucde8\uc18c
|
||||||
button.bulkUpload=\uc77c\uad04\ub4f1\ub85d
|
button.bulkUpload=\uc77c\uad04\ub4f1\ub85d
|
||||||
button.log = \ub85c\uadf8
|
button.log = \ub85c\uadf8
|
||||||
button.set = \uc124\uc815
|
button.set = \uc124\uc815
|
||||||
button.move = \uc774\ub3d9
|
button.move = \uc774\ub3d9
|
||||||
|
|
||||||
|
|
||||||
#UI Common Message#
|
#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.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.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.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.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.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.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.save.msg=\uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||||
common.regist.msg=\ub4f1\ub85d\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.delete.msg=\uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||||
common.update.msg=\uc218\uc815\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.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.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.acknowledgement.msg=\uc2b9\uc778\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||||
common.acknowledgementcancel.msg=\uc2b9\uc778\ucde8\uc18c\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.nocomment.msg=\ub313\uae00\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||||
common.noguest.msg=\uc791\uc131\ub41c \ubc29\uba85\ub85d\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.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.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.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.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.
|
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.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.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.
|
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.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.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 = \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.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.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.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.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.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.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.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.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.
|
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#
|
#UI User Message#
|
||||||
fail.user.passwordUpdate1=\ud604\uc7ac \ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
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.
|
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.
|
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.
|
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.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)
|
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.
|
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.
|
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.
|
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#
|
#UI Cop Message#
|
||||||
cop.extrlUser = \uc678\ubd80\uc0ac\uc6a9\uc790
|
cop.extrlUser = \uc678\ubd80\uc0ac\uc6a9\uc790
|
||||||
cop.intrlUser = \ub0b4\ubd80\uc0ac\uc6a9\uc790
|
cop.intrlUser = \ub0b4\ubd80\uc0ac\uc6a9\uc790
|
||||||
cop.private = \ube44\uacf5\uac1c
|
cop.private = \ube44\uacf5\uac1c
|
||||||
cop.public = \uacf5\uac1c
|
cop.public = \uacf5\uac1c
|
||||||
|
|
||||||
cop.adbkNm = \uc8fc\uc18c\ub85d\uba85
|
cop.adbkNm = \uc8fc\uc18c\ub85d\uba85
|
||||||
cop.othbcScope = \uacf5\uac1c\ubc94\uc704
|
cop.othbcScope = \uacf5\uac1c\ubc94\uc704
|
||||||
cop.company = \ud68c\uc0ac
|
cop.company = \ud68c\uc0ac
|
||||||
cop.part = \ubd80\uc11c
|
cop.part = \ubd80\uc11c
|
||||||
cop.man = \uac1c\uc778
|
cop.man = \uac1c\uc778
|
||||||
cop.adbkUser = \uad6c\uc131\uc6d0
|
cop.adbkUser = \uad6c\uc131\uc6d0
|
||||||
cop.bbsNm = \uac8c\uc2dc\ud310\uba85
|
cop.bbsNm = \uac8c\uc2dc\ud310\uba85
|
||||||
cop.bbsIntrcn = \uac8c\uc2dc\ud310\uc18c\uac1c
|
cop.bbsIntrcn = \uac8c\uc2dc\ud310\uc18c\uac1c
|
||||||
cop.bbsTyCode = \uac8c\uc2dc\ud310 \uc720\ud615
|
cop.bbsTyCode = \uac8c\uc2dc\ud310 \uc720\ud615
|
||||||
cop.bbsAttrbCode = \uac8c\uc2dc\ud310 \uc18d\uc131
|
cop.bbsAttrbCode = \uac8c\uc2dc\ud310 \uc18d\uc131
|
||||||
cop.replyPosblAt = \ub2f5\uc7a5\uac00\ub2a5\uc5ec\ubd80
|
cop.replyPosblAt = \ub2f5\uc7a5\uac00\ub2a5\uc5ec\ubd80
|
||||||
cop.fileAtchPosblAt = \ud30c\uc77c\ucca8\ubd80\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.posblAtchFileNumber = \ucca8\ubd80\uac00\ub2a5\ud30c\uc77c \uc22b\uc790
|
||||||
cop.tmplatId = \ud15c\ud50c\ub9bf \uc815\ubcf4
|
cop.tmplatId = \ud15c\ud50c\ub9bf \uc815\ubcf4
|
||||||
cop.guestList.subject = \ubc29\uba85\ub85d \uac8c\uc2dc\uae00\uc785\ub2c8\ub2e4.
|
cop.guestList.subject = \ubc29\uba85\ub85d \uac8c\uc2dc\uae00\uc785\ub2c8\ub2e4.
|
||||||
cop.nttSj = \uc81c\ubaa9
|
cop.nttSj = \uc81c\ubaa9
|
||||||
cop.nttCn = \uae00\ub0b4\uc6a9
|
cop.nttCn = \uae00\ub0b4\uc6a9
|
||||||
cop.ntceBgnde = \uac8c\uc2dc\uc2dc\uc791\uc77c
|
cop.ntceBgnde = \uac8c\uc2dc\uc2dc\uc791\uc77c
|
||||||
cop.ntceEndde = \uac8c\uc2dc\uc885\ub8cc\uc77c
|
cop.ntceEndde = \uac8c\uc2dc\uc885\ub8cc\uc77c
|
||||||
cop.ntcrNm = \uc791\uc131\uc790
|
cop.ntcrNm = \uc791\uc131\uc790
|
||||||
cop.password = \ud328\uc2a4\uc6cc\ub4dc
|
cop.password = \ud328\uc2a4\uc6cc\ub4dc
|
||||||
cop.atchFile = \ud30c\uc77c\ucca8\ubd80
|
cop.atchFile = \ud30c\uc77c\ucca8\ubd80
|
||||||
cop.guestList = \ubc29\uba85\ub85d
|
cop.guestList = \ubc29\uba85\ub85d
|
||||||
cop.guestListCn = \ubc29\uba85\ub85d \ub0b4\uc6a9
|
cop.guestListCn = \ubc29\uba85\ub85d \ub0b4\uc6a9
|
||||||
cop.noticeTerm = \uac8c\uc2dc\uae30\uac04
|
cop.noticeTerm = \uac8c\uc2dc\uae30\uac04
|
||||||
cop.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d
|
cop.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d
|
||||||
cop.cmmntyNm = \ucee4\ubba4\ub2c8\ud2f0\uba85
|
cop.cmmntyNm = \ucee4\ubba4\ub2c8\ud2f0\uba85
|
||||||
cop.cmmntyIntrcn = \ucee4\ubba4\ub2c8\ud2f0 \uc18c\uac1c
|
cop.cmmntyIntrcn = \ucee4\ubba4\ub2c8\ud2f0 \uc18c\uac1c
|
||||||
cop.cmmntyMngr = \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790
|
cop.cmmntyMngr = \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790
|
||||||
cop.clbOprtr = \ub3d9\ud638\ud68c \uc6b4\uc601\uc790
|
cop.clbOprtr = \ub3d9\ud638\ud68c \uc6b4\uc601\uc790
|
||||||
cop.clbIntrcn = \ub3d9\ud638\ud68c \uc18c\uac1c
|
cop.clbIntrcn = \ub3d9\ud638\ud68c \uc18c\uac1c
|
||||||
cop.clbNm = \ub3d9\ud638\ud68c \uba85
|
cop.clbNm = \ub3d9\ud638\ud68c \uba85
|
||||||
cop.tmplatNm = \ud15c\ud50c\ub9bf\uba85
|
cop.tmplatNm = \ud15c\ud50c\ub9bf\uba85
|
||||||
cop.tmplatSeCode = \ud15c\ud50c\ub9bf \uad6c\ubd84
|
cop.tmplatSeCode = \ud15c\ud50c\ub9bf \uad6c\ubd84
|
||||||
cop.tmplatCours = \ud15c\ud50c\ub9bf\uacbd\ub85c
|
cop.tmplatCours = \ud15c\ud50c\ub9bf\uacbd\ub85c
|
||||||
cop.useAt = \uc0ac\uc6a9\uc5ec\ubd80
|
cop.useAt = \uc0ac\uc6a9\uc5ec\ubd80
|
||||||
cop.ncrdNm = \uc774\ub984
|
cop.ncrdNm = \uc774\ub984
|
||||||
cop.cmpnyNm = \ud68c\uc0ac\uba85
|
cop.cmpnyNm = \ud68c\uc0ac\uba85
|
||||||
cop.deptNm = \ubd80\uc11c\uba85
|
cop.deptNm = \ubd80\uc11c\uba85
|
||||||
cop.ofcpsNm = \uc9c1\uc704
|
cop.ofcpsNm = \uc9c1\uc704
|
||||||
cop.clsfNm = \uc9c1\uae09
|
cop.clsfNm = \uc9c1\uae09
|
||||||
cop.emailAdres = \uc774\uba54\uc77c\uc8fc\uc18c
|
cop.emailAdres = \uc774\uba54\uc77c\uc8fc\uc18c
|
||||||
cop.telNo = \uc804\ud654\ubc88\ud638
|
cop.telNo = \uc804\ud654\ubc88\ud638
|
||||||
cop.mbtlNum = \ud734\ub300\ud3f0\ubc88\ud638
|
cop.mbtlNum = \ud734\ub300\ud3f0\ubc88\ud638
|
||||||
cop.adres = \uc8fc\uc18c
|
cop.adres = \uc8fc\uc18c
|
||||||
cop.extrlUserAt = \uc678\ubd80\uc0ac\uc6a9\uc790\uc5ec\ubd80
|
cop.extrlUserAt = \uc678\ubd80\uc0ac\uc6a9\uc790\uc5ec\ubd80
|
||||||
cop.publicAt = \uacf5\uac1c\uc5ec\ubd80
|
cop.publicAt = \uacf5\uac1c\uc5ec\ubd80
|
||||||
cop.remark = \ube44\uace0
|
cop.remark = \ube44\uace0
|
||||||
cop.trgetNm = \ucee4\ubba4\ub2c8\ud2f0/\ub3d9\ud638\ud68c \uc815\ubcf4
|
cop.trgetNm = \ucee4\ubba4\ub2c8\ud2f0/\ub3d9\ud638\ud68c \uc815\ubcf4
|
||||||
cop.preview = \ubbf8\ub9ac\ubcf4\uae30
|
cop.preview = \ubbf8\ub9ac\ubcf4\uae30
|
||||||
|
|
||||||
cop.withdraw.msg=\ud0c8\ud1f4\ucc98\ub9ac \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
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.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.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.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.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.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.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.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.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.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.wrterNm = \uc791\uc131\uc790
|
||||||
cop.comment.commentCn = \ub0b4\uc6a9
|
cop.comment.commentCn = \ub0b4\uc6a9
|
||||||
cop.comment.commentPassword = \ud328\uc2a4\uc6cc\ub4dc
|
cop.comment.commentPassword = \ud328\uc2a4\uc6cc\ub4dc
|
||||||
|
|
||||||
cop.satisfaction.wrterNm = \uc791\uc131\uc790
|
cop.satisfaction.wrterNm = \uc791\uc131\uc790
|
||||||
cop.satisfaction.stsfdgCn = \ub0b4\uc6a9
|
cop.satisfaction.stsfdgCn = \ub0b4\uc6a9
|
||||||
cop.satisfaction.stsfdg = \ub9cc\uc871\ub3c4
|
cop.satisfaction.stsfdg = \ub9cc\uc871\ub3c4
|
||||||
cop.satisfaction.stsfdgPassword = \ud328\uc2a4\uc6cc\ub4dc
|
cop.satisfaction.stsfdgPassword = \ud328\uc2a4\uc6cc\ub4dc
|
||||||
|
|
||||||
cop.scrap.scrapNm = \uc2a4\ud06c\ub7a9\uba85
|
cop.scrap.scrapNm = \uc2a4\ud06c\ub7a9\uba85
|
||||||
|
|
||||||
#UI USS Message#
|
#UI USS Message#
|
||||||
uss.ion.noi.ntfcSj=\uc81c\ubaa9
|
uss.ion.noi.ntfcSj=\uc81c\ubaa9
|
||||||
uss.ion.noi.ntfcCn=\ub0b4\uc6a9
|
uss.ion.noi.ntfcCn=\ub0b4\uc6a9
|
||||||
uss.ion.noi.ntfcDate=\uc54c\ub9bc\uc77c\uc790
|
uss.ion.noi.ntfcDate=\uc54c\ub9bc\uc77c\uc790
|
||||||
uss.ion.noi.ntfcTime=\uc54c\ub9bc\uc2dc\uac04
|
uss.ion.noi.ntfcTime=\uc54c\ub9bc\uc2dc\uac04
|
||||||
uss.ion.noi.ntfcHH=\uc54c\ub9bc\uc2dc\uac04
|
uss.ion.noi.ntfcHH=\uc54c\ub9bc\uc2dc\uac04
|
||||||
uss.ion.noi.ntfcMM=\uc54c\ub9bc\ubd84
|
uss.ion.noi.ntfcMM=\uc54c\ub9bc\ubd84
|
||||||
uss.ion.noi.bhNtfcIntrvl=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9
|
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.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.
|
uss.ion.noi.alertNtfcTime=\uc54c\ub9bc\uc77c\uc790 \ubc0f \uc2dc\uac04\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||||
|
|
||||||
#UI COP Message#
|
#UI COP Message#
|
||||||
cop.sms.trnsmitTelno=\ubc1c\uc2e0\uc804\ud654\ubc88\ud638
|
cop.sms.trnsmitTelno=\ubc1c\uc2e0\uc804\ud654\ubc88\ud638
|
||||||
cop.sms.trnsmitCn=\uc804\uc1a1\ub0b4\uc6a9
|
cop.sms.trnsmitCn=\uc804\uc1a1\ub0b4\uc6a9
|
||||||
cop.sms.recptnTelno=\uc218\uc2e0\uc804\ud654\ubc88\ud638
|
cop.sms.recptnTelno=\uc218\uc2e0\uc804\ud654\ubc88\ud638
|
||||||
cop.sms.send=\uc804\uc1a1
|
cop.sms.send=\uc804\uc1a1
|
||||||
cop.sms.addRecptn=\ucd94\uac00
|
cop.sms.addRecptn=\ucd94\uac00
|
||||||
cop.sms.recptnTelno.msg=\uc218\uc2e0\uc804\ud654\ubc88\ud638 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.
|
cop.sms.recptnTelno.msg=\uc218\uc2e0\uc804\ud654\ubc88\ud638 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.
|
||||||
|
|
||||||
#UI sym.log Message#
|
#UI sym.log Message#
|
||||||
sym.log.histSeCode = \uc774\ub825\uad6c\ubd84
|
sym.log.histSeCode = \uc774\ub825\uad6c\ubd84
|
||||||
sym.log.sysNm = \uc2dc\uc2a4\ud15c\uba85
|
sym.log.sysNm = \uc2dc\uc2a4\ud15c\uba85
|
||||||
sym.log.histCn = \uc774\ub825\ub0b4\uc6a9
|
sym.log.histCn = \uc774\ub825\ub0b4\uc6a9
|
||||||
sym.log.atchFile = \ucca8\ubd80\ud30c\uc77c
|
sym.log.atchFile = \ucca8\ubd80\ud30c\uc77c
|
||||||
sym.log.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d
|
sym.log.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d
|
||||||
sym.ems.receiver = \ubc1b\ub294\uc0ac\ub78c
|
sym.ems.receiver = \ubc1b\ub294\uc0ac\ub78c
|
||||||
sym.ems.title = \uc81c\ubaa9
|
sym.ems.title = \uc81c\ubaa9
|
||||||
sym.ems.content = \ubc1c\uc2e0\ub0b4\uc6a9
|
sym.ems.content = \ubc1c\uc2e0\ub0b4\uc6a9
|
||||||
|
|
||||||
#Vlidator Errors#
|
#Vlidator Errors#
|
||||||
errors.prefix=<div class="error">
|
errors.prefix=<div class="error">
|
||||||
errors.suffix=</div><br/>
|
errors.suffix=</div><br/>
|
||||||
|
|
||||||
errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4.
|
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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.
|
errors.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||||
error.security.runtime.error = error
|
error.security.runtime.error = error
|
||||||
|
|
||||||
#Xss Errors#
|
#Xss Errors#
|
||||||
errors.xss.checkerUser=\ud574\ub2f9 \uae30\ub2a5\uc5d0 \ub300\ud55c \uc0ac\uc6a9 \ubc0f \ucc98\ub9ac \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
|
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
|
#File Upload / Download
|
||||||
errors.file.extension=\uc9c0\uc6d0\ub418\ub294 \ud30c\uc77c\uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4.
|
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.
|
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.
|
success.file.transfer=\ud30c\uc77c\uc804\uc1a1\uc774 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
|
||||||
|
|
||||||
#Vlidator Errors- wordDicaryVO#
|
#Vlidator Errors- wordDicaryVO#
|
||||||
wordDicaryVO.wordNm=\uc6a9\uc5b4\uba85
|
wordDicaryVO.wordNm=\uc6a9\uc5b4\uba85
|
||||||
wordDicaryVO.engNm=\uc601\ubb38\uba85
|
wordDicaryVO.engNm=\uc601\ubb38\uba85
|
||||||
wordDicaryVO.wordDc=\uc6a9\uc5b4\uc124\uba85
|
wordDicaryVO.wordDc=\uc6a9\uc5b4\uc124\uba85
|
||||||
wordDicaryVO.synonm=\ub3d9\uc758\uc5b4
|
wordDicaryVO.synonm=\ub3d9\uc758\uc5b4
|
||||||
|
|
||||||
#Vlidator Errors- cnsltManageVO#
|
#Vlidator Errors- cnsltManageVO#
|
||||||
cnsltManageVO.cnsltSj=\uc0c1\ub2f4\uc81c\ubaa9
|
cnsltManageVO.cnsltSj=\uc0c1\ub2f4\uc81c\ubaa9
|
||||||
cnsltManageVO.cnsltCn=\uc0c1\ub2f4\ub0b4\uc6a9
|
cnsltManageVO.cnsltCn=\uc0c1\ub2f4\ub0b4\uc6a9
|
||||||
cnsltManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638
|
cnsltManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638
|
||||||
cnsltManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638
|
cnsltManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638
|
||||||
cnsltManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638
|
cnsltManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638
|
||||||
cnsltManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638
|
cnsltManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638
|
||||||
cnsltManageVO.wrterNm=\uc791\uc131\uc790\uba85
|
cnsltManageVO.wrterNm=\uc791\uc131\uc790\uba85
|
||||||
cnsltManageVO.managtCn=\ub2f5\ubcc0\ub0b4\uc6a9
|
cnsltManageVO.managtCn=\ub2f5\ubcc0\ub0b4\uc6a9
|
||||||
|
|
||||||
#Vlidator Errors- siteManageVO#
|
#Vlidator Errors- siteManageVO#
|
||||||
siteManageVO.siteNm=\uc0ac\uc774\ud2b8\uba85
|
siteManageVO.siteNm=\uc0ac\uc774\ud2b8\uba85
|
||||||
siteManageVO.siteUrl=\uc0ac\uc774\ud2b8 URL
|
siteManageVO.siteUrl=\uc0ac\uc774\ud2b8 URL
|
||||||
siteManageVO.siteDc=\uc0ac\uc774\ud2b8\uc124\uba85
|
siteManageVO.siteDc=\uc0ac\uc774\ud2b8\uc124\uba85
|
||||||
siteManageVO.siteThemaClCode=\uc0ac\uc774\ud2b8\uc8fc\uc81c\ubd84\ub958
|
siteManageVO.siteThemaClCode=\uc0ac\uc774\ud2b8\uc8fc\uc81c\ubd84\ub958
|
||||||
siteManageVO.actvtyAt=\ud65c\uc131\uc5ec\ubd80
|
siteManageVO.actvtyAt=\ud65c\uc131\uc5ec\ubd80
|
||||||
siteManageVO.useAt=\uc0ac\uc6a9\uc5ec\ubd80
|
siteManageVO.useAt=\uc0ac\uc6a9\uc5ec\ubd80
|
||||||
|
|
||||||
#Vlidator Errors- recomendSiteManageVO#
|
#Vlidator Errors- recomendSiteManageVO#
|
||||||
recomendSiteManageVO.recomendSiteNm=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uba85
|
recomendSiteManageVO.recomendSiteNm=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uba85
|
||||||
recomendSiteManageVO.recomendSiteUrl=\ucd94\ucc9c\uc0ac\uc774\ud2b8 URL
|
recomendSiteManageVO.recomendSiteUrl=\ucd94\ucc9c\uc0ac\uc774\ud2b8 URL
|
||||||
recomendSiteManageVO.recomendSiteDc=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc124\uba85
|
recomendSiteManageVO.recomendSiteDc=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc124\uba85
|
||||||
recomendSiteManageVO.recomendResnCn=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc2b9\uc778\uc0ac\uc720
|
recomendSiteManageVO.recomendResnCn=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc2b9\uc778\uc0ac\uc720
|
||||||
recomendSiteManageVO.confmDe=\uc2b9\uc778\uc77c\uc790
|
recomendSiteManageVO.confmDe=\uc2b9\uc778\uc77c\uc790
|
||||||
|
|
||||||
#Vlidator Errors- hpcmManageVO#
|
#Vlidator Errors- hpcmManageVO#
|
||||||
hpcmManageVO.hpcmSeCode=\ub3c4\uc6c0\ub9d0\uad6c\ubd84
|
hpcmManageVO.hpcmSeCode=\ub3c4\uc6c0\ub9d0\uad6c\ubd84
|
||||||
hpcmManageVO.hpcmDf=\ub3c4\uc6c0\ub9d0\uc815\uc758
|
hpcmManageVO.hpcmDf=\ub3c4\uc6c0\ub9d0\uc815\uc758
|
||||||
hpcmManageVO.hpcmDc=\ub3c4\uc6c0\ub9d0\uc124\uba85
|
hpcmManageVO.hpcmDc=\ub3c4\uc6c0\ub9d0\uc124\uba85
|
||||||
|
|
||||||
#Vlidator Errors- newsManageVO#
|
#Vlidator Errors- newsManageVO#
|
||||||
newsManageVO.newsSj=\ub274\uc2a4\uc81c\ubaa9
|
newsManageVO.newsSj=\ub274\uc2a4\uc81c\ubaa9
|
||||||
newsManageVO.newsCn=\ub274\uc2a4\ub0b4\uc6a9
|
newsManageVO.newsCn=\ub274\uc2a4\ub0b4\uc6a9
|
||||||
newsManageVO.ntceDe=\uac8c\uc2dc\uc77c\uc790
|
newsManageVO.ntceDe=\uac8c\uc2dc\uc77c\uc790
|
||||||
|
|
||||||
#Vlidator Errors- faqManageVO#
|
#Vlidator Errors- faqManageVO#
|
||||||
faqManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9
|
faqManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9
|
||||||
faqManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9
|
faqManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9
|
||||||
faqManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9
|
faqManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9
|
||||||
|
|
||||||
#Vlidator Errors- stplatManageVO#
|
#Vlidator Errors- stplatManageVO#
|
||||||
stplatManageVO.useStplatNm=\uc774\uc6a9\uc57d\uad00\uba85
|
stplatManageVO.useStplatNm=\uc774\uc6a9\uc57d\uad00\uba85
|
||||||
stplatManageVO.useStplatCn=\uc774\uc6a9\uc57d\uad00\ub0b4\uc6a9
|
stplatManageVO.useStplatCn=\uc774\uc6a9\uc57d\uad00\ub0b4\uc6a9
|
||||||
stplatManageVO.infoProvdAgreCn=\uc815\ubcf4\uc81c\uacf5\ub3d9\uc758\ub0b4\uc6a9
|
stplatManageVO.infoProvdAgreCn=\uc815\ubcf4\uc81c\uacf5\ub3d9\uc758\ub0b4\uc6a9
|
||||||
|
|
||||||
#Vlidator Errors- cpyrhtPrtcPolicyVO#
|
#Vlidator Errors- cpyrhtPrtcPolicyVO#
|
||||||
cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45\ub0b4\uc6a9
|
cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45\ub0b4\uc6a9
|
||||||
|
|
||||||
#Vlidator Errors- qnaManageVO#
|
#Vlidator Errors- qnaManageVO#
|
||||||
qnaManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9
|
qnaManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9
|
||||||
qnaManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9
|
qnaManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9
|
||||||
qnaManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638
|
qnaManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638
|
||||||
qnaManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638
|
qnaManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638
|
||||||
qnaManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638
|
qnaManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638
|
||||||
qnaManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638
|
qnaManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638
|
||||||
qnaManageVO.wrterNm=\uc791\uc131\uc790\uba85
|
qnaManageVO.wrterNm=\uc791\uc131\uc790\uba85
|
||||||
qnaManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9
|
qnaManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9
|
||||||
|
|
||||||
#Vlidator Errors- ReprtStatsVO#
|
#Vlidator Errors- ReprtStatsVO#
|
||||||
sts.reprtId = \ubcf4\uace0\uc11cID
|
sts.reprtId = \ubcf4\uace0\uc11cID
|
||||||
sts.title = \ubcf4\uace0\uc11c\uba85
|
sts.title = \ubcf4\uace0\uc11c\uba85
|
||||||
sts.category = \ubcf4\uace0\uc11c\uc720\ud615
|
sts.category = \ubcf4\uace0\uc11c\uc720\ud615
|
||||||
sts.status = \uc9c4\ud589\uc0c1\ud0dc
|
sts.status = \uc9c4\ud589\uc0c1\ud0dc
|
||||||
sts.regDate = \ub4f1\ub85d\uc77c\uc2dc
|
sts.regDate = \ub4f1\ub85d\uc77c\uc2dc
|
||||||
|
|
||||||
#Rest day messages#
|
#Rest day messages#
|
||||||
sym.cal.restDay = \ud734\uc77c\uc77c\uc790
|
sym.cal.restDay = \ud734\uc77c\uc77c\uc790
|
||||||
sym.cal.restName = \ud734\uc77c\uba85
|
sym.cal.restName = \ud734\uc77c\uba85
|
||||||
sym.cal.restDetail = \ud734\uc77c\uc124\uba85
|
sym.cal.restDetail = \ud734\uc77c\uc124\uba85
|
||||||
sym.cal.restCategory = \ud734\uc77c\uad6c\ubd84
|
sym.cal.restCategory = \ud734\uc77c\uad6c\ubd84
|
||||||
|
|
||||||
image.errorBg = \uc624\ub958\uc774\ubbf8\uc9c0
|
image.errorBg = \uc624\ub958\uc774\ubbf8\uc9c0
|
||||||
|
|
||||||
|
|
||||||
#Custom message#
|
#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.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.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.
|
custom.isNotExist.msg=\ucc98\ub9ac\uc5d0 \ud544\uc694\ud55c \uc790\ub8cc\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||||
|
@ -1,277 +1,277 @@
|
|||||||
fail.common.msg=error ocurred!
|
fail.common.msg=error ocurred!
|
||||||
fail.common.sql=sql error ocurred! error code: {0}, error msg: {1}
|
fail.common.sql=sql error ocurred! error code: {0}, error msg: {1}
|
||||||
info.nodata.msg=no data found.
|
info.nodata.msg=no data found.
|
||||||
|
|
||||||
#UI Common resource#
|
#UI Common resource#
|
||||||
table.num=num.
|
table.num=num.
|
||||||
table.regdate=reg.date
|
table.regdate=reg.date
|
||||||
table.reger=registrant
|
table.reger=registrant
|
||||||
table.select=select
|
table.select=select
|
||||||
title.html=egovframe common component
|
title.html=egovframe common component
|
||||||
title.detail=Detail Inquiry
|
title.detail=Detail Inquiry
|
||||||
title.inquire=Inquire
|
title.inquire=Inquire
|
||||||
title.update=Modify
|
title.update=Modify
|
||||||
title.create=Create
|
title.create=Create
|
||||||
title.delete=Delete
|
title.delete=Delete
|
||||||
title.save=Save
|
title.save=Save
|
||||||
title.list=List
|
title.list=List
|
||||||
title.searchCondition=search condition
|
title.searchCondition=search condition
|
||||||
title.search=keyword
|
title.search=keyword
|
||||||
title.reply=reply
|
title.reply=reply
|
||||||
title.scrap=scrap
|
title.scrap=scrap
|
||||||
title.comment=comment
|
title.comment=comment
|
||||||
title.attachedFileSelect=attached file
|
title.attachedFileSelect=attached file
|
||||||
title.attachedFileDelete=attached file delete
|
title.attachedFileDelete=attached file delete
|
||||||
title.link=link
|
title.link=link
|
||||||
title.management=Management
|
title.management=Management
|
||||||
title.all=All
|
title.all=All
|
||||||
|
|
||||||
input.select=Select
|
input.select=Select
|
||||||
input.cSelect=Select
|
input.cSelect=Select
|
||||||
input.input=input
|
input.input=input
|
||||||
input.button=button
|
input.button=button
|
||||||
input.selectAll.title=Checkbox select all
|
input.selectAll.title=Checkbox select all
|
||||||
input.yes=Yes
|
input.yes=Yes
|
||||||
input.no=No
|
input.no=No
|
||||||
|
|
||||||
select.searchCondition=select condition select
|
select.searchCondition=select condition select
|
||||||
|
|
||||||
button.select=select
|
button.select=select
|
||||||
button.search=Search
|
button.search=Search
|
||||||
button.use=use
|
button.use=use
|
||||||
button.notUsed=Not used
|
button.notUsed=Not used
|
||||||
button.inquire=inquire
|
button.inquire=inquire
|
||||||
button.update=update
|
button.update=update
|
||||||
button.create=create
|
button.create=create
|
||||||
button.delete=delete
|
button.delete=delete
|
||||||
button.deleteDatabase=Wiping
|
button.deleteDatabase=Wiping
|
||||||
button.close=close
|
button.close=close
|
||||||
button.save=save
|
button.save=save
|
||||||
button.list=list
|
button.list=list
|
||||||
button.reset=reset
|
button.reset=reset
|
||||||
button.passwordUpdate=password update
|
button.passwordUpdate=password update
|
||||||
button.subscribe=subscribe
|
button.subscribe=subscribe
|
||||||
button.realname=realname confirm
|
button.realname=realname confirm
|
||||||
button.moveToGpin=move to gpin confirm
|
button.moveToGpin=move to gpin confirm
|
||||||
button.moveToIhidnum=move to ihidnum confirm
|
button.moveToIhidnum=move to ihidnum confirm
|
||||||
button.agree=agree
|
button.agree=agree
|
||||||
button.disagree=disagree
|
button.disagree=disagree
|
||||||
button.possible=possible
|
button.possible=possible
|
||||||
button.impossible=impossible
|
button.impossible=impossible
|
||||||
button.qnaregist=Q&A create
|
button.qnaregist=Q&A create
|
||||||
button.cnsltregist=Counsel create
|
button.cnsltregist=Counsel create
|
||||||
button.preview=preview
|
button.preview=preview
|
||||||
button.next=nexut
|
button.next=nexut
|
||||||
button.add=add it now
|
button.add=add it now
|
||||||
button.confirm=confirm
|
button.confirm=confirm
|
||||||
button.back =back
|
button.back =back
|
||||||
button.yes =yes
|
button.yes =yes
|
||||||
button.no =no
|
button.no =no
|
||||||
button.home =home
|
button.home =home
|
||||||
button.user =user support
|
button.user =user support
|
||||||
button.cop =cooperation
|
button.cop =cooperation
|
||||||
button.wrkstart = work start
|
button.wrkstart = work start
|
||||||
button.wrkend = work end
|
button.wrkend = work end
|
||||||
button.reply = reply
|
button.reply = reply
|
||||||
button.scrap = scrap
|
button.scrap = scrap
|
||||||
button.comment = comment
|
button.comment = comment
|
||||||
button.excel = excel
|
button.excel = excel
|
||||||
button.init=init
|
button.init=init
|
||||||
button.acknowledgment=acknowledgment
|
button.acknowledgment=acknowledgment
|
||||||
button.cancelAcknowledgment=cancel acknowledgment
|
button.cancelAcknowledgment=cancel acknowledgment
|
||||||
button.bulkUpload=bulk upload
|
button.bulkUpload=bulk upload
|
||||||
button.log = log
|
button.log = log
|
||||||
button.set = set
|
button.set = set
|
||||||
button.move = move
|
button.move = move
|
||||||
|
|
||||||
|
|
||||||
#UI Common Message#
|
#UI Common Message#
|
||||||
common.noScriptTitle.msg=I can't use all functions in browser JavaScript is not supported.
|
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.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.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.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.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.summary.inqire={0} Full inquiry details about the details of the output.
|
||||||
|
|
||||||
common.save.msg=confirm save?
|
common.save.msg=confirm save?
|
||||||
common.regist.msg=confirm regist?
|
common.regist.msg=confirm regist?
|
||||||
common.delete.msg=confirm delete?
|
common.delete.msg=confirm delete?
|
||||||
common.update.msg=confirm update?
|
common.update.msg=confirm update?
|
||||||
common.nodata.msg=There is no data. please choose another seach keyword
|
common.nodata.msg=There is no data. please choose another seach keyword
|
||||||
common.required.msg=is required field
|
common.required.msg=is required field
|
||||||
common.acknowledgement.msg=confirm acknowledgement?
|
common.acknowledgement.msg=confirm acknowledgement?
|
||||||
common.acknowledgementcancel.msg=confirm acknowledgement cancel?
|
common.acknowledgementcancel.msg=confirm acknowledgement cancel?
|
||||||
common.nocomment.msg=There is no comment.
|
common.nocomment.msg=There is no comment.
|
||||||
common.noguest.msg=There is no guest notice.
|
common.noguest.msg=There is no guest notice.
|
||||||
|
|
||||||
success.request.msg=you're request successfully done
|
success.request.msg=you're request successfully done
|
||||||
success.common.select=successfully selected
|
success.common.select=successfully selected
|
||||||
success.common.insert=successfully inserted
|
success.common.insert=successfully inserted
|
||||||
success.common.update=successfully updated
|
success.common.update=successfully updated
|
||||||
success.common.delete=successfully deleted
|
success.common.delete=successfully deleted
|
||||||
|
|
||||||
common.imposbl.fileupload = cannot upload files
|
common.imposbl.fileupload = cannot upload files
|
||||||
common.isConfmDe.msg=Please check the approval date box
|
common.isConfmDe.msg=Please check the approval date box
|
||||||
common.isExist.msg = already exist
|
common.isExist.msg = already exist
|
||||||
|
|
||||||
fail.common.insert = fail to insert.
|
fail.common.insert = fail to insert.
|
||||||
fail.common.update = fail to update
|
fail.common.update = fail to update
|
||||||
fail.common.delete = fail to delete
|
fail.common.delete = fail to delete
|
||||||
fail.common.delete.upperMenuExist = fail to delete[upperMenuId foreign key error]
|
fail.common.delete.upperMenuExist = fail to delete[upperMenuId foreign key error]
|
||||||
fail.common.select = fail to select
|
fail.common.select = fail to select
|
||||||
fail.common.login = login information is not correct
|
fail.common.login = login information is not correct
|
||||||
fail.common.loginIncorrect = login in more than {0} account will be locked!
|
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.login.password = password information is not correct(password digit should be 8 to 20)
|
||||||
fail.common.idsearch = can not find id
|
fail.common.idsearch = can not find id
|
||||||
fail.common.pwsearch = can not find password
|
fail.common.pwsearch = can not find password
|
||||||
fail.request.msg = Failed to handle the request
|
fail.request.msg = Failed to handle the request
|
||||||
fail.common.login.ip = Login is refused because it is not a registered IP.
|
fail.common.login.ip = Login is refused because it is not a registered IP.
|
||||||
|
|
||||||
|
|
||||||
#UI User Message#
|
#UI User Message#
|
||||||
fail.user.passwordUpdate1=current password is not correct
|
fail.user.passwordUpdate1=current password is not correct
|
||||||
fail.user.passwordUpdate2=password confirm is not correct
|
fail.user.passwordUpdate2=password confirm is not correct
|
||||||
info.user.rlnmCnfirm=realname confirm ready
|
info.user.rlnmCnfirm=realname confirm ready
|
||||||
success.user.rlnmCnfirm=it is realname
|
success.user.rlnmCnfirm=it is realname
|
||||||
fail.user.rlnmCnfirm=it is not realname
|
fail.user.rlnmCnfirm=it is not realname
|
||||||
fail.user.connectFail=connection fail
|
fail.user.connectFail=connection fail
|
||||||
|
|
||||||
#UI Cop Message#
|
#UI Cop Message#
|
||||||
cop.extrlUser = External User
|
cop.extrlUser = External User
|
||||||
cop.intrlUser = Internal User
|
cop.intrlUser = Internal User
|
||||||
cop.private = private
|
cop.private = private
|
||||||
cop.public = public
|
cop.public = public
|
||||||
|
|
||||||
cop.bbsNm = BBS Name
|
cop.bbsNm = BBS Name
|
||||||
cop.bbsIntrcn = BBS Introduction
|
cop.bbsIntrcn = BBS Introduction
|
||||||
cop.bbsTyCode = BBS Type
|
cop.bbsTyCode = BBS Type
|
||||||
cop.bbsAttrbCode = BBS Attribute
|
cop.bbsAttrbCode = BBS Attribute
|
||||||
cop.replyPosblAt = Reply Possible Alternative
|
cop.replyPosblAt = Reply Possible Alternative
|
||||||
cop.fileAtchPosblAt = File Attach Possible Alternative
|
cop.fileAtchPosblAt = File Attach Possible Alternative
|
||||||
cop.posblAtchFileNumber = Possible Attach File Number
|
cop.posblAtchFileNumber = Possible Attach File Number
|
||||||
cop.tmplatId = Template Information
|
cop.tmplatId = Template Information
|
||||||
cop.guestList.subject = This article registered by Guest List
|
cop.guestList.subject = This article registered by Guest List
|
||||||
cop.nttSj = Notice Subject
|
cop.nttSj = Notice Subject
|
||||||
cop.nttCn = Notice Contents
|
cop.nttCn = Notice Contents
|
||||||
cop.ntceBgnde = Notice Start Date
|
cop.ntceBgnde = Notice Start Date
|
||||||
cop.ntceEndde = Notice End Date
|
cop.ntceEndde = Notice End Date
|
||||||
cop.ntcrNm = Noticer Name
|
cop.ntcrNm = Noticer Name
|
||||||
cop.password = PassWord
|
cop.password = PassWord
|
||||||
cop.atchFile = Attach Files
|
cop.atchFile = Attach Files
|
||||||
cop.guestList = Guest List
|
cop.guestList = Guest List
|
||||||
cop.guestListCn = Guest List Contents
|
cop.guestListCn = Guest List Contents
|
||||||
cop.noticeTerm = Notice term
|
cop.noticeTerm = Notice term
|
||||||
cop.atchFileList = Attached File List
|
cop.atchFileList = Attached File List
|
||||||
cop.cmmntyNm = Community Name
|
cop.cmmntyNm = Community Name
|
||||||
cop.cmmntyIntrcn = Community Introduction
|
cop.cmmntyIntrcn = Community Introduction
|
||||||
cop.cmmntyMngr = Community Manager
|
cop.cmmntyMngr = Community Manager
|
||||||
cop.clbOprtr = Club Operator
|
cop.clbOprtr = Club Operator
|
||||||
cop.clbIntrcn = Club Introduction
|
cop.clbIntrcn = Club Introduction
|
||||||
cop.clbNm = Club Name
|
cop.clbNm = Club Name
|
||||||
cop.tmplatNm = Template Name
|
cop.tmplatNm = Template Name
|
||||||
cop.tmplatSeCode = Template Se Code
|
cop.tmplatSeCode = Template Se Code
|
||||||
cop.tmplatCours = Template Cours
|
cop.tmplatCours = Template Cours
|
||||||
cop.useAt = Use Alternative
|
cop.useAt = Use Alternative
|
||||||
cop.ncrdNm = NameCard user name
|
cop.ncrdNm = NameCard user name
|
||||||
cop.cmpnyNm = Company name
|
cop.cmpnyNm = Company name
|
||||||
cop.deptNm = Department name
|
cop.deptNm = Department name
|
||||||
cop.ofcpsNm = OFCPS name
|
cop.ofcpsNm = OFCPS name
|
||||||
cop.clsfNm = Class Name
|
cop.clsfNm = Class Name
|
||||||
cop.emailAdres = E-mail
|
cop.emailAdres = E-mail
|
||||||
cop.telNo = Tel No.
|
cop.telNo = Tel No.
|
||||||
cop.mbtlNum = Mobile
|
cop.mbtlNum = Mobile
|
||||||
cop.adres = Address
|
cop.adres = Address
|
||||||
cop.extrlUserAt = External User alternative
|
cop.extrlUserAt = External User alternative
|
||||||
cop.publicAt = Public open alternative
|
cop.publicAt = Public open alternative
|
||||||
cop.remark = Remark
|
cop.remark = Remark
|
||||||
cop.trgetNm = Company/Club Information
|
cop.trgetNm = Company/Club Information
|
||||||
cop.preview = preview
|
cop.preview = preview
|
||||||
|
|
||||||
cop.withdraw.msg=confirm withdrawal memebership?
|
cop.withdraw.msg=confirm withdrawal memebership?
|
||||||
cop.reregist.msg=confirm re-registration?
|
cop.reregist.msg=confirm re-registration?
|
||||||
cop.registmanager.msg=confirm registration of manager?
|
cop.registmanager.msg=confirm registration of manager?
|
||||||
cop.use.msg=confirm use?
|
cop.use.msg=confirm use?
|
||||||
cop.unuse.msg=confirm stop using?
|
cop.unuse.msg=confirm stop using?
|
||||||
cop.delete.confirm.msg=If you choose to disable the re-use change is impossible.
|
cop.delete.confirm.msg=If you choose to disable the re-use change is impossible.
|
||||||
cop.ing.msg=Approval is being requested.
|
cop.ing.msg=Approval is being requested.
|
||||||
cop.request.msg=Signup is normally requested.
|
cop.request.msg=Signup is normally requested.
|
||||||
cop.password.msg=Please enter your password.
|
cop.password.msg=Please enter your password.
|
||||||
cop.password.not.same.msg=Password do not match.
|
cop.password.not.same.msg=Password do not match.
|
||||||
|
|
||||||
cop.comment.wrterNm = Writer Name
|
cop.comment.wrterNm = Writer Name
|
||||||
cop.comment.commentCn = Comment
|
cop.comment.commentCn = Comment
|
||||||
cop.comment.commentPassword = Password
|
cop.comment.commentPassword = Password
|
||||||
|
|
||||||
cop.satisfaction.wrterNm = Writer Name
|
cop.satisfaction.wrterNm = Writer Name
|
||||||
cop.satisfaction.stsfdgCn = Satisfaction
|
cop.satisfaction.stsfdgCn = Satisfaction
|
||||||
cop.satisfaction.stsfdg = Satisfaction Degree
|
cop.satisfaction.stsfdg = Satisfaction Degree
|
||||||
cop.satisfaction.stsfdgPassword = Password
|
cop.satisfaction.stsfdgPassword = Password
|
||||||
|
|
||||||
cop.scrap.scrapNm = Scrap Name
|
cop.scrap.scrapNm = Scrap Name
|
||||||
|
|
||||||
#UI USS Message#
|
#UI USS Message#
|
||||||
uss.ion.noi.ntfcSj=Subject
|
uss.ion.noi.ntfcSj=Subject
|
||||||
uss.ion.noi.ntfcCn=Contents
|
uss.ion.noi.ntfcCn=Contents
|
||||||
uss.ion.noi.ntfcDate=Notification Date
|
uss.ion.noi.ntfcDate=Notification Date
|
||||||
uss.ion.noi.ntfcTime=Notification Time
|
uss.ion.noi.ntfcTime=Notification Time
|
||||||
uss.ion.noi.ntfcHH=Notification Hour
|
uss.ion.noi.ntfcHH=Notification Hour
|
||||||
uss.ion.noi.ntfcMM=Notification Minute
|
uss.ion.noi.ntfcMM=Notification Minute
|
||||||
uss.ion.noi.bhNtfcIntrvl=Beforehand Interval
|
uss.ion.noi.bhNtfcIntrvl=Beforehand Interval
|
||||||
uss.ion.noi.bhNtfcIntrvl.msg=Beforehand Interval is required.
|
uss.ion.noi.bhNtfcIntrvl.msg=Beforehand Interval is required.
|
||||||
uss.ion.noi.alertNtfcTime=Date and time of notification is not valid.
|
uss.ion.noi.alertNtfcTime=Date and time of notification is not valid.
|
||||||
|
|
||||||
#UI COP Message#
|
#UI COP Message#
|
||||||
cop.sms.trnsmitTelno=Sender
|
cop.sms.trnsmitTelno=Sender
|
||||||
cop.sms.trnsmitCn=Contents
|
cop.sms.trnsmitCn=Contents
|
||||||
cop.sms.recptnTelno=Receiver(s)
|
cop.sms.recptnTelno=Receiver(s)
|
||||||
cop.sms.send=Send
|
cop.sms.send=Send
|
||||||
cop.sms.addRecptn=Add
|
cop.sms.addRecptn=Add
|
||||||
cop.sms.recptnTelno.msg=The phone number of receiver is required.
|
cop.sms.recptnTelno.msg=The phone number of receiver is required.
|
||||||
|
|
||||||
#UI sym.log Message#
|
#UI sym.log Message#
|
||||||
sym.log.histSeCode = History Code
|
sym.log.histSeCode = History Code
|
||||||
sym.log.sysNm = System Name
|
sym.log.sysNm = System Name
|
||||||
sym.log.histCn = History Contents
|
sym.log.histCn = History Contents
|
||||||
sym.log.atchFile = Attached File
|
sym.log.atchFile = Attached File
|
||||||
sym.log.atchFileList = Attached File List
|
sym.log.atchFileList = Attached File List
|
||||||
sym.ems.receiver = Receiver
|
sym.ems.receiver = Receiver
|
||||||
sym.ems.title = Title
|
sym.ems.title = Title
|
||||||
sym.ems.content = Content
|
sym.ems.content = Content
|
||||||
|
|
||||||
#Vlidator Errors#
|
#Vlidator Errors#
|
||||||
errors.required={0} is required.
|
errors.required={0} is required.
|
||||||
errors.minlength={0} can not be less than {1} characters.
|
errors.minlength={0} can not be less than {1} characters.
|
||||||
errors.maxlength={0} can not be greater than {1} characters.
|
errors.maxlength={0} can not be greater than {1} characters.
|
||||||
errors.invalid={0} is invalid.
|
errors.invalid={0} is invalid.
|
||||||
|
|
||||||
errors.byte={0} must be a byte.
|
errors.byte={0} must be a byte.
|
||||||
errors.short={0} must be a short.
|
errors.short={0} must be a short.
|
||||||
errors.integer={0} must be an integer.
|
errors.integer={0} must be an integer.
|
||||||
errors.long={0} must be a long.
|
errors.long={0} must be a long.
|
||||||
errors.float={0} must be a float.
|
errors.float={0} must be a float.
|
||||||
errors.double={0} must be a double.
|
errors.double={0} must be a double.
|
||||||
|
|
||||||
errors.date={0} is not a date.
|
errors.date={0} is not a date.
|
||||||
errors.range={0} is not in the range {1} through {2}.
|
errors.range={0} is not in the range {1} through {2}.
|
||||||
errors.creditcard={0} is an invalid credit card number.
|
errors.creditcard={0} is an invalid credit card number.
|
||||||
errors.email={0} is an invalid e-mail address.
|
errors.email={0} is an invalid e-mail address.
|
||||||
|
|
||||||
#Vlidator Errors- ReprtStatsVO#
|
#Vlidator Errors- ReprtStatsVO#
|
||||||
sts.reprtId = Report ID
|
sts.reprtId = Report ID
|
||||||
sts.title = Report Title
|
sts.title = Report Title
|
||||||
sts.category = Report Category
|
sts.category = Report Category
|
||||||
sts.status = Report Status
|
sts.status = Report Status
|
||||||
sts.regDate = Registration Date
|
sts.regDate = Registration Date
|
||||||
|
|
||||||
#Rest day messages#
|
#Rest day messages#
|
||||||
sym.cal.restDay = Holiday Date
|
sym.cal.restDay = Holiday Date
|
||||||
sym.cal.restName = Holiday Name
|
sym.cal.restName = Holiday Name
|
||||||
sym.cal.restDetail = Holiday Detail
|
sym.cal.restDetail = Holiday Detail
|
||||||
sym.cal.restCategory = Holiday Category
|
sym.cal.restCategory = Holiday Category
|
||||||
|
|
||||||
|
|
||||||
#Custom message#
|
#Custom message#
|
||||||
custom.fail.access=It's not a normal approach. Log in and use it.
|
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.fail.accessDenied=You do not have permission to request.
|
||||||
custom.isNotExist.msg=Data required for processing does not exist.
|
custom.isNotExist.msg=Data required for processing does not exist.
|
||||||
|
@ -1,375 +1,375 @@
|
|||||||
fail.common.msg=\uc5d0\ub7ec\uac00 \ubc1c\uc0dd\ud588\uc2b5\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}
|
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.
|
info.nodata.msg=\ud574\ub2f9 \ub370\uc774\ud130\uac00 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||||
|
|
||||||
#UI Common resource#
|
#UI Common resource#
|
||||||
table.num=\ubc88\ud638
|
table.num=\ubc88\ud638
|
||||||
table.regdate=\ub4f1\ub85d\uc77c
|
table.regdate=\ub4f1\ub85d\uc77c
|
||||||
table.reger=\ub4f1\ub85d\uc790
|
table.reger=\ub4f1\ub85d\uc790
|
||||||
table.select=\uc120\ud0dd
|
table.select=\uc120\ud0dd
|
||||||
title.html=egovframe common component
|
title.html=egovframe common component
|
||||||
title.detail=\uc0c1\uc138\uc870\ud68c
|
title.detail=\uc0c1\uc138\uc870\ud68c
|
||||||
title.inquire=\uc870\ud68c
|
title.inquire=\uc870\ud68c
|
||||||
title.update=\uc218\uc815
|
title.update=\uc218\uc815
|
||||||
title.create=\ub4f1\ub85d
|
title.create=\ub4f1\ub85d
|
||||||
title.delete=\uc0ad\uc81c
|
title.delete=\uc0ad\uc81c
|
||||||
title.save=\uc800\uc7a5
|
title.save=\uc800\uc7a5
|
||||||
title.list=\ubaa9\ub85d
|
title.list=\ubaa9\ub85d
|
||||||
title.searchCondition=\uac80\uc0c9\uc870\uac74
|
title.searchCondition=\uac80\uc0c9\uc870\uac74
|
||||||
title.search=\uac80\uc0c9\uc5b4
|
title.search=\uac80\uc0c9\uc5b4
|
||||||
title.reply=\ub2f5\uae00
|
title.reply=\ub2f5\uae00
|
||||||
title.scrap=\uc2a4\ud06c\ub7a9
|
title.scrap=\uc2a4\ud06c\ub7a9
|
||||||
title.comment=\ub313\uae00
|
title.comment=\ub313\uae00
|
||||||
title.attachedFileSelect=\ud30c\uc77c\uc120\ud0dd
|
title.attachedFileSelect=\ud30c\uc77c\uc120\ud0dd
|
||||||
title.attachedFileDelete=\ud30c\uc77c\uc0ad\uc81c
|
title.attachedFileDelete=\ud30c\uc77c\uc0ad\uc81c
|
||||||
title.link=\ub9c1\ud06c
|
title.link=\ub9c1\ud06c
|
||||||
title.management=\uad00\ub9ac
|
title.management=\uad00\ub9ac
|
||||||
title.all=\uc804\uccb4
|
title.all=\uc804\uccb4
|
||||||
|
|
||||||
input.select=\uc120\ud0dd\ud558\uc138\uc694
|
input.select=\uc120\ud0dd\ud558\uc138\uc694
|
||||||
input.cSelect=\uc120\ud0dd
|
input.cSelect=\uc120\ud0dd
|
||||||
input.input=\uc785\ub825
|
input.input=\uc785\ub825
|
||||||
input.button=\ubc84\ud2bc
|
input.button=\ubc84\ud2bc
|
||||||
input.selectAll.title=\uc804\uccb4\uc120\ud0dd\uccb4\ud06c\ubc15\uc2a4
|
input.selectAll.title=\uc804\uccb4\uc120\ud0dd\uccb4\ud06c\ubc15\uc2a4
|
||||||
input.yes=\uc608
|
input.yes=\uc608
|
||||||
input.no=\uc544\ub2c8\uc624
|
input.no=\uc544\ub2c8\uc624
|
||||||
|
|
||||||
select.searchCondition=\uc870\ud68c\uc870\uac74 \uc120\ud0dd
|
select.searchCondition=\uc870\ud68c\uc870\uac74 \uc120\ud0dd
|
||||||
|
|
||||||
button.select=\uc120\ud0dd
|
button.select=\uc120\ud0dd
|
||||||
button.search=\uac80\uc0c9
|
button.search=\uac80\uc0c9
|
||||||
button.use=\uc0ac\uc6a9
|
button.use=\uc0ac\uc6a9
|
||||||
button.notUsed=\uc0ac\uc6a9\uc911\uc9c0
|
button.notUsed=\uc0ac\uc6a9\uc911\uc9c0
|
||||||
button.inquire=\uc870\ud68c
|
button.inquire=\uc870\ud68c
|
||||||
button.update=\uc218\uc815
|
button.update=\uc218\uc815
|
||||||
button.create=\ub4f1\ub85d
|
button.create=\ub4f1\ub85d
|
||||||
button.delete=\uc0ad\uc81c
|
button.delete=\uc0ad\uc81c
|
||||||
button.deleteDatabase=\uc644\uc804\uc0ad\uc81c
|
button.deleteDatabase=\uc644\uc804\uc0ad\uc81c
|
||||||
button.close=\ub2eb\uae30
|
button.close=\ub2eb\uae30
|
||||||
button.save=\uc800\uc7a5
|
button.save=\uc800\uc7a5
|
||||||
button.list=\ubaa9\ub85d
|
button.list=\ubaa9\ub85d
|
||||||
button.reset=\ucde8\uc18c
|
button.reset=\ucde8\uc18c
|
||||||
button.passwordUpdate=\uc554\ud638\ubcc0\uacbd
|
button.passwordUpdate=\uc554\ud638\ubcc0\uacbd
|
||||||
button.subscribe=\uac00\uc785\uc2e0\uccad
|
button.subscribe=\uac00\uc785\uc2e0\uccad
|
||||||
button.realname=\uc2e4\uba85\ud655\uc778
|
button.realname=\uc2e4\uba85\ud655\uc778
|
||||||
button.moveToGpin=GPIN\uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9
|
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.moveToIhidnum=\uc8fc\ubbfc\ub4f1\ub85d\ubc88\ud638 \uc2e4\uba85\ud655\uc778\uc73c\ub85c \uc774\ub3d9
|
||||||
button.agree=\ub3d9\uc758
|
button.agree=\ub3d9\uc758
|
||||||
button.disagree=\ube44\ub3d9\uc758
|
button.disagree=\ube44\ub3d9\uc758
|
||||||
button.possible=\uac00\ub2a5
|
button.possible=\uac00\ub2a5
|
||||||
button.impossible=\ubd88\uac00\ub2a5
|
button.impossible=\ubd88\uac00\ub2a5
|
||||||
button.qnaregist=Q&A\ub4f1\ub85d
|
button.qnaregist=Q&A\ub4f1\ub85d
|
||||||
button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d
|
button.cnsltregist=\uc0c1\ub2f4\ub4f1\ub85d
|
||||||
button.preview=\ubbf8\ub9ac\ubcf4\uae30
|
button.preview=\ubbf8\ub9ac\ubcf4\uae30
|
||||||
button.next=\ub2e4\uc74c
|
button.next=\ub2e4\uc74c
|
||||||
button.add=\ubc14\ub85c\ucd94\uac00
|
button.add=\ubc14\ub85c\ucd94\uac00
|
||||||
button.confirm=\ud655\uc778
|
button.confirm=\ud655\uc778
|
||||||
button.back = \ub4a4\ub85c
|
button.back = \ub4a4\ub85c
|
||||||
button.yes = \uc608
|
button.yes = \uc608
|
||||||
button.no = \uc544\ub2c8\uc624
|
button.no = \uc544\ub2c8\uc624
|
||||||
button.home = \ud648
|
button.home = \ud648
|
||||||
button.user = \uc0ac\uc6a9\uc790\uc9c0\uc6d0
|
button.user = \uc0ac\uc6a9\uc790\uc9c0\uc6d0
|
||||||
button.cop = \ud611\uc5c5
|
button.cop = \ud611\uc5c5
|
||||||
button.wrkstart = \ucd9c\uadfc
|
button.wrkstart = \ucd9c\uadfc
|
||||||
button.wrkend = \ud1f4\uadfc
|
button.wrkend = \ud1f4\uadfc
|
||||||
button.reply = \ub2f5\uae00
|
button.reply = \ub2f5\uae00
|
||||||
button.scrap = \uc2a4\ud06c\ub7a9
|
button.scrap = \uc2a4\ud06c\ub7a9
|
||||||
button.comment = \ub313\uae00
|
button.comment = \ub313\uae00
|
||||||
button.excel = \uc5d1\uc140
|
button.excel = \uc5d1\uc140
|
||||||
button.init=\ucd08\uae30\ud654
|
button.init=\ucd08\uae30\ud654
|
||||||
button.acknowledgment=\uc2b9\uc778
|
button.acknowledgment=\uc2b9\uc778
|
||||||
button.cancelAcknowledgment=\uc2b9\uc778\ucde8\uc18c
|
button.cancelAcknowledgment=\uc2b9\uc778\ucde8\uc18c
|
||||||
button.bulkUpload=\uc77c\uad04\ub4f1\ub85d
|
button.bulkUpload=\uc77c\uad04\ub4f1\ub85d
|
||||||
button.log = \ub85c\uadf8
|
button.log = \ub85c\uadf8
|
||||||
button.set = \uc124\uc815
|
button.set = \uc124\uc815
|
||||||
button.move = \uc774\ub3d9
|
button.move = \uc774\ub3d9
|
||||||
|
|
||||||
|
|
||||||
#UI Common Message#
|
#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.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.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.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.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.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.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.save.msg=\uc800\uc7a5\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||||
common.regist.msg=\ub4f1\ub85d\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.delete.msg=\uc0ad\uc81c\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||||
common.update.msg=\uc218\uc815\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.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.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.acknowledgement.msg=\uc2b9\uc778\ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
||||||
common.acknowledgementcancel.msg=\uc2b9\uc778\ucde8\uc18c\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.nocomment.msg=\ub313\uae00\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||||
common.noguest.msg=\uc791\uc131\ub41c \ubc29\uba85\ub85d\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.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.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.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.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.
|
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.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.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.
|
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.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.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 = \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.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.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.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.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.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.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.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.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.
|
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#
|
#UI User Message#
|
||||||
fail.user.passwordUpdate1=\ud604\uc7ac \ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
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.
|
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.
|
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.
|
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.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)
|
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.
|
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.
|
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.
|
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#
|
#UI Cop Message#
|
||||||
cop.extrlUser = \uc678\ubd80\uc0ac\uc6a9\uc790
|
cop.extrlUser = \uc678\ubd80\uc0ac\uc6a9\uc790
|
||||||
cop.intrlUser = \ub0b4\ubd80\uc0ac\uc6a9\uc790
|
cop.intrlUser = \ub0b4\ubd80\uc0ac\uc6a9\uc790
|
||||||
cop.private = \ube44\uacf5\uac1c
|
cop.private = \ube44\uacf5\uac1c
|
||||||
cop.public = \uacf5\uac1c
|
cop.public = \uacf5\uac1c
|
||||||
|
|
||||||
cop.adbkNm = \uc8fc\uc18c\ub85d\uba85
|
cop.adbkNm = \uc8fc\uc18c\ub85d\uba85
|
||||||
cop.othbcScope = \uacf5\uac1c\ubc94\uc704
|
cop.othbcScope = \uacf5\uac1c\ubc94\uc704
|
||||||
cop.company = \ud68c\uc0ac
|
cop.company = \ud68c\uc0ac
|
||||||
cop.part = \ubd80\uc11c
|
cop.part = \ubd80\uc11c
|
||||||
cop.man = \uac1c\uc778
|
cop.man = \uac1c\uc778
|
||||||
cop.adbkUser = \uad6c\uc131\uc6d0
|
cop.adbkUser = \uad6c\uc131\uc6d0
|
||||||
cop.bbsNm = \uac8c\uc2dc\ud310\uba85
|
cop.bbsNm = \uac8c\uc2dc\ud310\uba85
|
||||||
cop.bbsIntrcn = \uac8c\uc2dc\ud310\uc18c\uac1c
|
cop.bbsIntrcn = \uac8c\uc2dc\ud310\uc18c\uac1c
|
||||||
cop.bbsTyCode = \uac8c\uc2dc\ud310 \uc720\ud615
|
cop.bbsTyCode = \uac8c\uc2dc\ud310 \uc720\ud615
|
||||||
cop.bbsAttrbCode = \uac8c\uc2dc\ud310 \uc18d\uc131
|
cop.bbsAttrbCode = \uac8c\uc2dc\ud310 \uc18d\uc131
|
||||||
cop.replyPosblAt = \ub2f5\uc7a5\uac00\ub2a5\uc5ec\ubd80
|
cop.replyPosblAt = \ub2f5\uc7a5\uac00\ub2a5\uc5ec\ubd80
|
||||||
cop.fileAtchPosblAt = \ud30c\uc77c\ucca8\ubd80\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.posblAtchFileNumber = \ucca8\ubd80\uac00\ub2a5\ud30c\uc77c \uc22b\uc790
|
||||||
cop.tmplatId = \ud15c\ud50c\ub9bf \uc815\ubcf4
|
cop.tmplatId = \ud15c\ud50c\ub9bf \uc815\ubcf4
|
||||||
cop.guestList.subject = \ubc29\uba85\ub85d \uac8c\uc2dc\uae00\uc785\ub2c8\ub2e4.
|
cop.guestList.subject = \ubc29\uba85\ub85d \uac8c\uc2dc\uae00\uc785\ub2c8\ub2e4.
|
||||||
cop.nttSj = \uc81c\ubaa9
|
cop.nttSj = \uc81c\ubaa9
|
||||||
cop.nttCn = \uae00\ub0b4\uc6a9
|
cop.nttCn = \uae00\ub0b4\uc6a9
|
||||||
cop.ntceBgnde = \uac8c\uc2dc\uc2dc\uc791\uc77c
|
cop.ntceBgnde = \uac8c\uc2dc\uc2dc\uc791\uc77c
|
||||||
cop.ntceEndde = \uac8c\uc2dc\uc885\ub8cc\uc77c
|
cop.ntceEndde = \uac8c\uc2dc\uc885\ub8cc\uc77c
|
||||||
cop.ntcrNm = \uc791\uc131\uc790
|
cop.ntcrNm = \uc791\uc131\uc790
|
||||||
cop.password = \ud328\uc2a4\uc6cc\ub4dc
|
cop.password = \ud328\uc2a4\uc6cc\ub4dc
|
||||||
cop.atchFile = \ud30c\uc77c\ucca8\ubd80
|
cop.atchFile = \ud30c\uc77c\ucca8\ubd80
|
||||||
cop.guestList = \ubc29\uba85\ub85d
|
cop.guestList = \ubc29\uba85\ub85d
|
||||||
cop.guestListCn = \ubc29\uba85\ub85d \ub0b4\uc6a9
|
cop.guestListCn = \ubc29\uba85\ub85d \ub0b4\uc6a9
|
||||||
cop.noticeTerm = \uac8c\uc2dc\uae30\uac04
|
cop.noticeTerm = \uac8c\uc2dc\uae30\uac04
|
||||||
cop.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d
|
cop.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d
|
||||||
cop.cmmntyNm = \ucee4\ubba4\ub2c8\ud2f0\uba85
|
cop.cmmntyNm = \ucee4\ubba4\ub2c8\ud2f0\uba85
|
||||||
cop.cmmntyIntrcn = \ucee4\ubba4\ub2c8\ud2f0 \uc18c\uac1c
|
cop.cmmntyIntrcn = \ucee4\ubba4\ub2c8\ud2f0 \uc18c\uac1c
|
||||||
cop.cmmntyMngr = \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790
|
cop.cmmntyMngr = \ucee4\ubba4\ub2c8\ud2f0 \uad00\ub9ac\uc790
|
||||||
cop.clbOprtr = \ub3d9\ud638\ud68c \uc6b4\uc601\uc790
|
cop.clbOprtr = \ub3d9\ud638\ud68c \uc6b4\uc601\uc790
|
||||||
cop.clbIntrcn = \ub3d9\ud638\ud68c \uc18c\uac1c
|
cop.clbIntrcn = \ub3d9\ud638\ud68c \uc18c\uac1c
|
||||||
cop.clbNm = \ub3d9\ud638\ud68c \uba85
|
cop.clbNm = \ub3d9\ud638\ud68c \uba85
|
||||||
cop.tmplatNm = \ud15c\ud50c\ub9bf\uba85
|
cop.tmplatNm = \ud15c\ud50c\ub9bf\uba85
|
||||||
cop.tmplatSeCode = \ud15c\ud50c\ub9bf \uad6c\ubd84
|
cop.tmplatSeCode = \ud15c\ud50c\ub9bf \uad6c\ubd84
|
||||||
cop.tmplatCours = \ud15c\ud50c\ub9bf\uacbd\ub85c
|
cop.tmplatCours = \ud15c\ud50c\ub9bf\uacbd\ub85c
|
||||||
cop.useAt = \uc0ac\uc6a9\uc5ec\ubd80
|
cop.useAt = \uc0ac\uc6a9\uc5ec\ubd80
|
||||||
cop.ncrdNm = \uc774\ub984
|
cop.ncrdNm = \uc774\ub984
|
||||||
cop.cmpnyNm = \ud68c\uc0ac\uba85
|
cop.cmpnyNm = \ud68c\uc0ac\uba85
|
||||||
cop.deptNm = \ubd80\uc11c\uba85
|
cop.deptNm = \ubd80\uc11c\uba85
|
||||||
cop.ofcpsNm = \uc9c1\uc704
|
cop.ofcpsNm = \uc9c1\uc704
|
||||||
cop.clsfNm = \uc9c1\uae09
|
cop.clsfNm = \uc9c1\uae09
|
||||||
cop.emailAdres = \uc774\uba54\uc77c\uc8fc\uc18c
|
cop.emailAdres = \uc774\uba54\uc77c\uc8fc\uc18c
|
||||||
cop.telNo = \uc804\ud654\ubc88\ud638
|
cop.telNo = \uc804\ud654\ubc88\ud638
|
||||||
cop.mbtlNum = \ud734\ub300\ud3f0\ubc88\ud638
|
cop.mbtlNum = \ud734\ub300\ud3f0\ubc88\ud638
|
||||||
cop.adres = \uc8fc\uc18c
|
cop.adres = \uc8fc\uc18c
|
||||||
cop.extrlUserAt = \uc678\ubd80\uc0ac\uc6a9\uc790\uc5ec\ubd80
|
cop.extrlUserAt = \uc678\ubd80\uc0ac\uc6a9\uc790\uc5ec\ubd80
|
||||||
cop.publicAt = \uacf5\uac1c\uc5ec\ubd80
|
cop.publicAt = \uacf5\uac1c\uc5ec\ubd80
|
||||||
cop.remark = \ube44\uace0
|
cop.remark = \ube44\uace0
|
||||||
cop.trgetNm = \ucee4\ubba4\ub2c8\ud2f0/\ub3d9\ud638\ud68c \uc815\ubcf4
|
cop.trgetNm = \ucee4\ubba4\ub2c8\ud2f0/\ub3d9\ud638\ud68c \uc815\ubcf4
|
||||||
cop.preview = \ubbf8\ub9ac\ubcf4\uae30
|
cop.preview = \ubbf8\ub9ac\ubcf4\uae30
|
||||||
|
|
||||||
cop.withdraw.msg=\ud0c8\ud1f4\ucc98\ub9ac \ud558\uc2dc\uaca0\uc2b5\ub2c8\uae4c?
|
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.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.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.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.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.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.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.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.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.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.wrterNm = \uc791\uc131\uc790
|
||||||
cop.comment.commentCn = \ub0b4\uc6a9
|
cop.comment.commentCn = \ub0b4\uc6a9
|
||||||
cop.comment.commentPassword = \ud328\uc2a4\uc6cc\ub4dc
|
cop.comment.commentPassword = \ud328\uc2a4\uc6cc\ub4dc
|
||||||
|
|
||||||
cop.satisfaction.wrterNm = \uc791\uc131\uc790
|
cop.satisfaction.wrterNm = \uc791\uc131\uc790
|
||||||
cop.satisfaction.stsfdgCn = \ub0b4\uc6a9
|
cop.satisfaction.stsfdgCn = \ub0b4\uc6a9
|
||||||
cop.satisfaction.stsfdg = \ub9cc\uc871\ub3c4
|
cop.satisfaction.stsfdg = \ub9cc\uc871\ub3c4
|
||||||
cop.satisfaction.stsfdgPassword = \ud328\uc2a4\uc6cc\ub4dc
|
cop.satisfaction.stsfdgPassword = \ud328\uc2a4\uc6cc\ub4dc
|
||||||
|
|
||||||
cop.scrap.scrapNm = \uc2a4\ud06c\ub7a9\uba85
|
cop.scrap.scrapNm = \uc2a4\ud06c\ub7a9\uba85
|
||||||
|
|
||||||
#UI USS Message#
|
#UI USS Message#
|
||||||
uss.ion.noi.ntfcSj=\uc81c\ubaa9
|
uss.ion.noi.ntfcSj=\uc81c\ubaa9
|
||||||
uss.ion.noi.ntfcCn=\ub0b4\uc6a9
|
uss.ion.noi.ntfcCn=\ub0b4\uc6a9
|
||||||
uss.ion.noi.ntfcDate=\uc54c\ub9bc\uc77c\uc790
|
uss.ion.noi.ntfcDate=\uc54c\ub9bc\uc77c\uc790
|
||||||
uss.ion.noi.ntfcTime=\uc54c\ub9bc\uc2dc\uac04
|
uss.ion.noi.ntfcTime=\uc54c\ub9bc\uc2dc\uac04
|
||||||
uss.ion.noi.ntfcHH=\uc54c\ub9bc\uc2dc\uac04
|
uss.ion.noi.ntfcHH=\uc54c\ub9bc\uc2dc\uac04
|
||||||
uss.ion.noi.ntfcMM=\uc54c\ub9bc\ubd84
|
uss.ion.noi.ntfcMM=\uc54c\ub9bc\ubd84
|
||||||
uss.ion.noi.bhNtfcIntrvl=\uc0ac\uc804\uc54c\ub9bc\uac04\uaca9
|
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.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.
|
uss.ion.noi.alertNtfcTime=\uc54c\ub9bc\uc77c\uc790 \ubc0f \uc2dc\uac04\uc774 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||||
|
|
||||||
#UI COP Message#
|
#UI COP Message#
|
||||||
cop.sms.trnsmitTelno=\ubc1c\uc2e0\uc804\ud654\ubc88\ud638
|
cop.sms.trnsmitTelno=\ubc1c\uc2e0\uc804\ud654\ubc88\ud638
|
||||||
cop.sms.trnsmitCn=\uc804\uc1a1\ub0b4\uc6a9
|
cop.sms.trnsmitCn=\uc804\uc1a1\ub0b4\uc6a9
|
||||||
cop.sms.recptnTelno=\uc218\uc2e0\uc804\ud654\ubc88\ud638
|
cop.sms.recptnTelno=\uc218\uc2e0\uc804\ud654\ubc88\ud638
|
||||||
cop.sms.send=\uc804\uc1a1
|
cop.sms.send=\uc804\uc1a1
|
||||||
cop.sms.addRecptn=\ucd94\uac00
|
cop.sms.addRecptn=\ucd94\uac00
|
||||||
cop.sms.recptnTelno.msg=\uc218\uc2e0\uc804\ud654\ubc88\ud638 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.
|
cop.sms.recptnTelno.msg=\uc218\uc2e0\uc804\ud654\ubc88\ud638 \uc9c0\uc815\uc774 \ud544\uc694\ud569\ub2c8\ub2e4.
|
||||||
|
|
||||||
#UI sym.log Message#
|
#UI sym.log Message#
|
||||||
sym.log.histSeCode = \uc774\ub825\uad6c\ubd84
|
sym.log.histSeCode = \uc774\ub825\uad6c\ubd84
|
||||||
sym.log.sysNm = \uc2dc\uc2a4\ud15c\uba85
|
sym.log.sysNm = \uc2dc\uc2a4\ud15c\uba85
|
||||||
sym.log.histCn = \uc774\ub825\ub0b4\uc6a9
|
sym.log.histCn = \uc774\ub825\ub0b4\uc6a9
|
||||||
sym.log.atchFile = \ucca8\ubd80\ud30c\uc77c
|
sym.log.atchFile = \ucca8\ubd80\ud30c\uc77c
|
||||||
sym.log.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d
|
sym.log.atchFileList = \ucca8\ubd80\ud30c\uc77c\ubaa9\ub85d
|
||||||
sym.ems.receiver = \ubc1b\ub294\uc0ac\ub78c
|
sym.ems.receiver = \ubc1b\ub294\uc0ac\ub78c
|
||||||
sym.ems.title = \uc81c\ubaa9
|
sym.ems.title = \uc81c\ubaa9
|
||||||
sym.ems.content = \ubc1c\uc2e0\ub0b4\uc6a9
|
sym.ems.content = \ubc1c\uc2e0\ub0b4\uc6a9
|
||||||
|
|
||||||
#Vlidator Errors#
|
#Vlidator Errors#
|
||||||
errors.prefix=<div class="error">
|
errors.prefix=<div class="error">
|
||||||
errors.suffix=</div><br/>
|
errors.suffix=</div><br/>
|
||||||
|
|
||||||
errors.required={0}\uc740(\ub294) \ud544\uc218 \uc785\ub825\uac12\uc785\ub2c8\ub2e4.
|
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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.
|
errors.notKorean={0}\uc740(\ub294) \ud55c\uae00\uc744 \uc0ac\uc6a9\ud558\uc2e4\uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
|
||||||
error.security.runtime.error = error
|
error.security.runtime.error = error
|
||||||
|
|
||||||
#Xss Errors#
|
#Xss Errors#
|
||||||
errors.xss.checkerUser=\ud574\ub2f9 \uae30\ub2a5\uc5d0 \ub300\ud55c \uc0ac\uc6a9 \ubc0f \ucc98\ub9ac \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
|
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
|
#File Upload / Download
|
||||||
errors.file.extension=\uc9c0\uc6d0\ub418\ub294 \ud30c\uc77c\uc720\ud615\uc774 \uc544\ub2d9\ub2c8\ub2e4.
|
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.
|
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.
|
success.file.transfer=\ud30c\uc77c\uc804\uc1a1\uc774 \uc644\ub8cc\ub418\uc5c8\uc2b5\ub2c8\ub2e4.
|
||||||
|
|
||||||
#Vlidator Errors- wordDicaryVO#
|
#Vlidator Errors- wordDicaryVO#
|
||||||
wordDicaryVO.wordNm=\uc6a9\uc5b4\uba85
|
wordDicaryVO.wordNm=\uc6a9\uc5b4\uba85
|
||||||
wordDicaryVO.engNm=\uc601\ubb38\uba85
|
wordDicaryVO.engNm=\uc601\ubb38\uba85
|
||||||
wordDicaryVO.wordDc=\uc6a9\uc5b4\uc124\uba85
|
wordDicaryVO.wordDc=\uc6a9\uc5b4\uc124\uba85
|
||||||
wordDicaryVO.synonm=\ub3d9\uc758\uc5b4
|
wordDicaryVO.synonm=\ub3d9\uc758\uc5b4
|
||||||
|
|
||||||
#Vlidator Errors- cnsltManageVO#
|
#Vlidator Errors- cnsltManageVO#
|
||||||
cnsltManageVO.cnsltSj=\uc0c1\ub2f4\uc81c\ubaa9
|
cnsltManageVO.cnsltSj=\uc0c1\ub2f4\uc81c\ubaa9
|
||||||
cnsltManageVO.cnsltCn=\uc0c1\ub2f4\ub0b4\uc6a9
|
cnsltManageVO.cnsltCn=\uc0c1\ub2f4\ub0b4\uc6a9
|
||||||
cnsltManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638
|
cnsltManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638
|
||||||
cnsltManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638
|
cnsltManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638
|
||||||
cnsltManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638
|
cnsltManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638
|
||||||
cnsltManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638
|
cnsltManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638
|
||||||
cnsltManageVO.wrterNm=\uc791\uc131\uc790\uba85
|
cnsltManageVO.wrterNm=\uc791\uc131\uc790\uba85
|
||||||
cnsltManageVO.managtCn=\ub2f5\ubcc0\ub0b4\uc6a9
|
cnsltManageVO.managtCn=\ub2f5\ubcc0\ub0b4\uc6a9
|
||||||
|
|
||||||
#Vlidator Errors- siteManageVO#
|
#Vlidator Errors- siteManageVO#
|
||||||
siteManageVO.siteNm=\uc0ac\uc774\ud2b8\uba85
|
siteManageVO.siteNm=\uc0ac\uc774\ud2b8\uba85
|
||||||
siteManageVO.siteUrl=\uc0ac\uc774\ud2b8 URL
|
siteManageVO.siteUrl=\uc0ac\uc774\ud2b8 URL
|
||||||
siteManageVO.siteDc=\uc0ac\uc774\ud2b8\uc124\uba85
|
siteManageVO.siteDc=\uc0ac\uc774\ud2b8\uc124\uba85
|
||||||
siteManageVO.siteThemaClCode=\uc0ac\uc774\ud2b8\uc8fc\uc81c\ubd84\ub958
|
siteManageVO.siteThemaClCode=\uc0ac\uc774\ud2b8\uc8fc\uc81c\ubd84\ub958
|
||||||
siteManageVO.actvtyAt=\ud65c\uc131\uc5ec\ubd80
|
siteManageVO.actvtyAt=\ud65c\uc131\uc5ec\ubd80
|
||||||
siteManageVO.useAt=\uc0ac\uc6a9\uc5ec\ubd80
|
siteManageVO.useAt=\uc0ac\uc6a9\uc5ec\ubd80
|
||||||
|
|
||||||
#Vlidator Errors- recomendSiteManageVO#
|
#Vlidator Errors- recomendSiteManageVO#
|
||||||
recomendSiteManageVO.recomendSiteNm=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uba85
|
recomendSiteManageVO.recomendSiteNm=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uba85
|
||||||
recomendSiteManageVO.recomendSiteUrl=\ucd94\ucc9c\uc0ac\uc774\ud2b8 URL
|
recomendSiteManageVO.recomendSiteUrl=\ucd94\ucc9c\uc0ac\uc774\ud2b8 URL
|
||||||
recomendSiteManageVO.recomendSiteDc=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc124\uba85
|
recomendSiteManageVO.recomendSiteDc=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc124\uba85
|
||||||
recomendSiteManageVO.recomendResnCn=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc2b9\uc778\uc0ac\uc720
|
recomendSiteManageVO.recomendResnCn=\ucd94\ucc9c\uc0ac\uc774\ud2b8\uc2b9\uc778\uc0ac\uc720
|
||||||
recomendSiteManageVO.confmDe=\uc2b9\uc778\uc77c\uc790
|
recomendSiteManageVO.confmDe=\uc2b9\uc778\uc77c\uc790
|
||||||
|
|
||||||
#Vlidator Errors- hpcmManageVO#
|
#Vlidator Errors- hpcmManageVO#
|
||||||
hpcmManageVO.hpcmSeCode=\ub3c4\uc6c0\ub9d0\uad6c\ubd84
|
hpcmManageVO.hpcmSeCode=\ub3c4\uc6c0\ub9d0\uad6c\ubd84
|
||||||
hpcmManageVO.hpcmDf=\ub3c4\uc6c0\ub9d0\uc815\uc758
|
hpcmManageVO.hpcmDf=\ub3c4\uc6c0\ub9d0\uc815\uc758
|
||||||
hpcmManageVO.hpcmDc=\ub3c4\uc6c0\ub9d0\uc124\uba85
|
hpcmManageVO.hpcmDc=\ub3c4\uc6c0\ub9d0\uc124\uba85
|
||||||
|
|
||||||
#Vlidator Errors- newsManageVO#
|
#Vlidator Errors- newsManageVO#
|
||||||
newsManageVO.newsSj=\ub274\uc2a4\uc81c\ubaa9
|
newsManageVO.newsSj=\ub274\uc2a4\uc81c\ubaa9
|
||||||
newsManageVO.newsCn=\ub274\uc2a4\ub0b4\uc6a9
|
newsManageVO.newsCn=\ub274\uc2a4\ub0b4\uc6a9
|
||||||
newsManageVO.ntceDe=\uac8c\uc2dc\uc77c\uc790
|
newsManageVO.ntceDe=\uac8c\uc2dc\uc77c\uc790
|
||||||
|
|
||||||
#Vlidator Errors- faqManageVO#
|
#Vlidator Errors- faqManageVO#
|
||||||
faqManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9
|
faqManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9
|
||||||
faqManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9
|
faqManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9
|
||||||
faqManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9
|
faqManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9
|
||||||
|
|
||||||
#Vlidator Errors- stplatManageVO#
|
#Vlidator Errors- stplatManageVO#
|
||||||
stplatManageVO.useStplatNm=\uc774\uc6a9\uc57d\uad00\uba85
|
stplatManageVO.useStplatNm=\uc774\uc6a9\uc57d\uad00\uba85
|
||||||
stplatManageVO.useStplatCn=\uc774\uc6a9\uc57d\uad00\ub0b4\uc6a9
|
stplatManageVO.useStplatCn=\uc774\uc6a9\uc57d\uad00\ub0b4\uc6a9
|
||||||
stplatManageVO.infoProvdAgreCn=\uc815\ubcf4\uc81c\uacf5\ub3d9\uc758\ub0b4\uc6a9
|
stplatManageVO.infoProvdAgreCn=\uc815\ubcf4\uc81c\uacf5\ub3d9\uc758\ub0b4\uc6a9
|
||||||
|
|
||||||
#Vlidator Errors- cpyrhtPrtcPolicyVO#
|
#Vlidator Errors- cpyrhtPrtcPolicyVO#
|
||||||
cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45\ub0b4\uc6a9
|
cpyrhtPrtcPolicyVO.cpyrhtPrtcPolicyCn=\uc800\uc791\uad8c\ubcf4\ud638\uc815\ucc45\ub0b4\uc6a9
|
||||||
|
|
||||||
#Vlidator Errors- qnaManageVO#
|
#Vlidator Errors- qnaManageVO#
|
||||||
qnaManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9
|
qnaManageVO.qestnSj=\uc9c8\ubb38\uc81c\ubaa9
|
||||||
qnaManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9
|
qnaManageVO.qestnCn=\uc9c8\ubb38\ub0b4\uc6a9
|
||||||
qnaManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638
|
qnaManageVO.writngPassword=\uc791\uc131\ube44\ubc00\ubc88\ud638
|
||||||
qnaManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638
|
qnaManageVO.areaNo=\uc9c0\uc5ed\ubc88\ud638
|
||||||
qnaManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638
|
qnaManageVO.middleTelno=\uc911\uac04\uc804\ud654\ubc88\ud638
|
||||||
qnaManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638
|
qnaManageVO.endTelno=\ub05d\uc804\ud654\ubc88\ud638
|
||||||
qnaManageVO.wrterNm=\uc791\uc131\uc790\uba85
|
qnaManageVO.wrterNm=\uc791\uc131\uc790\uba85
|
||||||
qnaManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9
|
qnaManageVO.answerCn=\ub2f5\ubcc0\ub0b4\uc6a9
|
||||||
|
|
||||||
#Vlidator Errors- ReprtStatsVO#
|
#Vlidator Errors- ReprtStatsVO#
|
||||||
sts.reprtId = \ubcf4\uace0\uc11cID
|
sts.reprtId = \ubcf4\uace0\uc11cID
|
||||||
sts.title = \ubcf4\uace0\uc11c\uba85
|
sts.title = \ubcf4\uace0\uc11c\uba85
|
||||||
sts.category = \ubcf4\uace0\uc11c\uc720\ud615
|
sts.category = \ubcf4\uace0\uc11c\uc720\ud615
|
||||||
sts.status = \uc9c4\ud589\uc0c1\ud0dc
|
sts.status = \uc9c4\ud589\uc0c1\ud0dc
|
||||||
sts.regDate = \ub4f1\ub85d\uc77c\uc2dc
|
sts.regDate = \ub4f1\ub85d\uc77c\uc2dc
|
||||||
|
|
||||||
#Rest day messages#
|
#Rest day messages#
|
||||||
sym.cal.restDay = \ud734\uc77c\uc77c\uc790
|
sym.cal.restDay = \ud734\uc77c\uc77c\uc790
|
||||||
sym.cal.restName = \ud734\uc77c\uba85
|
sym.cal.restName = \ud734\uc77c\uba85
|
||||||
sym.cal.restDetail = \ud734\uc77c\uc124\uba85
|
sym.cal.restDetail = \ud734\uc77c\uc124\uba85
|
||||||
sym.cal.restCategory = \ud734\uc77c\uad6c\ubd84
|
sym.cal.restCategory = \ud734\uc77c\uad6c\ubd84
|
||||||
|
|
||||||
image.errorBg = \uc624\ub958\uc774\ubbf8\uc9c0
|
image.errorBg = \uc624\ub958\uc774\ubbf8\uc9c0
|
||||||
|
|
||||||
|
|
||||||
#Custom message#
|
#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.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.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.
|
custom.isNotExist.msg=\ucc98\ub9ac\uc5d0 \ud544\uc694\ud55c \uc790\ub8cc\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns:context="http://www.springframework.org/schema/context"
|
xmlns:context="http://www.springframework.org/schema/context"
|
||||||
xmlns:beans="http://www.springframework.org/schema/beans"
|
xmlns:beans="http://www.springframework.org/schema/beans"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
|
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
|
||||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
<beans:bean id="programDao" class="cokr.xit.base.menu.dao.ProgramDao" />
|
<beans:bean id="programDao" class="cokr.xit.base.menu.dao.ProgramDao" />
|
||||||
<beans:bean id="programService" class="cokr.xit.base.menu.service.bean.ProgramServiceBean" />
|
<beans:bean id="programService" class="cokr.xit.base.menu.service.bean.ProgramServiceBean" />
|
||||||
-->
|
-->
|
||||||
</beans>
|
</beans>
|
@ -1,68 +1,68 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns:context="http://www.springframework.org/schema/context"
|
xmlns:context="http://www.springframework.org/schema/context"
|
||||||
xmlns:beans="http://www.springframework.org/schema/beans"
|
xmlns:beans="http://www.springframework.org/schema/beans"
|
||||||
xmlns:util="http://www.springframework.org/schema/util"
|
xmlns:util="http://www.springframework.org/schema/util"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||||
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
|
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
|
||||||
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||||
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
|
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
|
||||||
|
|
||||||
<context:component-scan base-package="cokr.xit">
|
<context:component-scan base-package="cokr.xit">
|
||||||
<context:include-filter type="annotation" expression="org.springframework.stereotype.Component"/>
|
<context:include-filter type="annotation" expression="org.springframework.stereotype.Component"/>
|
||||||
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
|
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
|
||||||
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
|
<context:include-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
|
||||||
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
|
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
|
||||||
</context:component-scan>
|
</context:component-scan>
|
||||||
|
|
||||||
<bean id="antPathMatcher" class="org.springframework.util.AntPathMatcher" />
|
<bean id="antPathMatcher" class="org.springframework.util.AntPathMatcher" />
|
||||||
|
|
||||||
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
|
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
|
||||||
<property name="basenames">
|
<property name="basenames">
|
||||||
<list>
|
<list>
|
||||||
<value>classpath:message/message-common</value>
|
<value>classpath:message/message-common</value>
|
||||||
<value>classpath:message/authentication-message</value>
|
<value>classpath:message/authentication-message</value>
|
||||||
<value>classpath:org/egovframe/rte/fdl/property/messages/properties</value>
|
<value>classpath:org/egovframe/rte/fdl/property/messages/properties</value>
|
||||||
</list>
|
</list>
|
||||||
</property>
|
</property>
|
||||||
<property name="defaultEncoding" value="UTF-8"/>
|
<property name="defaultEncoding" value="UTF-8"/>
|
||||||
<property name="cacheSeconds">
|
<property name="cacheSeconds">
|
||||||
<value>60</value>
|
<value>60</value>
|
||||||
</property>
|
</property>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper">
|
<bean id="objectMapper" class="com.fasterxml.jackson.databind.ObjectMapper">
|
||||||
<property name="dateFormat" ref="dateFormat"/>
|
<property name="dateFormat" ref="dateFormat"/>
|
||||||
</bean>
|
</bean>
|
||||||
<bean id="dateFormat" class="java.text.SimpleDateFormat">
|
<bean id="dateFormat" class="java.text.SimpleDateFormat">
|
||||||
<constructor-arg index="0" value="yyyy-MM-dd HH:mm"/>
|
<constructor-arg index="0" value="yyyy-MM-dd HH:mm"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
|
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
|
||||||
<property name="defaultLocale" value="ko_KR"/>
|
<property name="defaultLocale" value="ko_KR"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean name="propertyService" class="org.egovframe.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy">
|
<bean name="propertyService" class="org.egovframe.rte.fdl.property.impl.EgovPropertyServiceImpl" destroy-method="destroy">
|
||||||
<property name="properties">
|
<property name="properties">
|
||||||
<map>
|
<map>
|
||||||
<entry key="tempDir" value="D:/temp"/>
|
<entry key="tempDir" value="D:/temp"/>
|
||||||
|
|
||||||
<entry key="pageUnit" value="10"/>
|
<entry key="pageUnit" value="10"/>
|
||||||
<entry key="pageSize" value="10"/>
|
<entry key="pageSize" value="10"/>
|
||||||
</map>
|
</map>
|
||||||
</property>
|
</property>
|
||||||
<!--
|
<!--
|
||||||
<property name="extFileName">
|
<property name="extFileName">
|
||||||
<set>
|
<set>
|
||||||
<map>
|
<map>
|
||||||
<entry key="encoding" value="UTF-8"/>
|
<entry key="encoding" value="UTF-8"/>
|
||||||
<entry key="filename" value="classpath*:properties/your-file.properties"/>
|
<entry key="filename" value="classpath*:properties/your-file.properties"/>
|
||||||
</map>
|
</map>
|
||||||
</set>
|
</set>
|
||||||
</property>
|
</property>
|
||||||
-->
|
-->
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="leaveaTrace" class="org.egovframe.rte.fdl.cmmn.trace.LeaveaTrace" />
|
<bean id="leaveaTrace" class="org.egovframe.rte.fdl.cmmn.trace.LeaveaTrace" />
|
||||||
|
|
||||||
</beans>
|
</beans>
|
@ -1,49 +1,49 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xmlns:p="http://www.springframework.org/schema/p"
|
xmlns:p="http://www.springframework.org/schema/p"
|
||||||
xmlns:aop="http://www.springframework.org/schema/aop"
|
xmlns:aop="http://www.springframework.org/schema/aop"
|
||||||
xmlns:tx="http://www.springframework.org/schema/tx"
|
xmlns:tx="http://www.springframework.org/schema/tx"
|
||||||
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||||
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
|
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
|
||||||
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
|
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
|
||||||
">
|
">
|
||||||
|
|
||||||
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
|
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
|
||||||
<!--
|
<!--
|
||||||
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/>
|
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/>
|
||||||
<property name="url" value="jdbc:oracle:thin:@115.21.123.118:1521:bustms" />
|
<property name="url" value="jdbc:oracle:thin:@115.21.123.118:1521:bustms" />
|
||||||
-->
|
-->
|
||||||
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/>
|
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy"/>
|
||||||
<property name="url" value="jdbc:log4jdbc:mariadb://localhost:3306/xit-base?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&useSSL=false" />
|
<property name="url" value="jdbc:log4jdbc:mariadb://localhost:3306/xit-base?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&useSSL=false" />
|
||||||
<property name="username" value="root"/>
|
<property name="username" value="root"/>
|
||||||
<property name="password" value="mjkhan"/>
|
<property name="password" value="mjkhan"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean"
|
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean"
|
||||||
p:dataSource-ref="dataSource"
|
p:dataSource-ref="dataSource"
|
||||||
p:configLocation="classpath:sql/mybatis-config.xml"
|
p:configLocation="classpath:sql/mybatis-config.xml"
|
||||||
p:mapperLocations="classpath:sql/mapper/**/*.xml"
|
p:mapperLocations="classpath:sql/mapper/**/*.xml"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<bean id="mapperConfigurer" class="org.egovframe.rte.psl.dataaccess.mapper.MapperConfigurer">
|
<bean id="mapperConfigurer" class="org.egovframe.rte.psl.dataaccess.mapper.MapperConfigurer">
|
||||||
<property name="basePackage" value="cokr.xit" />
|
<property name="basePackage" value="cokr.xit" />
|
||||||
<property name="sqlSessionFactoryBeanName" value="sqlSession"/>
|
<property name="sqlSessionFactoryBeanName" value="sqlSession"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
|
||||||
<property name="dataSource" ref="dataSource"/>
|
<property name="dataSource" ref="dataSource"/>
|
||||||
</bean>
|
</bean>
|
||||||
|
|
||||||
<tx:advice id="txAdvice" transaction-manager="txManager">
|
<tx:advice id="txAdvice" transaction-manager="txManager">
|
||||||
<tx:attributes>
|
<tx:attributes>
|
||||||
<tx:method name="*" rollback-for="Exception"/>
|
<tx:method name="*" rollback-for="Exception"/>
|
||||||
</tx:attributes>
|
</tx:attributes>
|
||||||
</tx:advice>
|
</tx:advice>
|
||||||
|
|
||||||
<aop:config>
|
<aop:config>
|
||||||
<aop:pointcut id="serviceMethod" expression="execution(* cokr.xit..service.bean..*ServiceBean.*(..))" />
|
<aop:pointcut id="serviceMethod" expression="execution(* cokr.xit..service.bean..*ServiceBean.*(..))" />
|
||||||
<aop:pointcut id="requiredTx" expression="execution(* cokr.xit..service.bean..*ServiceBean.*(..))"/>
|
<aop:pointcut id="requiredTx" expression="execution(* cokr.xit..service.bean..*ServiceBean.*(..))"/>
|
||||||
<aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
|
<aop:advisor advice-ref="txAdvice" pointcut-ref="requiredTx" />
|
||||||
</aop:config>
|
</aop:config>
|
||||||
|
|
||||||
</beans>
|
</beans>
|
@ -1,25 +1,25 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
|
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
|
||||||
<configuration>
|
<configuration>
|
||||||
|
|
||||||
<settings>
|
<settings>
|
||||||
<setting name="mapUnderscoreToCamelCase" value="false"/>
|
<setting name="mapUnderscoreToCamelCase" value="false"/>
|
||||||
<setting name="cacheEnabled" value="false" />
|
<setting name="cacheEnabled" value="false" />
|
||||||
<setting name="jdbcTypeForNull" value="NULL" />
|
<setting name="jdbcTypeForNull" value="NULL" />
|
||||||
<setting name="callSettersOnNulls" value="true"/>
|
<setting name="callSettersOnNulls" value="true"/>
|
||||||
</settings>
|
</settings>
|
||||||
|
|
||||||
<typeAliases>
|
<typeAliases>
|
||||||
<typeAlias alias="egovMap" type="org.egovframe.rte.psl.dataaccess.util.EgovMap"/>
|
<typeAlias alias="egovMap" type="org.egovframe.rte.psl.dataaccess.util.EgovMap"/>
|
||||||
<typeAlias alias="dataobject" type="cokr.xit.foundation.data.DataObject"/>
|
<typeAlias alias="dataobject" type="cokr.xit.foundation.data.DataObject"/>
|
||||||
</typeAliases>
|
</typeAliases>
|
||||||
|
|
||||||
<typeHandlers>
|
<typeHandlers>
|
||||||
<typeHandler handler="cokr.xit.foundation.data.RowValueHandler" javaType="java.lang.Object"/>
|
<typeHandler handler="cokr.xit.foundation.data.RowValueHandler" javaType="java.lang.Object"/>
|
||||||
</typeHandlers>
|
</typeHandlers>
|
||||||
|
|
||||||
<plugins>
|
<plugins>
|
||||||
<plugin interceptor="cokr.xit.foundation.data.paging.PagingSupport" />
|
<plugin interceptor="cokr.xit.foundation.data.paging.PagingSupport" />
|
||||||
</plugins>
|
</plugins>
|
||||||
|
|
||||||
</configuration>
|
</configuration>
|
Loading…
Reference in New Issue