Compare commits

..

No commits in common. "master" and "stblz" have entirely different histories.

1044 changed files with 30181 additions and 188929 deletions

1
.gitignore vendored
View File

@ -1,3 +1,4 @@
### Eclipse ###
.metadata

21
pom.xml
View File

@ -26,14 +26,9 @@
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<webcontent-dir>${project.basedir}\src\main\webapp\WEB-INF\lib</webcontent-dir>
</properties>
<!-- <distributionManagement> -->
<!-- <repository> -->
<!-- <id>maven-public</id> -->
<!-- <url>http://nexus.iten.co.kr:9999/repository/maven-public/</url> -->
<!-- </repository> -->
<!-- </distributionManagement> -->
<repositories>
<!-- <repository>
<repository>
<id>mvn2</id>
<url>https://repo1.maven.org/maven2/</url>
<releases>
@ -62,7 +57,7 @@
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository> -->
</repository>
<!-- <repository>
<id>cubrid.release.repository</id>
<url>http://maven.cubrid.org/</url>
@ -73,16 +68,6 @@
<enabled>false</enabled>
</snapshots>
</repository> -->
<repository>
<id>maven-public</id>
<url>http://nexus.iten.co.kr:9999/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>

View File

@ -10,22 +10,22 @@ import com.ibatis.sqlmap.client.SqlMapClient;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
//@Repository("KcdfNewDAO")
//public class KcdfNewDAO extends EgovAbstractDAO {
// @Override
// @Resource(name ="kcdfSqlMapClient")
// public void setSuperSqlMapClient(SqlMapClient sqlMapClient) {
// super.setSuperSqlMapClient(sqlMapClient);
// }
//
// public int selectKcdfBasicCount() {
// return (int)select("KcdfNewDAO.selectKcdfBasicCount");
// }
//
// @SuppressWarnings("unchecked")
// public List<KcdfNewBbsVO> selectKcdfBbsList(KcdfNewBbsVO tempKcdfNewBbsVO) throws Exception{
// return (List<KcdfNewBbsVO>)list("KcdfNewDAO.selectKcdfBbsList", tempKcdfNewBbsVO);
// }
//}
@Repository("KcdfNewDAO")
public class KcdfNewDAO extends EgovAbstractDAO {
@Override
@Resource(name ="kcdfSqlMapClient")
public void setSuperSqlMapClient(SqlMapClient sqlMapClient) {
super.setSuperSqlMapClient(sqlMapClient);
}
public int selectKcdfBasicCount() {
return (int)select("KcdfNewDAO.selectKcdfBasicCount");
}
@SuppressWarnings("unchecked")
public List<KcdfNewBbsVO> selectKcdfBbsList(KcdfNewBbsVO tempKcdfNewBbsVO) throws Exception{
return (List<KcdfNewBbsVO>)list("KcdfNewDAO.selectKcdfBbsList", tempKcdfNewBbsVO);
}
}

View File

@ -10,8 +10,8 @@ import org.springframework.stereotype.Service;
@Service("MariaMigrationService")
public class MariaMigrationService {
// @Resource(name = "KcdfNewDAO")
// private KcdfNewDAO kcdfNewDAO;
@Resource(name = "KcdfNewDAO")
private KcdfNewDAO kcdfNewDAO;
@Resource(name = "NcmsDAO")
private NcmsDAO ncmsDAO;
@ -77,50 +77,50 @@ public class MariaMigrationService {
}
// public int selectKcdfBasicCount() {
// return kcdfNewDAO.selectKcdfBasicCount();
// }
//
// public void kcdfMigration() {
// try {
//
// int selectKcdfBasicCount = kcdfNewDAO.selectKcdfBasicCount();
// List<KcdfNewBbsVO> list = new ArrayList<KcdfNewBbsVO>();
// KcdfNewBbsVO tempKcdfNewBbsVO = new KcdfNewBbsVO(); //limit 위해 사용
// int enterval = 100;
// int i = 0;
// if(selectKcdfBasicCount > enterval){
// for(i=0; i< selectKcdfBasicCount; i++){ //enterval 개씩 끊어서 insert
// if (i % enterval == 0 ){ //0
// tempKcdfNewBbsVO.setRecordCountPerPage(enterval);
// tempKcdfNewBbsVO.setFirstIndex(i);
// list = kcdfNewDAO.selectKcdfBbsList(tempKcdfNewBbsVO);
// for(int j=0; j< list.size(); j++){
// ncmsDAO.insertNcmsBbsInfo(list.get(j));
// }
// }
// }
//
// /*if(selectKcdfBasicCount != tempKcdfNewBbsVO.getFirstIndex()) { // enterval 개씩 끊어서 insert 남은 데이터 insert
// tempKcdfNewBbsVO.setFirstIndex(selectKcdfBasicCount);
// tempKcdfNewBbsVO.setRecordCountPerPage(enterval);
// list = kcdfNewDAO.selectKcdfBbsList(tempKcdfNewBbsVO);
// for(i=0; i< list.size(); i++){
// kcdfNewDAO.insertNcmsBbsInfo(list.get(i));
// }
// }*/
// }else{ //enterval 미만
// tempKcdfNewBbsVO.setFirstIndex(0);
// tempKcdfNewBbsVO.setRecordCountPerPage(enterval);
// list = kcdfNewDAO.selectKcdfBbsList(tempKcdfNewBbsVO);
// for(i=0; i< selectKcdfBasicCount; i++){
// ncmsDAO.insertNcmsBbsInfo(list.get(i));
// }
// }
// } catch (Exception e) {
// System.err.println("migration Exception Error");
// }
// }
public int selectKcdfBasicCount() {
return kcdfNewDAO.selectKcdfBasicCount();
}
public void kcdfMigration() {
try {
int selectKcdfBasicCount = kcdfNewDAO.selectKcdfBasicCount();
List<KcdfNewBbsVO> list = new ArrayList<KcdfNewBbsVO>();
KcdfNewBbsVO tempKcdfNewBbsVO = new KcdfNewBbsVO(); //limit 위해 사용
int enterval = 100;
int i = 0;
if(selectKcdfBasicCount > enterval){
for(i=0; i< selectKcdfBasicCount; i++){ //enterval 개씩 끊어서 insert
if (i % enterval == 0 ){ //0
tempKcdfNewBbsVO.setRecordCountPerPage(enterval);
tempKcdfNewBbsVO.setFirstIndex(i);
list = kcdfNewDAO.selectKcdfBbsList(tempKcdfNewBbsVO);
for(int j=0; j< list.size(); j++){
ncmsDAO.insertNcmsBbsInfo(list.get(j));
}
}
}
/*if(selectKcdfBasicCount != tempKcdfNewBbsVO.getFirstIndex()) { // enterval 개씩 끊어서 insert 남은 데이터 insert
tempKcdfNewBbsVO.setFirstIndex(selectKcdfBasicCount);
tempKcdfNewBbsVO.setRecordCountPerPage(enterval);
list = kcdfNewDAO.selectKcdfBbsList(tempKcdfNewBbsVO);
for(i=0; i< list.size(); i++){
kcdfNewDAO.insertNcmsBbsInfo(list.get(i));
}
}*/
}else{ //enterval 미만
tempKcdfNewBbsVO.setFirstIndex(0);
tempKcdfNewBbsVO.setRecordCountPerPage(enterval);
list = kcdfNewDAO.selectKcdfBbsList(tempKcdfNewBbsVO);
for(i=0; i< selectKcdfBasicCount; i++){
ncmsDAO.insertNcmsBbsInfo(list.get(i));
}
}
} catch (Exception e) {
System.err.println("migration Exception Error");
}
}
}

View File

@ -21,9 +21,9 @@ public class MariaMigrationController {
@RequestMapping(value="/maria/migration.do")
public String mariaTestPage(ModelMap model) throws Exception{
// int selectKcdfBasicCount = mariaMigrationService.selectKcdfBasicCount();
int selectKcdfBasicCount = mariaMigrationService.selectKcdfBasicCount();
// mariaMigrationService.kcdfMigration();
mariaMigrationService.kcdfMigration();
/*List<OrcaleTestVO> list = orcalTestDAO.selectOracleBasicList();*/
mariaMigrationService.selectOracleBasicList();

View File

@ -1,15 +1,9 @@
package kcc.com.cmm;
import egovframework.rte.fdl.cmmn.exception.handler.ExceptionHandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import egovframework.rte.fdl.cmmn.exception.handler.ExceptionHandler;
/**
* @Class Name : EgovComExcepHndlr.java
@ -26,22 +20,10 @@ import egovframework.rte.fdl.cmmn.exception.handler.ExceptionHandler;
* @see
*
*/
@ControllerAdvice
public class EgovComExcepHndlr implements ExceptionHandler {
private static final Logger LOGGER = LoggerFactory.getLogger(EgovComExcepHndlr.class);
@RequestMapping("/common/error.jsp")
@ResponseBody
public ResponseEntity<String> notFound() {
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_TYPE, "application/json");
return new ResponseEntity<>("{\"error\": \"Resource not found\"}", headers, HttpStatus.NOT_FOUND);
}
/**
* 발생된 Exception을 처리한다.
*/

View File

@ -46,7 +46,7 @@ public class ImagePaginationRenderer extends AbstractPaginationRenderer implemen
firstPageLabel = "<button class='btn_page_first' title='첫 페이지 이동' onclick=\"{0}({1});return false;\"><i></i></button>";
previousPageLabel = "<button class='btn_page_prev' title='이전 페이지 이동' onclick=\"{0}({1});return false;\"><i></i></button>";
currentPageLabel = "<button class='on' title=\"현재 {0}페이지\" onclick='return false;' readonly='readonly'>{0}</button>";
currentPageLabel = "<button class='on' title=\"현재 {0}페이지\" onclick='return false;' disabled>{0}</button>";
otherPageLabel = "<button title=\"{1} 페이지 이동\" onclick=\"{0}({1});return false;\">{2}</button>";
nextPageLabel = "<button class='btn_page_next' title='다음 페이지 이동' onclick=\"{0}({1});return false;\"><i></i></button>";
lastPageLabel = "<button class='btn_page_last' title='마지막 페이지 이동' onclick=\"{0}({1});return false;\"><i></i></button>";

View File

@ -37,13 +37,13 @@ public class ImagePaginationRendererWeb extends AbstractPaginationRenderer imple
nextPageLabel = "<li><a href='#' title='다음10페이지' onclick=\"{0}({1});return false;\"><img src=\"/publish/image/board/arrowRight.png\" alt=\"다음10페이지\"></a></li>";
lastPageLabel = "<li><a href='#' title='마지막페이지' onclick=\"{0}({1});return false;\"><img src=\"/publish/image/board/arrowRight2.png\" alt=\"마지막페이지\"></a></li>";*/
firstPageLabel = "<button class='btn_page_first' title=\"첫 페이지 이동\" onclick=\"{0}({1});return false;\"><i></i></button>";
previousPageLabel = "<button class='btn_page_prev' title=\"이전 페이지 이동\" onclick=\"{0}({1});return false;\"><i></i></button>";
firstPageLabel = "<button class='btn_page_first' title='첫 페이지 이동' onclick=\"{0}({1});return false;\"><i></i></button>";
previousPageLabel = "<button class='btn_page_prev' title='이전 페이지 이동' onclick=\"{0}({1});return false;\"><i></i></button>";
/*currentPageLabel = "<button class='on' title=\"현재 {0}페이지\" onclick='return false;' disabled>{0}</button>";*/
currentPageLabel = "<button class='on' title=\"현재 {0}페이지\" onclick=\"return false;\" style=\"pointer-events:none;\">{0}</button>";
currentPageLabel = "<button class='on' title=\"현재 {0}페이지\" onclick=\"return false;\" readonly>{0}</button>";
otherPageLabel = "<button title=\"{1} 페이지 이동\" onclick=\"{0}({1});return false;\">{2}</button>";
nextPageLabel = "<button class='btn_page_next' title=\"다음 페이지 이동\" onclick=\"{0}({1});return false;\"><i></i></button>";
lastPageLabel = "<button class='btn_page_last' title=\"마지막 페이지 이동\" onclick=\"{0}({1});return false;\"><i></i></button>";
nextPageLabel = "<button class='btn_page_next' title='다음 페이지 이동' onclick=\"{0}({1});return false;\"><i></i></button>";
lastPageLabel = "<button class='btn_page_last' title='마지막 페이지 이동' onclick=\"{0}({1});return false;\"><i></i></button>";
}
@Override

View File

@ -1,106 +0,0 @@
package kcc.com.cmm;
import java.io.Serializable;
/**
* 공용 JSON 리턴 모델
* @author wimy
*
*/
public class JsonResult implements Serializable{
/**
*
*/
private static final long serialVersionUID = -6362971805582357050L;
private boolean success;
private String code;
private String message;
private Object data;
private String redirectUrl = "";
/**
* json 성공 여부
* @return
*/
public boolean isSuccess() {
return success;
}
/**
* json 성공 여부
* @param success
*/
public void setSuccess(boolean success) {
this.success = success;
}
/**
* 코드
* @return
*/
public String getCode() {
return code;
}
/**
* 코드
* @param code
*/
public void setCode(String code) {
this.code = code;
}
/**
* 메시지
* @return
*/
public String getMessage() {
return message;
}
/**
* 메시지
* @param message
*/
public void setMessage(String message) {
this.message = message;
}
/**
* JSON 데이터
* @return
*/
public Object getData() {
return data;
}
/**
* JSON 데이터
* @param data
*/
public void setData(Object data) {
this.data = data;
}
/**
* 리다이렉트 URL
* @return
*/
public String getRedirectUrl() {
return redirectUrl;
}
/**
* 리다이렉트 URL
* @param redirectUrl
*/
public void setRedirectUrl(String redirectUrl) {
this.redirectUrl = redirectUrl;
}
}

View File

@ -1,12 +0,0 @@
package kcc.com.cmm.service;
import java.util.List;
import java.util.Map;
public interface AdrCourtFileMngService {
// public AdrCourtFileVO selectCourtFileInfs(AdrCourtFileVO adrCourtFileVO) throws Exception;
public void insertCourtFileInf(AdrCourtFileVO adrCourtFileVO) throws Exception;
}

View File

@ -1,72 +0,0 @@
package kcc.com.cmm.service;
import java.io.Serializable;
import org.apache.commons.lang3.builder.ToStringBuilder;
@SuppressWarnings("serial")
public class AdrCourtFileVO implements Serializable {
private String crtAtchFileId;
private String crtSeq;
private String crtSn;
private String crtAtchFileTy;
private String frstRegistPnttm;
private String frstRegisterId;
private String lastUpdtPnttm;
private String lastUpdusrId;
public String getCrtAtchFileId() {
return crtAtchFileId;
}
public void setCrtAtchFileId(String crtAtchFileId) {
this.crtAtchFileId = crtAtchFileId;
}
public String getCrtSeq() {
return crtSeq;
}
public void setCrtSeq(String crtSeq) {
this.crtSeq = crtSeq;
}
public String getCrtSn() {
return crtSn;
}
public void setCrtSn(String crtSn) {
this.crtSn = crtSn;
}
public String getCrtAtchFileTy() {
return crtAtchFileTy;
}
public void setCrtAtchFileTy(String crtAtchFileTy) {
this.crtAtchFileTy = crtAtchFileTy;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
}
public void setFrstRegistPnttm(String frstRegistPnttm) {
this.frstRegistPnttm = frstRegistPnttm;
}
public String getFrstRegisterId() {
return frstRegisterId;
}
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
public String getLastUpdtPnttm() {
return lastUpdtPnttm;
}
public void setLastUpdtPnttm(String lastUpdtPnttm) {
this.lastUpdtPnttm = lastUpdtPnttm;
}
public String getLastUpdusrId() {
return lastUpdusrId;
}
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
}

View File

@ -1,48 +0,0 @@
package kcc.com.cmm.service.impl;
import java.io.File;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import kcc.com.cmm.service.AdrCourtFileMngService;
import kcc.com.cmm.service.AdrCourtFileVO;
import kcc.com.cmm.service.FileVO;
import kcc.kccadr.adjCourtCnctn.service.impl.AdjCourtCnctnDAO;
/**
* @Class Name : EgovFileMngServiceImpl.java
* @Description : 파일정보의 관리를 위한 구현 클래스
* @Modification Information
*
* 수정일 수정자 수정내용
* ------- ------- -------------------
* 2009. 3. 25. 이삼섭 최초생성
*
* @author 공통 서비스 개발팀 이삼섭
* @since 2009. 3. 25.
* @version
* @see
*
*/
@Service("AdrCourtFileMngService")
public class AdrCourtFileMngServiceImpl extends EgovAbstractServiceImpl implements AdrCourtFileMngService {
@Resource(name = "AdjCourtCnctnDAO")
private AdjCourtCnctnDAO adjCourtCnctnDAO;
// @Override
// public AdrCourtFileVO selectCourtFileInfs(AdrCourtFileVO adrCourtFileVO) throws Exception {
// return adjCourtCnctnDAO.selectCourtFileInfs(adrCourtFileVO);
// }
@Override
public void insertCourtFileInf(AdrCourtFileVO adrCourtFileVO) throws Exception {
adjCourtCnctnDAO.insertCourtFileInf(adrCourtFileVO);
}
}

View File

@ -54,8 +54,6 @@ public class RadioTag extends SimpleTagSupport {
private String disabled = "";
private String spanYn = "";
public void setSelectedValue(String selectedValue) {
this.selectedValue = selectedValue;
}
@ -105,10 +103,6 @@ public class RadioTag extends SimpleTagSupport {
this.disabled = disabled;
}
public void setSpanYn(String spanYn) {
this.spanYn = spanYn;
}
public void setIncludes(String includes) {
if (!StringUtil.isEmpty(StringUtil.trim(includes))) {
StringTokenizer includeTokens = new StringTokenizer(includes, ",");
@ -129,15 +123,6 @@ public class RadioTag extends SimpleTagSupport {
@Override
public void doTag() throws JspException, IOException {
String spanStart = "";
String spanEnd = "";
if ("Y".equals(spanYn)) {
spanStart = "<span>";
spanEnd = "</span>";
}
JspWriter out = getJspContext().getOut();
StringBuffer tag = new StringBuffer("");
@ -145,7 +130,7 @@ public class RadioTag extends SimpleTagSupport {
id = id+i++;
if (defaultText != null) {
tag.append("\n\t\t"+spanStart +"<input type=\"radio\" id=\"" + id + "\" name=\"" + name + "\" value=\"" + defaultValue + "\" checked=\"checked\"");
tag.append("\n\t\t<input type=\"radio\" id=\"" + id + "\" name=\"" + name + "\" value=\"" + defaultValue + "\" checked=\"checked\"");
if (css != null) {
tag.append(" " + css + " ");
}
@ -161,7 +146,7 @@ public class RadioTag extends SimpleTagSupport {
tag.append(" disabled=\"" + "disabled" + "\"");
}
tag.append("> <label class=\""+styleClass+"\" for=\""+ id +"\">"+defaultText+"</label>"+spanEnd);
tag.append("> <label class=\""+styleClass+"\" for=\""+ id +"\">"+defaultText+"</label>");
}
@ -176,7 +161,7 @@ public class RadioTag extends SimpleTagSupport {
for (CmmnDetailCode code : codeList) {
if (includeSet == null || includeSet.contains(code.getCode())) {
id = id+i++;
tag.append("\n\t\t"+spanStart +"<input type=\"radio\" id=\"" + id + "\" name=\"" + name + "\" value=\"" + StringUtil.escapeXml(code.getCode()) + "\"");
tag.append("\n\t\t<input type=\"radio\" id=\"" + id + "\" name=\"" + name + "\" value=\"" + StringUtil.escapeXml(code.getCode()) + "\"");
if (css != null) {
tag.append(" " + css + " ");
}
@ -196,7 +181,7 @@ public class RadioTag extends SimpleTagSupport {
tag.append(" disabled=\"" + "disabled" + "\"");
}
tag.append("> <label class=\""+styleClass+"\" for=\""+ id +"\">"+StringUtil.escapeXml(code.getCodeNm())+"</label>"+spanEnd);
tag.append("> <label class=\""+styleClass+"\" for=\""+ id +"\">"+StringUtil.escapeXml(code.getCodeNm())+"</label>");
}
}

View File

@ -205,7 +205,6 @@ public class SelectTag extends SimpleTagSupport {
if (codeList != null) {
for (CmmnDetailCode code : codeList) {
String cd = code.getCode();
// System.out.println("cd : "+ cd);
boolean flag = true;
// 포함하는코드가 존재한다면..
if(CollectionUtils.isNotEmpty(includeSet)){
@ -224,9 +223,7 @@ public class SelectTag extends SimpleTagSupport {
}
if(flag){
String trimmedSelectedValue = (selectedValue != null) ? selectedValue.trim() : null;
// if (code.getCode().equals(selectedValue.trim()) {
if (code.getCode().equals(trimmedSelectedValue)) {
if (code.getCode().equals(selectedValue)) {
tag.append("\n\t\t<option value=\"" + StringUtil.escapeXml(code.getCode()) + "\" selected=\"selected\" >" + StringUtil.escapeXml(code.getCodeNm()) + "</option>");
} else {
tag.append("\n\t\t<option value=\"" + StringUtil.escapeXml(code.getCode()) + "\">" + StringUtil.escapeXml(code.getCodeNm()) + "</option>");
@ -234,14 +231,12 @@ public class SelectTag extends SimpleTagSupport {
}
}
}
tag.append("\n\t </select>");
} catch (Exception e) {
e.printStackTrace();
System.out.println("Exception Occured!!!");
}
// System.out.println("tag.toString() :: \n" + tag.toString());
tag.append("\n\t</select>\n");
out.print(tag.toString());
}

View File

@ -184,7 +184,7 @@ public final class DateUtil {
* //month cal.add(Calendar.DATE, -day);
*
* */
public static String AddDate(String strDate, int year, int month, int day) throws Exception {
public String AddDate(String strDate, int year, int month, int day) throws Exception {
SimpleDateFormat dtFormat = new SimpleDateFormat("yyyy-MM-dd");
Calendar cal = Calendar.getInstance();
Date dt = dtFormat.parse(strDate); cal.setTime(dt);

View File

@ -97,7 +97,7 @@ public class IpUtil {
String ozServerNm = "";
if(serverNm.contains("localhost") || serverNm.contains("119.193.215.98") || serverNm.contains("iten.co.kr") || serverNm.contains("192.168.0.176") || serverNm.contains("ljhtest")) {//로컬 개발서버 요청시 서버 경로 처리
if(serverNm.contains("localhost") || serverNm.contains("119.193.215.98") || serverNm.contains("iten.co.kr")) {//로컬 개발서버 요청시 서버 경로 처리
ozServerNm = "http://119.193.215.98:8086";
// ozServerNm = "http://192.168.0.176:8091";

View File

@ -8,7 +8,6 @@ import org.slf4j.LoggerFactory;
import com.dsmdb.japi.MagicDBAPI;
import kcc.kccadr.adjReqMgrPast.service.AdjReqMgrPastVO;
import kcc.let.uat.uia.web.SsoAgentInfo;
public final class MagicDBAPIUtil {
@ -35,12 +34,7 @@ public final class MagicDBAPIUtil {
}
public static String encryptOnlyOneString(String stringVal) {
SsoAgentInfo ssoagentinfo = new SsoAgentInfo();
if(!"local".equals(ssoagentinfo.getIslocal())) {
stringVal = MagicDBAPI.encrypt(POLICY_NAME, stringVal);
}
return stringVal;
return MagicDBAPI.encrypt(POLICY_NAME, stringVal);
// return stringVal;
}

View File

@ -578,21 +578,4 @@ public final class StringUtil2 {
}
public static String extractLogMethodNm(
String p_url
) throws Exception{
if(p_url.contains(";JSESSIONID")) {
p_url = p_url.substring(0, p_url.indexOf(";JSESSIONID"));
}else if (p_url.contains(";jsessionid")){
p_url = p_url.substring(0, p_url.indexOf(";jsessionid"));
}
String[] s_arr = p_url.split("/");
if (s_arr.length>=3) {
return s_arr[s_arr.length-3]+"/"+s_arr[s_arr.length-2]+"/"+s_arr[s_arr.length-1];
}
return p_url;
}
}

View File

@ -1,6 +1,5 @@
package kcc.com.cmm.web;
import java.io.File;
import java.time.LocalDateTime;
import javax.annotation.Resource;
@ -192,23 +191,14 @@ public class StreamDocsController {
//return new ResponseEntity<RestResponse>("success", HttpStatus.OK);
//return ResponseEntity.ok(new RestResponse(HttpStatus.OK, "등록 되었습니다."));
try {
String path = pdfMakepathOut + pdfConversionVO.getAdrSeq() + "/";
File chkFolder = new File(path);
if(chkFolder.exists()) {
this.deleteFolder(path);
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
//HttpResponse<String> responseInfo = StreamDocsUtil.regPdfDoc(filePath, streamdocsURL);
//return new ResponseEntity.ok(new RestResponse(HttpStatus.OK, "등록 되었습니다.", responseInfo.getBody(), LocalDateTime.now()));
return ResponseEntity.ok(new RestResponse(HttpStatus.OK, "등록 되었습니다.", LocalDateTime.now()));
}else {
System.out.println("종료가 안된 경우XXXXXXXXXXXXXXX");
//return ResponseEntity.ok(new RestResponse(HttpStatus.OK, "등록 되었습니다.", LocalDateTime.now()));
return ResponseEntity.ok(new RestResponse(HttpStatus.BAD_REQUEST, "사건이 종료되지 않았습니다.", LocalDateTime.now()));
return ResponseEntity.ok(new RestResponse(HttpStatus.BAD_REQUEST, "오류 되었습니다.", LocalDateTime.now()));
}
//PdfConversionVO tmpPdfConversionVO = pdfConversionService.selectConversionPdf(pdfConversionVO);
@ -334,29 +324,4 @@ public class StreamDocsController {
return ResponseEntity.ok(new RestResponse(HttpStatus.BAD_REQUEST, "조정신청서 생성시 오류가 발생되었습니다.", LocalDateTime.now()));
}
public void deleteFolder(String path) {
File folder = new File(path);
try {
if(folder.exists()){
File[] folder_list = folder.listFiles(); //파일리스트 얻어오기
for (int i = 0; i < folder_list.length; i++) {
if(folder_list[i].isFile()) {
folder_list[i].delete();
System.out.println("파일이 삭제되었습니다.");
}else {
deleteFolder(folder_list[i].getPath()); //재귀함수호출
System.out.println("폴더가 삭제되었습니다.");
}
folder_list[i].delete();
}
folder.delete(); //폴더 삭제
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}

View File

@ -29,14 +29,12 @@ import org.springframework.web.servlet.support.RequestContextUtils;
import com.fasterxml.jackson.core.io.JsonStringEncoder;
import com.inicis.std.util.SignatureUtil;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.EgovMessageSource;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.util.DateUtil;
import kcc.com.cmm.util.IpUtil;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.fcc.service.EgovStringUtil;
@ -146,8 +144,6 @@ public class AdjstReqStatusController {
@Value("#{globalSettings['Globals.pay.siteDomain']}")
private String global_siteDomain;
@Resource(name="recordReadingHstryGnrService")
private EgovIdGnrService recordReadingHstryGnrService;
/**
@ -551,18 +547,11 @@ public class AdjstReqStatusController {
}
// 작성단계 셋팅
adrRecordReadingVO.setFrstRegisterId(userId); // 최초수정자
adrRecordReadingVO.setLastUpdusrId(userId); // 최초등록자
adrRecordReadingVO.setPrcsnStatCd(KccadrConstants.ADR_RCD_RDNG_PRCSN_STAT_CD_10); //신청 상태
adrRecordReadingVO.setFrstRegisterId(userId); // 최초등록자
adrRecordReadingVO.setPrcsnStatCd(KccadrConstants.ADR_RCD_RDNG_PRCSN_STAT_CD_10); //신청완료 상태
try {
adrRecordReadingService.insertRecordReading(adrRecordReadingVO);
// history 영역
adrRecordReadingVO.setFrstRegisterId(userId);
adrRecordReadingVO.setRecordReadingHstrySeq(recordReadingHstryGnrService.getNextStringId());
adrRecordReadingService.insertRecordReadingHist(adrRecordReadingVO);
modelAndView.addObject("result", "success");
} catch(Exception e) {
modelAndView.addObject("result", "fail");
@ -572,78 +561,6 @@ public class AdjstReqStatusController {
}
// 대국민 조정사건 기록열람 신청 상세
@RequestMapping(value = "/web/kccadr/payment/accdnt/ai/docIssDetail.do")
public String docIssDetail(@ModelAttribute("adrRecordReadingVO") AdrRecordReadingVO adrRecordReadingVO,
ModelMap model,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
String auth = EgovUserDetailsHelper.isAuthenticated() ? null : EgovUserDetailsHelper.getAuthenticatedUser().toString();
LoginVO loginVO = "anonymousUser".equals(auth) ? new LoginVO() : (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
SsoLoginVO ssoLoginVO = (SsoLoginVO) request.getSession().getAttribute("SSOLoginVO");
if (loginVO == null) {
model.addAttribute("msg", "로그인 해주세요.");
return "redirect:/web/user/login/ssoLogin.do";
}
AdrRecordReadingVO detailVO = adrRecordReadingService.selectDetail(adrRecordReadingVO);
// 결제 마감일 계산
// DateUtil.AddDate 더하고싶은 날짜, , ,
detailVO.setPayEndDay(DateUtil.AddDate(detailVO.getFrstRegistPnttm(), 0, 0, 7));
model.addAttribute("info", detailVO);
return "/web/kccadr/accdnt/ars/tab/docIssDetail";
}
// 대국민 조정사건 기록열람 신청 ajax
@RequestMapping(value = "/web/kccadr/payment/accdnt/ai/docIssPrcsnStatCdModifyAjax.do")
public ModelAndView docIssPrcsnStatCdModifyAjax(AdrRecordReadingVO adrRecordReadingVO, ModelMap model) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
if (loginVO == null) {
modelAndView.addObject("result", "fail");
modelAndView.addObject("message", "로그인 해주세요.");
return modelAndView;
}
// 작성단계 셋팅
adrRecordReadingVO.setLastUpdusrId(userId); // 최초등록자
// 기존 mapper 사용하기 위한 생성자
PayVO payVO = new PayVO();
payVO.setLastUpdusrId(userId); // 수정자
payVO.setPrcsnStatCd("90");
payVO.setAsctnTablePk1(adrRecordReadingVO.getRecordReadingSeq());
adrRecordReadingService.updatePrcsnStatCd(payVO);
adrRecordReadingVO.setFrstRegisterId(userId);
// history 영역
adrRecordReadingVO.setRecordReadingHstrySeq(recordReadingHstryGnrService.getNextStringId());
adrRecordReadingVO.setPrcsnStatCd("90");
adrRecordReadingService.insertRecordReadingHist(adrRecordReadingVO);
modelAndView.addObject("result", "success");
return modelAndView;
}
// 대국민 조정사건 기록열람 신청 목록
@RequestMapping(value = "/web/kccadr/payment/accdnt/ai/docIssReqList.do")
public String docIssReqList(@ModelAttribute("adrRecordReadingVO") AdrRecordReadingVO adrRecordReadingVO,
@ -673,6 +590,11 @@ public class AdjstReqStatusController {
adrRecordReadingVO.setSearchSortOrd("desc");
}
// 키워드가 있다면 일단 암호화 하여 암호화 컬럼에
if(StringUtils.isNotBlank(adrRecordReadingVO.getSearchKeyword())){
adrRecordReadingVO.setSearchEncKeyword(egovCryptoUtil.encrypt(adrRecordReadingVO.getSearchKeyword()));
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(adrRecordReadingVO.getPageIndex());
@ -684,27 +606,18 @@ public class AdjstReqStatusController {
adrRecordReadingVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
List<AdrRecordReadingVO> list = adrRecordReadingService.selectDocReqList(adrRecordReadingVO);
list.stream().forEach(t->{
AdrRecordReadingVO aVO = adrRecordReadingService.selectStatCdAndStatTxt(t);
t.setStatCd(aVO.getStatCd());
t.setStatTxt(aVO.getStatTxt());
t.setResPonDentNm(egovCryptoUtil.decrypt(t.getResPonDentNm()));
t.setAppliCantNm(egovCryptoUtil.decrypt(t.getAppliCantNm()));
});
paginationInfo.setTotalRecordCount(list.size() > 0 ? list.get(0).getTotCnt() : 0);
model.addAttribute("paginationInfo", paginationInfo);
/*int listSize = list.size();
int listSize = list.size();
for(int i=0; i<listSize; i++) {
list.get(i).setResPonDentNm(egovCryptoUtil.decrypt(list.get(i).getResPonDentNm()));dmat
list.get(i).setResPonDentNm(egovCryptoUtil.decrypt(list.get(i).getResPonDentNm()));
list.get(i).setAppliCantNm(egovCryptoUtil.decrypt(list.get(i).getAppliCantNm()));
}*/
}
model.addAttribute("list", list);
model.addAttribute("ssoLoginVO", ssoLoginVO);
/*
// ======================결제 시작===================
String mid = global_mid; // 상점아이디
@ -733,7 +646,7 @@ public class AdjstReqStatusController {
String signature_view = SignatureUtil.makeSignature(signParam_view);
String signature_print = SignatureUtil.makeSignature(signParam_print);
기타
/* 기타 */
String siteDomain = global_siteDomain; //가맹점 도메인 입력
//서버정보 받아오기
@ -768,7 +681,7 @@ public class AdjstReqStatusController {
// ======================결제 ===================
model.addAttribute("IsLocal", prodIsLocal);
*/
return "/web/kccadr/accdnt/ars/tab/docIssReqList";
}
@ -889,7 +802,6 @@ public class AdjstReqStatusController {
PayVO payVO = payService.selectPayForPk(pk);
if("0000".equals(payVO.getResultcode())) {
//3.
payVO.setPrcsnStatCd("20");
adrRecordReadingService.updatePrcsnStatCd(payVO);
}else {
//fail
@ -1146,12 +1058,11 @@ public class AdjstReqStatusController {
List<PgrCmmVO> resultStampInfo = cmmService.selectAtchFileIdInfo(cmmVO);
String atchFileId = "";
if(resultStampInfo.size() > 0) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
}
}
/*if(!adrSeq.equals("")) {
@ -1160,91 +1071,91 @@ public class AdjstReqStatusController {
}*/
if(StringUtil.isNotEmpty(adrNo)) {
if(!adrNo.equals("")) {
oj.put("adrNo", adrNo);
}
if(StringUtil.isNotEmpty(adrSn)) {
if(!adrSn.equals("")) {
oj.put("adrSn", adrSn);
}
if(StringUtil.isNotEmpty(cctyTx)) {
if(!cctyTx.equals("")) {
oj.put("cctyTx", cctyTx);
}
if(StringUtil.isNotEmpty(memDeptNm)) {
if(!memDeptNm.equals("")) {
oj.put("memDeptNm", memDeptNm);
}
if(StringUtil.isNotEmpty(memName)) {
if(!memName.equals("")) {
oj.put("memName", memName);
}
if(StringUtil.isNotEmpty(adrAdmNm)) {
if(!adrAdmNm.equals("")) {
oj.put("adrAdmNm", adrAdmNm);
}
if(StringUtil.isNotEmpty(adrAdmOffmTel)) {
if(!adrAdmOffmTel.equals("")) {
oj.put("adrAdmOffmTel", adrAdmOffmTel);
}
if(StringUtil.isNotEmpty(applicantNm)) {
if(!applicantNm.equals("")) {
oj.put("applicantNm", applicantNm);
}
if(StringUtil.isNotEmpty(resPonDentNm)) {
if(!resPonDentNm.equals("")) {
oj.put("resPonDentNm", resPonDentNm);
}
if(StringUtil.isNotEmpty(resPonDentNmEtc)) {
if(!resPonDentNmEtc.equals("")) {
oj.put("resPonDentNmEtc", resPonDentNmEtc);
}
/*if(StringUtil.isNotEmpty(appDeDay)) {
/*if(!appDeDay.equals("")) {
oj.put("appDeDay", appDeDay);
}*/
if(StringUtil.isNotEmpty(appDeDate)) {
if(!appDeDate.equals("")) {
oj.put("appDeDate", appDeDate);
}
if(StringUtil.isNotEmpty(appPlace)) {
if(!appPlace.equals("")) {
oj.put("appPlace", appPlace);
}
if(StringUtil.isNotEmpty(appPlaceAddr)) {
if(!appPlaceAddr.equals("")) {
oj.put("appPlaceAddr", appPlaceAddr);
}
if(StringUtil.isNotEmpty(atchFileId)) {
if(!atchFileId.equals("")) {
String domain = "";

View File

@ -1,103 +0,0 @@
package kcc.kccadr.adjCourtCnctn.service;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import kcc.com.cmm.ComDefaultVO;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
public class AdjCourtAppVO extends ComDefaultVO implements Serializable {
/**
*
*/
private static final long serialVersionUID = -1111076331699607617L;
private String crtSeq; //법원연계 seq
private String crtSn; //법원연계 기일수
private String crtFtfDe; //대면기일
private String crtAddr; //장소
private String crtAttnder; //참석자
private String crtRslt; //기일결과
private String crtAtchFileId; //첨부파일 아이디
private String frstRegistPnttm;
private String frstRegisterId;
private String lastUpdtPnttm;
private String lastUpdusrId;
public String getCrtSeq() {
return crtSeq;
}
public void setCrtSeq(String crtSeq) {
this.crtSeq = crtSeq;
}
public String getCrtSn() {
return crtSn;
}
public void setCrtSn(String crtSn) {
this.crtSn = crtSn;
}
public String getCrtFtfDe() {
return crtFtfDe;
}
public void setCrtFtfDe(String crtFtfDe) {
this.crtFtfDe = crtFtfDe;
}
public String getCrtAddr() {
return crtAddr;
}
public void setCrtAddr(String crtAddr) {
this.crtAddr = crtAddr;
}
public String getCrtAttnder() {
return crtAttnder;
}
public void setCrtAttnder(String crtAttnder) {
this.crtAttnder = crtAttnder;
}
public String getCrtRslt() {
return crtRslt;
}
public void setCrtRslt(String crtRslt) {
this.crtRslt = crtRslt;
}
public String getCrtAtchFileId() {
return crtAtchFileId;
}
public void setCrtAtchFileId(String crtAtchFileId) {
this.crtAtchFileId = crtAtchFileId;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
}
public void setFrstRegistPnttm(String frstRegistPnttm) {
this.frstRegistPnttm = frstRegistPnttm;
}
public String getFrstRegisterId() {
return frstRegisterId;
}
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
public String getLastUpdtPnttm() {
return lastUpdtPnttm;
}
public void setLastUpdtPnttm(String lastUpdtPnttm) {
this.lastUpdtPnttm = lastUpdtPnttm;
}
public String getLastUpdusrId() {
return lastUpdusrId;
}
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
}

View File

@ -1,19 +0,0 @@
package kcc.kccadr.adjCourtCnctn.service;
import java.util.List;
public interface AdjCourtAprvlService {
public void insertAprvlReg(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception;
List<AdjCourtaprvlVO> adjCourtAprvlList(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception;
public int adjCourtAprvlListCnt(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception;
AdjCourtaprvlVO adjCourtAprvlDetail(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception;
public List<AdjCourtaprvlVO> adjCourtAprvlLine(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception;
public void adjCourtAprvlLineUpdate(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception;
public AdjCourtaprvlVO adjCourtAprvlLineChk(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception;
}

View File

@ -2,64 +2,20 @@ package kcc.kccadr.adjCourtCnctn.service;
import java.util.List;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineVO;
import kcc.kccadr.cmm.RestResponse;
public interface AdjCourtCnctnService {
RestResponse insertCourtCnctn(AdjCourtCnctnVO adjCourtCnctnVO, final MultipartHttpServletRequest multiRequest) throws Exception;
RestResponse insertCourtCnctn(AdjCourtCnctnVO adjCourtCnctnVO);
RestResponse insertCourtCnctnFile(AdjCourtCnctnVO adjCourtCnctnVO, final MultipartHttpServletRequest multiRequest) throws Exception;
int adjCourtCnctnListCount(AdjCourtCnctnVO adjCourtCnctnVO);
int adjCourtCnctnListCount(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception;
List<AdjCourtCnctnVO> adjCourtCnctnList(AdjCourtCnctnVO adjCourtCnctnVO);
List<AdjCourtCnctnVO> adjCourtCnctnList(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception;
AdjCourtCnctnVO findByid(AdjCourtCnctnVO adjCourtCnctnVO);
AdjCourtCnctnVO findByid(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception;
RestResponse updateCourtCnctn(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception;
void updateUseYn(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception;
public List<AdjCourtCnctnVO> selectAdjCourtCnctniFileList(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception;
public void insertCourtDept(AdjCourtDeptVO adjCourtDeptVO) throws Exception;
public void updateCourtDept(AdjCourtDeptVO adjCourtDeptVO) throws Exception;
public List<AdjCourtDeptVO> selectAdjCourtCnctniDeptPop() throws Exception;
RestResponse insertAdjCourtCnctnDeptPopAjax(AdjCourtDeptVO deptVO) throws Exception;
public void updateAdjCourtCnctnStatCd(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception;
List<AdjCourtAppVO> selectAdjCourtCnctnAppList(AdjCourtAppVO adjCourtAppVO) throws Exception;
public int selectAdjCourtCnctnAppNextSn(AdjCourtAppVO adjCourtAppVO) throws Exception;
public RestResponse insertAdjCourtCnctnAppReg(AdjCourtAppVO adjCourtAppVO, final MultipartHttpServletRequest multiRequest) throws Exception;
public AdjCourtAppVO selectAdjCourtCnctnAppDetail(AdjCourtAppVO adjCourtAppVO) throws Exception;
public RestResponse updateAdjCourtCnctnEnd(AdjCourtCnctnVO adjCourtCnctnVO, final MultipartHttpServletRequest multiRequest) throws Exception;
public RestResponse updateAdjCourtCnctnEndAfterPopAjax(AdjCourtCnctnVO adjCourtCnctnVO, AdjCourtDeptVO adjCourtDeptVO) throws Exception;
public AdjCourtDeptVO selectCourtDept(AdjCourtDeptVO adjCourtDeptVO) throws Exception;
public RestResponse insertAdjCourtRprtDePopAjax(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception;
void updateOfcpsNmFromAdrCourtDeptMgr(AdjCourtCnctnVO adjCourtCnctnVO);
public RestResponse updateCrtAdjCmsnrMenoAjax(AdjCourtCnctnVO adjCourtCnctnVO);
public RestResponse updateCrtAdjAdminMenoAjax(AdjCourtCnctnVO adjCourtCnctnVO);
public RestResponse updateCrtStatCdAjax(AdjCourtCnctnVO adjCourtCnctnVO);
List<AdjCourtRprtMgrVO> findByIdFromAdjCourtRprtMgr(AdjCourtCnctnVO adjCourtCnctnVO);
AdjCourtRprtMgrVO findByRprtSeqFromAdrCourtRprtMgr(AdjCourtCnctnVO adjCourtCnctnVO);
RestResponse updateCourtCnctn(AdjCourtCnctnVO adjCourtCnctnVO);
void updateUseYn(AdjCourtCnctnVO adjCourtCnctnVO);
}

View File

@ -14,257 +14,207 @@ public class AdjCourtCnctnVO extends ComDefaultVO implements Serializable {
*/
private static final long serialVersionUID = -1111076331699607617L;
private String crtSeq; //법원연계 seq
private String crtSn; //법원연계 기일수
private String crtOriNo; //본사건번호
private String crtNo; //조정사건번호
private String crtDcsnDe; //결정일
private String crtRcptDe; //수령일
private String crtAllctDe; //배당일
private String crtRprtDe; //보고일
private String crtClimntNm; //원고이름
private String crtClimntPhone; //원고연락처
private String crtClimntAgntNm; //원고-대리인 이름
private String crtClimntAgtPhone; //원고-대리인 연락처
private String crtClimntInfo; //원고정보
private String crtDfndntNm; //피고이름
private String crtDfndntPhone; //피고연락처
private String crtDfndntAgntNm; //피고-대리인 이름
private String crtDfndntAgntPhone; //피고-대리인 연락처
private String crtDfndntInfo; //피고정보
private String crtCn; //사건내용
private String crtAtchFileId; //회신 첨부파일 아이디
private String crtAtchFileIdEnd; // 사무수행보고서 첨부파일 아이디
private String crtAllctDdlDe; //사무처리기한-배당일+45 자동으로 계산 이후 연장시 +30
private String crtCcTy; //사건분류 - 저작물종류
private String crtLinkHouse; //연계법원
private String crtStatCd; //처리상태
private String crtAgrment; //합의금
private String crtEndRslt; //결과
private String crtEndRsltDetail; //세부결과
private String frstRegistPnttm;
private String frstRegisterId;
private String lastUpdtPnttm;
private String lastUpdusrId;
private String courtSeq = "";
private String courtNum = "";
private String courtOrgNo = "";
private String courtNo = "";
private String dcsnDe = "";
private String rcvDe = "";
private String alctnDe = "";
private String alctnMonth = "";
private String officeWorkDe = "";
private String rprtDe = "";
private String rprtMonth = "";
private String processDay = "";
private String courtFld = "";
private String accdntCn = "";
private String reqInfo = "";
private String aplcnInfo = "";
private String rspndInfo = "";
private String aplcnDpty = "";
private String rspndDpty = "";
private String courtRslt = "";
private String courtDetailRslt = "";
private String adjCmsnr = "";
private String pay = "";
private String appDe = "";
private String pymntDay = "";
private String extns = "";
private String useYn = "";
private String rmrks = "";
private String frstRegistPnttm = "";
private String frstRegisterId = "";
private String lastUpdtPnttm = "";
private String lastUpdusrId = "";
private String searchCondition2 = "";
private String diffMonth = "";
private String tabSeq;
private String atchFileId;
private String fileSn;
private String crtAtchFileTy;
private String orignlFileNm;
private String pstinstCode;
private String crtDeptTy;
private String crtDeptKng;
private String crtDeptOrdi;
private String esntlId;
private String crtEndDe;
private String deptNm;
private String searchStatCd;
private String ckStsList[];
private String ckStsListAll;
private String crtLinkHouseList[];
private String crtLinkHouseAll;
private String searchMonth;
private String searchStartDt;
private String searchEndDt;
private String deptNmArr;
private String searchLoginId;
private String crtAllctDdlDeAdd1st;
private String crtAllctDdlDeAdd2nd;
private int pageUnit = 50;
private int pageSize = 50;
private int recordCountPerPage = 50;
private String deptOrdinaryYn;
private String uniqId;
private String crtCnfrm;
private String ofcpsNm;
private String crtAdjAdminMeno;
private String crtAdjCmsnrMeno;
private String rprtSeq;
private String rprtPhone;
private String rprtPgr;
private String rprtSeqTemp;
private List<AdjCourtRprtMgrVO> adjCourtRprtMgrList;
public String getCrtSeq() {
return crtSeq;
public String getCourtSeq() {
return courtSeq;
}
public void setCrtSeq(String crtSeq) {
this.crtSeq = crtSeq;
public void setCourtSeq(String courtSeq) {
this.courtSeq = courtSeq;
}
public String getCrtSn() {
return crtSn;
public String getCourtNum() {
return courtNum;
}
public void setCrtSn(String crtSn) {
this.crtSn = crtSn;
public void setCourtNum(String courtNum) {
this.courtNum = courtNum;
}
public String getCrtOriNo() {
return crtOriNo;
public String getCourtOrgNo() {
return courtOrgNo;
}
public void setCrtOriNo(String crtOriNo) {
this.crtOriNo = crtOriNo;
public void setCourtOrgNo(String courtOrgNo) {
this.courtOrgNo = courtOrgNo;
}
public String getCrtNo() {
return crtNo;
public String getCourtNo() {
return courtNo;
}
public void setCrtNo(String crtNo) {
this.crtNo = crtNo;
public void setCourtNo(String courtNo) {
this.courtNo = courtNo;
}
public String getCrtDcsnDe() {
return crtDcsnDe;
public String getDcsnDe() {
return dcsnDe;
}
public void setCrtDcsnDe(String crtDcsnDe) {
this.crtDcsnDe = crtDcsnDe;
public void setDcsnDe(String dcsnDe) {
this.dcsnDe = dcsnDe;
}
public String getCrtRcptDe() {
return crtRcptDe;
public String getRcvDe() {
return rcvDe;
}
public void setCrtRcptDe(String crtRcptDe) {
this.crtRcptDe = crtRcptDe;
public void setRcvDe(String rcvDe) {
this.rcvDe = rcvDe;
}
public String getCrtAllctDe() {
return crtAllctDe;
public String getAlctnDe() {
return alctnDe;
}
public void setCrtAllctDe(String crtAllctDe) {
this.crtAllctDe = crtAllctDe;
public void setAlctnDe(String alctnDe) {
this.alctnDe = alctnDe;
}
public String getCrtRprtDe() {
return crtRprtDe;
public String getAlctnMonth() {
return alctnMonth;
}
public void setCrtRprtDe(String crtRprtDe) {
this.crtRprtDe = crtRprtDe;
public void setAlctnMonth(String alctnMonth) {
this.alctnMonth = alctnMonth;
}
public String getCrtClimntNm() {
return crtClimntNm;
public String getOfficeWorkDe() {
return officeWorkDe;
}
public void setCrtClimntNm(String crtClimntNm) {
this.crtClimntNm = crtClimntNm;
public void setOfficeWorkDe(String officeWorkDe) {
this.officeWorkDe = officeWorkDe;
}
public String getCrtClimntPhone() {
return crtClimntPhone;
public String getRprtDe() {
return rprtDe;
}
public void setCrtClimntPhone(String crtClimntPhone) {
this.crtClimntPhone = crtClimntPhone;
public void setRprtDe(String rprtDe) {
this.rprtDe = rprtDe;
}
public String getCrtClimntAgntNm() {
return crtClimntAgntNm;
public String getRprtMonth() {
return rprtMonth;
}
public void setCrtClimntAgntNm(String crtClimntAgntNm) {
this.crtClimntAgntNm = crtClimntAgntNm;
public void setRprtMonth(String rprtMonth) {
this.rprtMonth = rprtMonth;
}
public String getCrtClimntAgtPhone() {
return crtClimntAgtPhone;
public String getProcessDay() {
return processDay;
}
public void setCrtClimntAgtPhone(String crtClimntAgtPhone) {
this.crtClimntAgtPhone = crtClimntAgtPhone;
public void setProcessDay(String processDay) {
this.processDay = processDay;
}
public String getCrtClimntInfo() {
return crtClimntInfo;
public String getCourtFld() {
return courtFld;
}
public void setCrtClimntInfo(String crtClimntInfo) {
this.crtClimntInfo = crtClimntInfo;
public void setCourtFld(String courtFld) {
this.courtFld = courtFld;
}
public String getCrtDfndntNm() {
return crtDfndntNm;
public String getAccdntCn() {
return accdntCn;
}
public void setCrtDfndntNm(String crtDfndntNm) {
this.crtDfndntNm = crtDfndntNm;
public void setAccdntCn(String accdntCn) {
this.accdntCn = accdntCn;
}
public String getCrtDfndntPhone() {
return crtDfndntPhone;
public String getReqInfo() {
return reqInfo;
}
public void setCrtDfndntPhone(String crtDfndntPhone) {
this.crtDfndntPhone = crtDfndntPhone;
public void setReqInfo(String reqInfo) {
this.reqInfo = reqInfo;
}
public String getCrtDfndntAgntNm() {
return crtDfndntAgntNm;
public String getAplcnInfo() {
return aplcnInfo;
}
public void setCrtDfndntAgntNm(String crtDfndntAgntNm) {
this.crtDfndntAgntNm = crtDfndntAgntNm;
public void setAplcnInfo(String aplcnInfo) {
this.aplcnInfo = aplcnInfo;
}
public String getCrtDfndntAgntPhone() {
return crtDfndntAgntPhone;
public String getRspndInfo() {
return rspndInfo;
}
public void setCrtDfndntAgntPhone(String crtDfndntAgntPhone) {
this.crtDfndntAgntPhone = crtDfndntAgntPhone;
public void setRspndInfo(String rspndInfo) {
this.rspndInfo = rspndInfo;
}
public String getCrtDfndntInfo() {
return crtDfndntInfo;
public String getAplcnDpty() {
return aplcnDpty;
}
public void setCrtDfndntInfo(String crtDfndntInfo) {
this.crtDfndntInfo = crtDfndntInfo;
public void setAplcnDpty(String aplcnDpty) {
this.aplcnDpty = aplcnDpty;
}
public String getCrtCn() {
return crtCn;
public String getRspndDpty() {
return rspndDpty;
}
public void setCrtCn(String crtCn) {
this.crtCn = crtCn;
public void setRspndDpty(String rspndDpty) {
this.rspndDpty = rspndDpty;
}
public String getCrtAtchFileId() {
return crtAtchFileId;
public String getCourtRslt() {
return courtRslt;
}
public void setCrtAtchFileId(String crtAtchFileId) {
this.crtAtchFileId = crtAtchFileId;
public void setCourtRslt(String courtRslt) {
this.courtRslt = courtRslt;
}
public String getCrtAllctDdlDe() {
return crtAllctDdlDe;
public String getCourtDetailRslt() {
return courtDetailRslt;
}
public void setCrtAllctDdlDe(String crtAllctDdlDe) {
this.crtAllctDdlDe = crtAllctDdlDe;
public void setCourtDetailRslt(String courtDetailRslt) {
this.courtDetailRslt = courtDetailRslt;
}
public String getCrtCcTy() {
return crtCcTy;
public String getAdjCmsnr() {
return adjCmsnr;
}
public void setCrtCcTy(String crtCcTy) {
this.crtCcTy = crtCcTy;
public void setAdjCmsnr(String adjCmsnr) {
this.adjCmsnr = adjCmsnr;
}
public String getCrtLinkHouse() {
return crtLinkHouse;
public String getPay() {
return pay;
}
public void setCrtLinkHouse(String crtLinkHouse) {
this.crtLinkHouse = crtLinkHouse;
public void setPay(String pay) {
this.pay = pay;
}
public String getCrtStatCd() {
return crtStatCd;
public String getAppDe() {
return appDe;
}
public void setCrtStatCd(String crtStatCd) {
this.crtStatCd = crtStatCd;
public void setAppDe(String appDe) {
this.appDe = appDe;
}
public String getCrtAgrment() {
return crtAgrment;
public String getPymntDay() {
return pymntDay;
}
public void setCrtAgrment(String crtAgrment) {
this.crtAgrment = crtAgrment;
public void setPymntDay(String pymntDay) {
this.pymntDay = pymntDay;
}
public String getExtns() {
return extns;
}
public void setExtns(String extns) {
this.extns = extns;
}
public String getUseYn() {
return useYn;
}
public void setUseYn(String useYn) {
this.useYn = useYn;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
@ -290,6 +240,12 @@ public class AdjCourtCnctnVO extends ComDefaultVO implements Serializable {
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
public String getRmrks() {
return rmrks;
}
public void setRmrks(String rmrks) {
this.rmrks = rmrks;
}
public String getSearchCondition2() {
return searchCondition2;
}
@ -302,252 +258,10 @@ public class AdjCourtCnctnVO extends ComDefaultVO implements Serializable {
public void setDiffMonth(String diffMonth) {
this.diffMonth = diffMonth;
}
public String getTabSeq() {
return tabSeq;
}
public void setTabSeq(String tabSeq) {
this.tabSeq = tabSeq;
}
public String getAtchFileId() {
return atchFileId;
}
public void setAtchFileId(String atchFileId) {
this.atchFileId = atchFileId;
}
public String getFileSn() {
return fileSn;
}
public void setFileSn(String fileSn) {
this.fileSn = fileSn;
}
public String getCrtAtchFileTy() {
return crtAtchFileTy;
}
public void setCrtAtchFileTy(String crtAtchFileTy) {
this.crtAtchFileTy = crtAtchFileTy;
}
public String getOrignlFileNm() {
return orignlFileNm;
}
public void setOrignlFileNm(String orignlFileNm) {
this.orignlFileNm = orignlFileNm;
}
public String getPstinstCode() {
return pstinstCode;
}
public void setPstinstCode(String pstinstCode) {
this.pstinstCode = pstinstCode;
}
public String getCrtDeptTy() {
return crtDeptTy;
}
public void setCrtDeptTy(String crtDeptTy) {
this.crtDeptTy = crtDeptTy;
}
public String getCrtDeptKng() {
return crtDeptKng;
}
public void setCrtDeptKng(String crtDeptKng) {
this.crtDeptKng = crtDeptKng;
}
public String getCrtDeptOrdi() {
return crtDeptOrdi;
}
public void setCrtDeptOrdi(String crtDeptOrdi) {
this.crtDeptOrdi = crtDeptOrdi;
}
public String getEsntlId() {
return esntlId;
}
public void setEsntlId(String esntlId) {
this.esntlId = esntlId;
}
public String getCrtEndRslt() {
return crtEndRslt;
}
public void setCrtEndRslt(String crtEndRslt) {
this.crtEndRslt = crtEndRslt;
}
public String getCrtEndRsltDetail() {
return crtEndRsltDetail;
}
public void setCrtEndRsltDetail(String crtEndRsltDetail) {
this.crtEndRsltDetail = crtEndRsltDetail;
}
public String getCrtAtchFileIdEnd() {
return crtAtchFileIdEnd;
}
public void setCrtAtchFileIdEnd(String crtAtchFileIdEnd) {
this.crtAtchFileIdEnd = crtAtchFileIdEnd;
}
public String getCrtEndDe() {
return crtEndDe;
}
public void setCrtEndDe(String crtEndDe) {
this.crtEndDe = crtEndDe;
}
public String getDeptNm() {
return deptNm;
}
public void setDeptNm(String deptNm) {
this.deptNm = deptNm;
}
public String getSearchStatCd() {
return searchStatCd;
}
public void setSearchStatCd(String searchStatCd) {
this.searchStatCd = searchStatCd;
}
public String[] getCrtLinkHouseList() {
return crtLinkHouseList;
}
public void setCrtLinkHouseList(String[] crtLinkHouseList) {
this.crtLinkHouseList = crtLinkHouseList;
}
public String getCrtLinkHouseAll() {
return crtLinkHouseAll;
}
public void setCrtLinkHouseAll(String crtLinkHouseAll) {
this.crtLinkHouseAll = crtLinkHouseAll;
}
public String[] getCkStsList() {
return ckStsList;
}
public void setCkStsList(String[] ckStsList) {
this.ckStsList = ckStsList;
}
public String getCkStsListAll() {
return ckStsListAll;
}
public void setCkStsListAll(String ckStsListAll) {
this.ckStsListAll = ckStsListAll;
}
public String getSearchMonth() {
return searchMonth;
}
public void setSearchMonth(String searchMonth) {
this.searchMonth = searchMonth;
}
public String getSearchStartDt() {
return searchStartDt;
}
public void setSearchStartDt(String searchStartDt) {
this.searchStartDt = searchStartDt;
}
public String getSearchEndDt() {
return searchEndDt;
}
public void setSearchEndDt(String searchEndDt) {
this.searchEndDt = searchEndDt;
}
public String getDeptNmArr() {
return deptNmArr;
}
public void setDeptNmArr(String deptNmArr) {
this.deptNmArr = deptNmArr;
}
public String getSearchLoginId() {
return searchLoginId;
}
public void setSearchLoginId(String searchLoginId) {
this.searchLoginId = searchLoginId;
}
public String getCrtAllctDdlDeAdd1st() {
return crtAllctDdlDeAdd1st;
}
public void setCrtAllctDdlDeAdd1st(String crtAllctDdlDeAdd1st) {
this.crtAllctDdlDeAdd1st = crtAllctDdlDeAdd1st;
}
public String getCrtAllctDdlDeAdd2nd() {
return crtAllctDdlDeAdd2nd;
}
public void setCrtAllctDdlDeAdd2nd(String crtAllctDdlDeAdd2nd) {
this.crtAllctDdlDeAdd2nd = crtAllctDdlDeAdd2nd;
}
public int getPageUnit() {
return pageUnit;
}
public void setPageUnit(int pageUnit) {
this.pageUnit = pageUnit;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getRecordCountPerPage() {
return recordCountPerPage;
}
public void setRecordCountPerPage(int recordCountPerPage) {
this.recordCountPerPage = recordCountPerPage;
}
public String getDeptOrdinaryYn() {
return deptOrdinaryYn;
}
public void setDeptOrdinaryYn(String deptOrdinaryYn) {
this.deptOrdinaryYn = deptOrdinaryYn;
}
public String getUniqId() {
return uniqId;
}
public void setUniqId(String uniqId) {
this.uniqId = uniqId;
}
public String getCrtCnfrm() {
return crtCnfrm;
}
public void setCrtCnfrm(String crtCnfrm) {
this.crtCnfrm = crtCnfrm;
}
public String getOfcpsNm() {
return ofcpsNm;
}
public void setOfcpsNm(String ofcpsNm) {
this.ofcpsNm = ofcpsNm;
}
public String getCrtAdjAdminMeno() {
return crtAdjAdminMeno;
}
public void setCrtAdjAdminMeno(String crtAdjAdminMeno) {
this.crtAdjAdminMeno = crtAdjAdminMeno;
}
public String getCrtAdjCmsnrMeno() {
return crtAdjCmsnrMeno;
}
public void setCrtAdjCmsnrMeno(String crtAdjCmsnrMeno) {
this.crtAdjCmsnrMeno = crtAdjCmsnrMeno;
}
public String getRprtSeq() {
return rprtSeq;
}
public void setRprtSeq(String rprtSeq) {
this.rprtSeq = rprtSeq;
}
public String getRprtPhone() {
return rprtPhone;
}
public void setRprtPhone(String rprtPhone) {
this.rprtPhone = rprtPhone;
}
public String getRprtPgr() {
return rprtPgr;
}
public void setRprtPgr(String rprtPgr) {
this.rprtPgr = rprtPgr;
}
public String getRprtSeqTemp() {
return rprtSeqTemp;
}
public void setRprtSeqTemp(String rprtSeqTemp) {
this.rprtSeqTemp = rprtSeqTemp;
}
public List<AdjCourtRprtMgrVO> getAdjCourtRprtMgrList() {
return adjCourtRprtMgrList;
}
public void setAdjCourtRprtMgrList(List<AdjCourtRprtMgrVO> adjCourtRprtMgrList) {
this.adjCourtRprtMgrList = adjCourtRprtMgrList;
}

View File

@ -1,134 +0,0 @@
package kcc.kccadr.adjCourtCnctn.service;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import kcc.com.cmm.ComDefaultVO;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
public class AdjCourtDeptVO extends ComDefaultVO implements Serializable {
private static final long serialVersionUID = -1111076331699607617L;
private String esntlId;
private String crtSeq;
private String crtAtchFileId;
private String crtAllwanc;
private String crtPayDe;
private String crtRecivAccnt;
private String crtDeptTy;
private String frstRegistPnttm;
private String frstRegisterId;
private String lastUpdtPnttm;
private String lastUpdusrId;
private String crtLinkHouse;
private String emplyrId;
private String userNm;
private String pstinstCode;
private String ofcpsNm;
public String getCrtAtchFileId() {
return crtAtchFileId;
}
public void setCrtAtchFileId(String crtAtchFileId) {
this.crtAtchFileId = crtAtchFileId;
}
public String getCrtAllwanc() {
return crtAllwanc;
}
public void setCrtAllwanc(String crtAllwanc) {
this.crtAllwanc = crtAllwanc;
}
public String getCrtPayDe() {
return crtPayDe;
}
public void setCrtPayDe(String crtPayDe) {
this.crtPayDe = crtPayDe;
}
public String getCrtRecivAccnt() {
return crtRecivAccnt;
}
public void setCrtRecivAccnt(String crtRecivAccnt) {
this.crtRecivAccnt = crtRecivAccnt;
}
public String getEsntlId() {
return esntlId;
}
public void setEsntlId(String esntlId) {
this.esntlId = esntlId;
}
public String getCrtSeq() {
return crtSeq;
}
public void setCrtSeq(String crtSeq) {
this.crtSeq = crtSeq;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
}
public void setFrstRegistPnttm(String frstRegistPnttm) {
this.frstRegistPnttm = frstRegistPnttm;
}
public String getFrstRegisterId() {
return frstRegisterId;
}
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
public String getLastUpdtPnttm() {
return lastUpdtPnttm;
}
public void setLastUpdtPnttm(String lastUpdtPnttm) {
this.lastUpdtPnttm = lastUpdtPnttm;
}
public String getLastUpdusrId() {
return lastUpdusrId;
}
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
public String getCrtLinkHouse() {
return crtLinkHouse;
}
public void setCrtLinkHouse(String crtLinkHouse) {
this.crtLinkHouse = crtLinkHouse;
}
public String getCrtDeptTy() {
return crtDeptTy;
}
public void setCrtDeptTy(String crtDeptTy) {
this.crtDeptTy = crtDeptTy;
}
public String getEmplyrId() {
return emplyrId;
}
public void setEmplyrId(String emplyrId) {
this.emplyrId = emplyrId;
}
public String getUserNm() {
return userNm;
}
public void setUserNm(String userNm) {
this.userNm = userNm;
}
public String getPstinstCode() {
return pstinstCode;
}
public void setPstinstCode(String pstinstCode) {
this.pstinstCode = pstinstCode;
}
public String getOfcpsNm() {
return ofcpsNm;
}
public void setOfcpsNm(String ofcpsNm) {
this.ofcpsNm = ofcpsNm;
}
}

View File

@ -1,63 +0,0 @@
package kcc.kccadr.adjCourtCnctn.service;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import kcc.com.cmm.ComDefaultVO;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
public class AdjCourtRprtMgrVO extends ComDefaultVO implements Serializable {
/**
*
*/
private static final long serialVersionUID = 836926077984092881L;
private String crtSeq; //법원연계 seq
private String crtSn; //법원연계 기일수
private String rprtSeq; // 사무수행보고일 SEQ
private String rprtPhone; // 전화
private String rprtPgr; // 기일진행
private String crtRprtDe; // 사무수행보고일
public String getCrtSeq() {
return crtSeq;
}
public void setCrtSeq(String crtSeq) {
this.crtSeq = crtSeq;
}
public String getCrtSn() {
return crtSn;
}
public void setCrtSn(String crtSn) {
this.crtSn = crtSn;
}
public String getRprtSeq() {
return rprtSeq;
}
public void setRprtSeq(String rprtSeq) {
this.rprtSeq = rprtSeq;
}
public String getRprtPhone() {
return rprtPhone;
}
public void setRprtPhone(String rprtPhone) {
this.rprtPhone = rprtPhone;
}
public String getRprtPgr() {
return rprtPgr;
}
public void setRprtPgr(String rprtPgr) {
this.rprtPgr = rprtPgr;
}
public String getCrtRprtDe() {
return crtRprtDe;
}
public void setCrtRprtDe(String crtRprtDe) {
this.crtRprtDe = crtRprtDe;
}
}

View File

@ -1,231 +0,0 @@
package kcc.kccadr.adjCourtCnctn.service;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import kcc.com.cmm.ComDefaultVO;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
public class AdjCourtaprvlVO extends AdjCourtCnctnVO implements Serializable {
private static final long serialVersionUID = -1111076331699607617L;
private String crtAprvlSeq;
private String crtSeq;
private String crtStatCd;
private String crtAprvlCnt;
private String crtAprvlId1;
private String crtAprvlYn1;
private String crtAprvlDe1;
private String crtAprvlId2;
private String crtAprvlYn2;
private String crtAprvlDe2;
private String crtAprvlId3;
private String crtAprvlYn3;
private String crtAprvlDe3;
private String crtAprvlId;
private String crtAprvlYn;
private String crtAprvlDe;
private String crtDeptKng;
private String esntlId;
private String frstRegistPnttm;
private String frstRegisterId;
private String lastUpdtPnttm;
private String lastUpdusrId;
private String confirmStatus;
private String allYn;
private String target;
private String step;
private String lastYn;
private String targetId;
private String stepMem;
public String getCrtAprvlSeq() {
return crtAprvlSeq;
}
public void setCrtAprvlSeq(String crtAprvlSeq) {
this.crtAprvlSeq = crtAprvlSeq;
}
public String getCrtSeq() {
return crtSeq;
}
public void setCrtSeq(String crtSeq) {
this.crtSeq = crtSeq;
}
public String getCrtStatCd() {
return crtStatCd;
}
public void setCrtStatCd(String crtStatCd) {
this.crtStatCd = crtStatCd;
}
public String getCrtAprvlCnt() {
return crtAprvlCnt;
}
public void setCrtAprvlCnt(String crtAprvlCnt) {
this.crtAprvlCnt = crtAprvlCnt;
}
public String getCrtAprvlId1() {
return crtAprvlId1;
}
public void setCrtAprvlId1(String crtAprvlId1) {
this.crtAprvlId1 = crtAprvlId1;
}
public String getCrtAprvlYn1() {
return crtAprvlYn1;
}
public void setCrtAprvlYn1(String crtAprvlYn1) {
this.crtAprvlYn1 = crtAprvlYn1;
}
public String getCrtAprvlDe1() {
return crtAprvlDe1;
}
public void setCrtAprvlDe1(String crtAprvlDe1) {
this.crtAprvlDe1 = crtAprvlDe1;
}
public String getCrtAprvlId2() {
return crtAprvlId2;
}
public void setCrtAprvlId2(String crtAprvlId2) {
this.crtAprvlId2 = crtAprvlId2;
}
public String getCrtAprvlYn2() {
return crtAprvlYn2;
}
public void setCrtAprvlYn2(String crtAprvlYn2) {
this.crtAprvlYn2 = crtAprvlYn2;
}
public String getCrtAprvlDe2() {
return crtAprvlDe2;
}
public void setCrtAprvlDe2(String crtAprvlDe2) {
this.crtAprvlDe2 = crtAprvlDe2;
}
public String getCrtAprvlId3() {
return crtAprvlId3;
}
public void setCrtAprvlId3(String crtAprvlId3) {
this.crtAprvlId3 = crtAprvlId3;
}
public String getCrtAprvlYn3() {
return crtAprvlYn3;
}
public void setCrtAprvlYn3(String crtAprvlYn3) {
this.crtAprvlYn3 = crtAprvlYn3;
}
public String getCrtAprvlDe3() {
return crtAprvlDe3;
}
public void setCrtAprvlDe3(String crtAprvlDe3) {
this.crtAprvlDe3 = crtAprvlDe3;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
}
public void setFrstRegistPnttm(String frstRegistPnttm) {
this.frstRegistPnttm = frstRegistPnttm;
}
public String getFrstRegisterId() {
return frstRegisterId;
}
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
public String getLastUpdtPnttm() {
return lastUpdtPnttm;
}
public void setLastUpdtPnttm(String lastUpdtPnttm) {
this.lastUpdtPnttm = lastUpdtPnttm;
}
public String getLastUpdusrId() {
return lastUpdusrId;
}
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
public String getCrtDeptKng() {
return crtDeptKng;
}
public void setCrtDeptKng(String crtDeptKng) {
this.crtDeptKng = crtDeptKng;
}
public String getEsntlId() {
return esntlId;
}
public void setEsntlId(String esntlId) {
this.esntlId = esntlId;
}
public String getCrtAprvlId() {
return crtAprvlId;
}
public void setCrtAprvlId(String crtAprvlId) {
this.crtAprvlId = crtAprvlId;
}
public String getCrtAprvlYn() {
return crtAprvlYn;
}
public void setCrtAprvlYn(String crtAprvlYn) {
this.crtAprvlYn = crtAprvlYn;
}
public String getCrtAprvlDe() {
return crtAprvlDe;
}
public void setCrtAprvlDe(String crtAprvlDe) {
this.crtAprvlDe = crtAprvlDe;
}
public String getConfirmStatus() {
return confirmStatus;
}
public void setConfirmStatus(String confirmStatus) {
this.confirmStatus = confirmStatus;
}
public String getAllYn() {
return allYn;
}
public void setAllYn(String allYn) {
this.allYn = allYn;
}
public String getTarget() {
return target;
}
public void setTarget(String target) {
this.target = target;
}
public String getStep() {
return step;
}
public void setStep(String step) {
this.step = step;
}
public String getLastYn() {
return lastYn;
}
public void setLastYn(String lastYn) {
this.lastYn = lastYn;
}
public String getTargetId() {
return targetId;
}
public void setTargetId(String targetId) {
this.targetId = targetId;
}
public String getStepMem() {
return stepMem;
}
public void setStepMem(String stepMem) {
this.stepMem = stepMem;
}
}

View File

@ -1,46 +0,0 @@
package kcc.kccadr.adjCourtCnctn.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtCnctnVO;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtaprvlVO;
@Repository("AdjCourtAprvlDAO")
public class AdjCourtAprvlDAO extends EgovAbstractDAO {
// public void insertCourtCnctn(AdjCourtCnctnVO adjCourtCnctnVO) {
// insert("adjCourtCnctnDAO.insertCourtCnctn", adjCourtCnctnVO);
// }
public void insertAprvlReg(AdjCourtaprvlVO adjCourtaprvlVO) {
insert("adjCourtAprvlDAO.insertAprvlReg", adjCourtaprvlVO);
}
public List<AdjCourtaprvlVO> adjCourtAprvlList(AdjCourtaprvlVO adjCourtaprvlVO) {
return (List<AdjCourtaprvlVO>) list("adjCourtCnctnDAO.adjCourtAprvlList", adjCourtaprvlVO);
}
public int adjCourtAprvlListCnt(AdjCourtaprvlVO adjCourtaprvlVO) {
return (int) select("adjCourtCnctnDAO.adjCourtAprvlListCnt", adjCourtaprvlVO);
}
public AdjCourtaprvlVO adjCourtAprvlDetail(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception {
return (AdjCourtaprvlVO) select("adjCourtAprvlDAO.adjCourtAprvlDetail", adjCourtaprvlVO);
}
public List<AdjCourtaprvlVO> adjCourtAprvlLine(AdjCourtaprvlVO adjCourtaprvlVO) {
return (List<AdjCourtaprvlVO>) list("adjCourtAprvlDAO.adjCourtAprvlLine", adjCourtaprvlVO);
}
public void adjCourtAprvlLineUpdate(AdjCourtaprvlVO adjCourtaprvlVO) {
update("adjCourtAprvlDAO.adjCourtAprvlLineUpdate", adjCourtaprvlVO);
}
public AdjCourtaprvlVO adjCourtAprvlLineChk(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception {
return (AdjCourtaprvlVO) select("adjCourtAprvlDAO.adjCourtAprvlLineChk" , adjCourtaprvlVO);
}
}

View File

@ -1,79 +0,0 @@
package kcc.kccadr.adjCourtCnctn.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.com.cmm.service.AdrCourtFileMngService;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtAprvlService;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtaprvlVO;
@Service("AdjCourtAprvlService")
public class AdjCourtAprvlServiceImpl extends EgovAbstractServiceImpl implements AdjCourtAprvlService {
// 조정신청 DAO
@Resource(name = "AdjCourtCnctnDAO")
private AdjCourtCnctnDAO adjCourtCnctnDAO;
@Resource(name = "AdjCourtAprvlDAO")
private AdjCourtAprvlDAO adjCourtAprvlDAO;
@Resource(name="courtCnctnGnrService")
private EgovIdGnrService courtCnctnGnrService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileMngService;
@Resource(name = "EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
@Resource(name = "AdrCourtFileMngService")
private AdrCourtFileMngService adrCourtFileMngService;
@Resource(name="courtAprvlGnrService")
private EgovIdGnrService courtAprvlGnrService;
@Override
public void insertAprvlReg(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception {
String crtAprvlSeq = courtAprvlGnrService.getNextStringId();
adjCourtaprvlVO.setCrtAprvlSeq(crtAprvlSeq);
adjCourtAprvlDAO.insertAprvlReg(adjCourtaprvlVO);
}
@Override
public List<AdjCourtaprvlVO> adjCourtAprvlList(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception {
return adjCourtAprvlDAO.adjCourtAprvlList(adjCourtaprvlVO);
}
@Override
public int adjCourtAprvlListCnt(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception {
return adjCourtAprvlDAO.adjCourtAprvlListCnt(adjCourtaprvlVO);
}
@Override
public AdjCourtaprvlVO adjCourtAprvlDetail(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception {
return adjCourtAprvlDAO.adjCourtAprvlDetail(adjCourtaprvlVO);
}
@Override
public List<AdjCourtaprvlVO> adjCourtAprvlLine(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception {
return adjCourtAprvlDAO.adjCourtAprvlLine(adjCourtaprvlVO);
}
@Override
public void adjCourtAprvlLineUpdate(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception {
adjCourtAprvlDAO.adjCourtAprvlLineUpdate(adjCourtaprvlVO);
}
@Override
public AdjCourtaprvlVO adjCourtAprvlLineChk(AdjCourtaprvlVO adjCourtaprvlVO) throws Exception {
return adjCourtAprvlDAO.adjCourtAprvlLineChk(adjCourtaprvlVO);
}
}

View File

@ -5,11 +5,10 @@ import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.com.cmm.service.AdrCourtFileVO;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtAppVO;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtCnctnVO;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtDeptVO;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtRprtMgrVO;
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineVO;
import kcc.kccadr.adjReqMgrPast.service.AdjReqMgrPastVO;
import kcc.kccadr.cmm.RestResponse;
@Repository("AdjCourtCnctnDAO")
public class AdjCourtCnctnDAO extends EgovAbstractDAO {
@ -39,94 +38,4 @@ public class AdjCourtCnctnDAO extends EgovAbstractDAO {
update("adjCourtCnctnDAO.updateUseYn", adjCourtCnctnVO);
}
public void insertCourtFileInf(AdrCourtFileVO adrCourtFileVO) {
insert("adjCourtCnctnDAO.insertCourtFileInf", adrCourtFileVO);
}
public void insertCourtDept(AdjCourtDeptVO adjCourtDeptVO) {
insert("adjCourtCnctnDAO.insertCourtDept", adjCourtDeptVO);
}
public void updateCourtDept(AdjCourtDeptVO adjCourtDeptVO) {
update("adjCourtCnctnDAO.updateCourtDept", adjCourtDeptVO);
}
public List<AdjCourtCnctnVO> selectAdjCourtCnctniFileList(AdjCourtCnctnVO adjCourtCnctnVO) {
return (List<AdjCourtCnctnVO>) list("adjCourtCnctnDAO.selectAdjCourtCnctniFileList", adjCourtCnctnVO);
}
public List<AdjCourtDeptVO> selectAdjCourtCnctniDeptPop() {
return (List<AdjCourtDeptVO>) list("adjCourtCnctnDAO.selectAdjCourtCnctniDeptPop");
}
public void saveFromAdrCourtDeptMgr(AdjCourtDeptVO deptVO) {
update("adjCourtCnctnDAO.saveFromAdrCourtDeptMgr", deptVO);
}
public void updateAdjCourtCnctnStatCd(AdjCourtCnctnVO adjCourtCnctnVO) {
update("adjCourtCnctnDAO.updateAdjCourtCnctnStatCd", adjCourtCnctnVO);
}
public List<AdjCourtAppVO> selectAdjCourtCnctnAppList(AdjCourtAppVO adjCourtAppVO) throws Exception {
return (List<AdjCourtAppVO>) list("adjCourtCnctnDAO.selectAdjCourtCnctnAppList", adjCourtAppVO);
}
public int selectAdjCourtCnctnAppNextSn(AdjCourtAppVO adjCourtAppVO) {
return (int) select("adjCourtCnctnDAO.selectAdjCourtCnctnAppNextSn", adjCourtAppVO);
}
public void insertAdjCourtCnctnAppReg(AdjCourtAppVO adjCourtAppVO) {
insert("adjCourtCnctnDAO.insertAdjCourtCnctnAppReg", adjCourtAppVO);
}
public AdjCourtAppVO selectAdjCourtCnctnAppDetail(AdjCourtAppVO adjCourtAppVO) {
return (AdjCourtAppVO) select("adjCourtCnctnDAO.selectAdjCourtCnctnAppDetail", adjCourtAppVO);
}
public void updateAdjCourtCnctnEnd(AdjCourtCnctnVO adjCourtCnctnVO){
update("adjCourtCnctnDAO.updateAdjCourtCnctnEnd", adjCourtCnctnVO);
}
public void updateCourtCnctnEndAfter(AdjCourtCnctnVO adjCourtCnctnVO){
update("adjCourtCnctnDAO.updateCourtCnctnEndAfter", adjCourtCnctnVO);
}
public void updateCourtDeptEndAfterDept(AdjCourtDeptVO adjCourtDeptVO){
update("adjCourtCnctnDAO.updateCourtDeptEndAfterDept", adjCourtDeptVO);
}
public AdjCourtDeptVO selectCourtDept(AdjCourtDeptVO adjCourtDeptVO) throws Exception {
return (AdjCourtDeptVO) select("adjCourtCnctnDAO.selectCourtDept", adjCourtDeptVO);
}
public void insertAdjCourtRprtDePopAjax(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception {
update("adjCourtCnctnDAO.insertAdjCourtRprtDePopAjax", adjCourtCnctnVO);
}
public void updateOfcpsNmFromAdrCourtDeptMgr(AdjCourtCnctnVO adjCourtCnctnVO) {
update("adjCourtCnctnDAO.updateOfcpsNmFromAdrCourtDeptMgr", adjCourtCnctnVO);
}
public void updateCrtAdjCmsnrMenoAjax(AdjCourtCnctnVO adjCourtCnctnVO) {
update("adjCourtCnctnDAO.updateCrtAdjCmsnrMenoAjax", adjCourtCnctnVO);
}
public void updateCrtAdjAdminMenoAjax(AdjCourtCnctnVO adjCourtCnctnVO) {
update("adjCourtCnctnDAO.updateCrtAdjAdminMenoAjax", adjCourtCnctnVO);
}
public List<AdjCourtRprtMgrVO> findByIdFromAdjCourtRprtMgr(AdjCourtCnctnVO adjCourtCnctnVO) {
return (List<AdjCourtRprtMgrVO>) list("adjCourtCnctnDAO.findByIdFromAdjCourtRprtMgr", adjCourtCnctnVO);
}
public AdjCourtRprtMgrVO findByRprtSeqFromAdrCourtRprtMgr(AdjCourtCnctnVO adjCourtCnctnVO) {
return (AdjCourtRprtMgrVO) select("adjCourtCnctnDAO.findByRprtSeqFromAdrCourtRprtMgr", adjCourtCnctnVO);
}
public void updateCrtStatCdAjax(AdjCourtCnctnVO adjCourtCnctnVO) {
update("adjCourtCnctnDAO.updateCrtStatCdAjax", adjCourtCnctnVO);
}
}

View File

@ -1,33 +1,34 @@
package kcc.kccadr.adjCourtCnctn.service.impl;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.annotation.Resource;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.com.cmm.service.AdrCourtFileMngService;
import kcc.com.cmm.service.AdrCourtFileVO;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.service.CmmnDetailCode;
import kcc.com.cmm.util.DateUtil;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtAppVO;
import kcc.com.utl.user.service.CheckAdrProcessUtil;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtCnctnService;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtCnctnVO;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtDeptVO;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtRprtMgrVO;
import kcc.kccadr.cmm.KccadrCourtConstants;
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineService;
import kcc.kccadr.adjReqMgrOff.service.AdjReqMgrOffLineVO;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
import kcc.kccadr.adjreqmgr.service.impl.AdjReqMgrDAO;
import kcc.kccadr.adjst.service.AdjstReqVO;
import kcc.kccadr.adjst.service.impl.AdjstReqDAO;
import kcc.kccadr.advc.service.impl.AdrHstryMgrDAO;
import kcc.kccadr.cmm.KccadrConstants;
import kcc.kccadr.cmm.RestResponse;
import kcc.let.sym.ccm.cde.service.CmmnDetailCodeVO;
import kcc.let.sym.ccm.cde.service.EgovCcmCmmnDetailCodeManageService;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
@Service("AdjCourtCnctnService")
public class AdjCourtCnctnServiceImpl extends EgovAbstractServiceImpl implements AdjCourtCnctnService {
@ -39,58 +40,11 @@ public class AdjCourtCnctnServiceImpl extends EgovAbstractServiceImpl implements
@Resource(name="courtCnctnGnrService")
private EgovIdGnrService courtCnctnGnrService;
@Resource(name="crtRprtMgrIdgenService")
private EgovIdGnrService crtRprtMgrIdgenService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileMngService;
@Resource(name = "EgovFileMngUtil")
private EgovFileMngUtil fileUtil;
@Resource(name = "AdrCourtFileMngService")
private AdrCourtFileMngService adrCourtFileMngService;
@Override
public RestResponse insertCourtCnctn(AdjCourtCnctnVO adjCourtCnctnVO, final MultipartHttpServletRequest multiRequest) {
public RestResponse insertCourtCnctn(AdjCourtCnctnVO adjCourtCnctnVO) {
try {
adjCourtCnctnVO.setCrtSeq(courtCnctnGnrService.getNextStringId());
adjCourtCnctnVO.setCrtStatCd("101000");
adjCourtCnctnVO.setCrtStatCd(KccadrCourtConstants.CRT_REG);
final Map<String, MultipartFile> files = multiRequest.getFileMap();
if (!files.isEmpty()){
for(Entry<String, MultipartFile> files_tmp : files.entrySet()) {
if(!files_tmp.getValue().getName().equals("file_temp")) {
List<FileVO> result = fileUtil.parseFileInf(files, "CRT_", 0, "", "", "");
String atchFileId = fileMngService.insertFileInfs(result);
adjCourtCnctnVO.setCrtAtchFileId(atchFileId);
AdrCourtFileVO adrCourtFileVO = new AdrCourtFileVO();
adrCourtFileVO.setCrtSeq(adjCourtCnctnVO.getCrtSeq());
adrCourtFileVO.setCrtSn(adjCourtCnctnVO.getCrtSn());
adrCourtFileVO.setCrtAtchFileId(atchFileId);
adrCourtFileVO.setCrtAtchFileTy(KccadrCourtConstants.CRT_FILE_RETURN);
adrCourtFileVO.setFrstRegisterId(adjCourtCnctnVO.getFrstRegisterId());
adrCourtFileMngService.insertCourtFileInf(adrCourtFileVO);
}
}
}
adjCourtCnctnVO.setCourtSeq(courtCnctnGnrService.getNextStringId());
adjCourtCnctnDAO.insertCourtCnctn(adjCourtCnctnVO);
AdjCourtDeptVO adjCourtDeptVO = new AdjCourtDeptVO();
adjCourtDeptVO.setCrtSeq(adjCourtCnctnVO.getCrtSeq());
adjCourtDeptVO.setFrstRegisterId(adjCourtCnctnVO.getFrstRegisterId());
adjCourtDeptVO.setCrtLinkHouse(adjCourtCnctnVO.getCrtLinkHouse());
adjCourtDeptVO.setCrtDeptTy("10");
adjCourtCnctnDAO.insertCourtDept(adjCourtDeptVO);
} catch (Exception e) {
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());
}
@ -127,16 +81,6 @@ public class AdjCourtCnctnServiceImpl extends EgovAbstractServiceImpl implements
public RestResponse updateCourtCnctn(AdjCourtCnctnVO adjCourtCnctnVO) {
try {
adjCourtCnctnDAO.updateCourtCnctn(adjCourtCnctnVO);
AdjCourtDeptVO adjCourtDeptVO = new AdjCourtDeptVO();
adjCourtDeptVO.setCrtSeq(adjCourtCnctnVO.getCrtSeq());
adjCourtDeptVO.setLastUpdusrId(adjCourtCnctnVO.getLastUpdusrId());
adjCourtDeptVO.setCrtLinkHouse(adjCourtCnctnVO.getCrtLinkHouse());
adjCourtDeptVO.setCrtDeptTy("10");
adjCourtCnctnDAO.updateCourtDept(adjCourtDeptVO);
} catch (Exception e) {
return new RestResponse(HttpStatus.BAD_REQUEST, "수정에 실패하였습니다.", LocalDateTime.now());
}
@ -148,207 +92,6 @@ public class AdjCourtCnctnServiceImpl extends EgovAbstractServiceImpl implements
adjCourtCnctnDAO.updateUseYn(adjCourtCnctnVO);
}
public List<AdjCourtCnctnVO> selectAdjCourtCnctniFileList(AdjCourtCnctnVO adjCourtCnctnVO) {
return adjCourtCnctnDAO.selectAdjCourtCnctniFileList(adjCourtCnctnVO);
}
@Override
public void insertCourtDept(AdjCourtDeptVO adjCourtDeptVO) {
adjCourtCnctnDAO.insertCourtDept(adjCourtDeptVO);
}
@Override
public void updateCourtDept(AdjCourtDeptVO adjCourtDeptVO) {
adjCourtCnctnDAO.updateCourtDept(adjCourtDeptVO);
}
@Override
public List<AdjCourtDeptVO> selectAdjCourtCnctniDeptPop() {
return adjCourtCnctnDAO.selectAdjCourtCnctniDeptPop();
}
@Override
public RestResponse insertAdjCourtCnctnDeptPopAjax(AdjCourtDeptVO deptVO) throws Exception {
try {
adjCourtCnctnDAO.saveFromAdrCourtDeptMgr(deptVO);
} catch (Exception e)
{ e.printStackTrace();
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());
}
return new RestResponse(HttpStatus.OK, "등록 되었습니다.", LocalDateTime.now());
}
@Override
public void updateAdjCourtCnctnStatCd(AdjCourtCnctnVO adjCourtCnctnVO) {
adjCourtCnctnDAO.updateAdjCourtCnctnStatCd(adjCourtCnctnVO);
}
@Override
public List<AdjCourtAppVO> selectAdjCourtCnctnAppList(AdjCourtAppVO adjCourtAppVO) throws Exception {
return adjCourtCnctnDAO.selectAdjCourtCnctnAppList(adjCourtAppVO);
}
@Override
public int selectAdjCourtCnctnAppNextSn(AdjCourtAppVO adjCourtAppVO) throws Exception {
return adjCourtCnctnDAO.selectAdjCourtCnctnAppNextSn(adjCourtAppVO);
}
@Override
public RestResponse insertAdjCourtCnctnAppReg(AdjCourtAppVO adjCourtAppVO, final MultipartHttpServletRequest multiRequest) throws Exception {
final Map<String, MultipartFile> files = multiRequest.getFileMap();
if (!files.isEmpty()){
List<FileVO> result = fileUtil.parseFileInf(files, "CRT_", 0, adjCourtAppVO.getCrtAtchFileId(), "", "");
String atchFileId = fileMngService.insertFileInfs(result);
adjCourtAppVO.setCrtAtchFileId(atchFileId);
AdrCourtFileVO adrCourtFileVO = new AdrCourtFileVO();
adrCourtFileVO.setCrtSeq(adjCourtAppVO.getCrtSeq());
adrCourtFileVO.setCrtSn(adjCourtAppVO.getCrtSn());
adrCourtFileVO.setCrtAtchFileId(atchFileId);
adrCourtFileVO.setCrtAtchFileTy(KccadrCourtConstants.CRT_FILE_APP);
adrCourtFileVO.setFrstRegisterId(adjCourtAppVO.getFrstRegisterId());
adrCourtFileMngService.insertCourtFileInf(adrCourtFileVO);
}
adjCourtCnctnDAO.insertAdjCourtCnctnAppReg(adjCourtAppVO);
return new RestResponse(HttpStatus.OK, "등록 되었습니다.", LocalDateTime.now());
}
@Override
public AdjCourtAppVO selectAdjCourtCnctnAppDetail(AdjCourtAppVO adjCourtAppVO) throws Exception {
return adjCourtCnctnDAO.selectAdjCourtCnctnAppDetail(adjCourtAppVO);
}
@Override
public RestResponse updateAdjCourtCnctnEnd(AdjCourtCnctnVO adjCourtCnctnVO, final MultipartHttpServletRequest multiRequest) throws Exception{
final Map<String, MultipartFile> files = multiRequest.getFileMap();
if (!files.isEmpty()){
List<FileVO> result = fileUtil.parseFileInf(files, "CRT_", 0, adjCourtCnctnVO.getCrtAtchFileIdEnd(), "", "");
String atchFileId = fileMngService.insertFileInfs(result);
adjCourtCnctnVO.setCrtAtchFileIdEnd(atchFileId);
AdrCourtFileVO adrCourtFileVO = new AdrCourtFileVO();
adrCourtFileVO.setCrtSeq(adjCourtCnctnVO.getCrtSeq());
adrCourtFileVO.setCrtSn(adjCourtCnctnVO.getCrtSn());
adrCourtFileVO.setCrtAtchFileId(atchFileId);
adrCourtFileVO.setCrtAtchFileTy(KccadrCourtConstants.CRT_FILE_ACTION);
adrCourtFileVO.setFrstRegisterId(adjCourtCnctnVO.getFrstRegisterId());
adrCourtFileMngService.insertCourtFileInf(adrCourtFileVO);
}
adjCourtCnctnDAO.updateAdjCourtCnctnEnd(adjCourtCnctnVO);
return new RestResponse(HttpStatus.OK, "등록 되었습니다.", LocalDateTime.now());
}
@Override
public RestResponse insertCourtCnctnFile(AdjCourtCnctnVO adjCourtCnctnVO, final MultipartHttpServletRequest multiRequest) {
try {
final Map<String, MultipartFile> files = multiRequest.getFileMap();
List<FileVO> result = fileUtil.parseFileInf(files, "CRT_", 0, adjCourtCnctnVO.getAtchFileId(), "", "");
String atchFileId = fileMngService.insertFileInfs(result);
adjCourtCnctnVO.setCrtAtchFileId(atchFileId);
AdrCourtFileVO adrCourtFileVO = new AdrCourtFileVO();
adrCourtFileVO.setCrtSeq(adjCourtCnctnVO.getCrtSeq());
adrCourtFileVO.setCrtSn(adjCourtCnctnVO.getCrtSn());
adrCourtFileVO.setCrtAtchFileId(atchFileId);
adrCourtFileVO.setCrtAtchFileTy(adjCourtCnctnVO.getCrtAtchFileTy());
adrCourtFileVO.setFrstRegisterId(adjCourtCnctnVO.getFrstRegisterId());
adrCourtFileMngService.insertCourtFileInf(adrCourtFileVO);
} catch (Exception e) {
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());
}
return new RestResponse(HttpStatus.OK, "등록 되었습니다.", LocalDateTime.now());
}
@Override
public RestResponse updateAdjCourtCnctnEndAfterPopAjax(AdjCourtCnctnVO adjCourtCnctnVO, AdjCourtDeptVO adjCourtDeptVO)
throws Exception {
try {
adjCourtCnctnDAO.updateCourtCnctnEndAfter(adjCourtCnctnVO);
adjCourtCnctnDAO.updateCourtDeptEndAfterDept(adjCourtDeptVO);
}catch (Exception e) {
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());
}
return new RestResponse(HttpStatus.OK, "등록 되었습니다.", LocalDateTime.now());
}
@Override
public AdjCourtDeptVO selectCourtDept(AdjCourtDeptVO adjCourtDeptVO) throws Exception {
return adjCourtCnctnDAO.selectCourtDept(adjCourtDeptVO);
}
@Override
public RestResponse insertAdjCourtRprtDePopAjax(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception {
try {
adjCourtCnctnVO.setRprtSeqTemp(crtRprtMgrIdgenService.getNextStringId());
adjCourtCnctnDAO.insertAdjCourtRprtDePopAjax(adjCourtCnctnVO);
}catch (Exception e) {
e.printStackTrace();
return new RestResponse(HttpStatus.BAD_REQUEST, "등록에 실패하였습니다.", LocalDateTime.now());
}
return new RestResponse(HttpStatus.OK, "등록 되었습니다.", LocalDateTime.now());
}
@Override
public void updateOfcpsNmFromAdrCourtDeptMgr(AdjCourtCnctnVO adjCourtCnctnVO) {
// TODO Auto-generated method stub
adjCourtCnctnDAO.updateOfcpsNmFromAdrCourtDeptMgr(adjCourtCnctnVO);
}
@Override
public RestResponse updateCrtAdjCmsnrMenoAjax(AdjCourtCnctnVO adjCourtCnctnVO) {
try {
adjCourtCnctnDAO.updateCrtAdjCmsnrMenoAjax(adjCourtCnctnVO);
}catch (Exception e) {
return new RestResponse(HttpStatus.BAD_REQUEST, "수정에 실패하였습니다.", LocalDateTime.now());
}
return new RestResponse(HttpStatus.OK, "수정 되었습니다.", LocalDateTime.now());
}
@Override
public RestResponse updateCrtAdjAdminMenoAjax(AdjCourtCnctnVO adjCourtCnctnVO) {
try {
adjCourtCnctnDAO.updateCrtAdjAdminMenoAjax(adjCourtCnctnVO);
}catch (Exception e) {
return new RestResponse(HttpStatus.BAD_REQUEST, "수정에 실패하였습니다.", LocalDateTime.now());
}
return new RestResponse(HttpStatus.OK, "수정 되었습니다.", LocalDateTime.now());
}
@Override
public RestResponse updateCrtStatCdAjax(AdjCourtCnctnVO adjCourtCnctnVO) {
try {
adjCourtCnctnDAO.updateCrtStatCdAjax(adjCourtCnctnVO);
}catch (Exception e) {
return new RestResponse(HttpStatus.BAD_REQUEST, "오류가 발생하였습니다.", LocalDateTime.now());
}
return new RestResponse(HttpStatus.OK, "정상 처리 되었습니다.", LocalDateTime.now());
}
@Override
public List<AdjCourtRprtMgrVO> findByIdFromAdjCourtRprtMgr(AdjCourtCnctnVO adjCourtCnctnVO) {
return adjCourtCnctnDAO.findByIdFromAdjCourtRprtMgr(adjCourtCnctnVO);
}
@Override
public AdjCourtRprtMgrVO findByRprtSeqFromAdrCourtRprtMgr(AdjCourtCnctnVO adjCourtCnctnVO) {
return adjCourtCnctnDAO.findByRprtSeqFromAdrCourtRprtMgr(adjCourtCnctnVO);
}
}

View File

@ -1,252 +0,0 @@
package kcc.kccadr.adjCourtCnctn.web;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.json.simple.JSONObject;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.com.utl.fcc.service.EgovStringUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtAprvlService;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtCnctnService;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtCnctnVO;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtaprvlVO;
import kcc.kccadr.adjPgrMgr.iam.service.InternalApprovManageVO;
import kcc.kccadr.adjcclt.service.AdjstConciliatorVO;
import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
import kcc.kccadr.cmm.CmmUtil;
import kcc.kccadr.cmm.KccadrConstants;
import kcc.kccadr.cmm.KccadrCourtConstants;
import kcc.kccadr.ozSchd.web.OzSchdExportUtil;
import kcc.let.uss.umt.service.UserManageVO;
@Controller
public class AdjCourtAprvlController {
// 조정신청 서비스단
@Resource(name = "AdjCourtAprvlService")
private AdjCourtAprvlService adjCourtAprvlService;
@Resource(name = "AdjCourtCnctnService")
private AdjCourtCnctnService adjCourtCnctnService;
//로그인 체크 util
@Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil;
@RequestMapping(value = "/kccadr/adjCourtAprvl/aprvlList.do")
public String AprvlList(
@ModelAttribute("adjCourtaprvlVO") AdjCourtaprvlVO adjCourtaprvlVO
, ModelMap model
, HttpServletRequest request) throws Exception {
String auth = EgovUserDetailsHelper.isAuthenticated() ? null : EgovUserDetailsHelper.getAuthenticatedUser().toString();
LoginVO loginVO = "anonymousUser".equals(auth) ? null : (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
if (loginVO == null) {
model.addAttribute("msg", "로그인 해주세요.");
return "redirect:/web/user/login/ssoLogin.do";
}
if("ROLE_COURT_ADMIN".equals(loginVO.getAuthority())
&& "80".equals(loginVO.getOfcpsNm())) {
model.addAttribute("msg", "접근 할 수 없습니다.");
return "redirect:/kccadr/adjCourtCnctn/adjCourtCnctnList.do";
}
if(adjCourtaprvlVO.getPageUnit() != 10) {
adjCourtaprvlVO.setPageUnit(adjCourtaprvlVO.getPageUnit());
}
if("".equals(adjCourtaprvlVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
adjCourtaprvlVO.setSearchSortCnd("a.crtSeq");
adjCourtaprvlVO.setSearchSortOrd("desc");
}
if("".equals(adjCourtaprvlVO.getSearchStatusArr()) || adjCourtaprvlVO.getSearchStatusArr() == null){
String[] defaultSearchStatusArr = {"01"};
adjCourtaprvlVO.setSearchStatusArr(defaultSearchStatusArr);
}
if(StringUtils.isEmpty(adjCourtaprvlVO.getSearchStartDt()) && StringUtils.isEmpty(adjCourtaprvlVO.getSearchEndDt())){
adjCourtaprvlVO.setSearchStartDt(CmmUtil.getDiffMonth(1 , "yyyy-MM-dd"));
adjCourtaprvlVO.setSearchEndDt(CmmUtil.getDateNow("yyyy-MM-dd"));
}
if(StringUtils.isEmpty(adjCourtaprvlVO.getSearchMonth())) {
adjCourtaprvlVO.setSearchMonth("3");
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(adjCourtaprvlVO.getPageIndex());
paginationInfo.setRecordCountPerPage(adjCourtaprvlVO.getPageUnit());
paginationInfo.setPageSize(adjCourtaprvlVO.getPageSize());
adjCourtaprvlVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
adjCourtaprvlVO.setLastIndex(paginationInfo.getLastRecordIndex());
adjCourtaprvlVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
paginationInfo.setTotalRecordCount(adjCourtAprvlService.adjCourtAprvlListCnt(adjCourtaprvlVO));
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("list", adjCourtAprvlService.adjCourtAprvlList(adjCourtaprvlVO));
return "kccadr/adjCourtCnctn/adjCourtAprvlList";
}
@RequestMapping("/kccadr/adjCourtAprvl/popup/aprvlReqPop.do")
public String aprvlReqPop(
@ModelAttribute("adjCourtaprvlVO") AdjCourtaprvlVO adjCourtaprvlVO
, ModelMap model
) throws Exception {
return "kccadr/adjCourtCnctn/pop/adjCourtaprvlReqPop";
}
@RequestMapping(value="/kccadr/adjCourtAprvl/popup/aprvlReqAjax.do")
public ModelAndView checkNInsertAprvlStep1Ajax(
HttpServletRequest request
, AdjCourtaprvlVO adjCourtaprvlVO
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
AdjReqMgrVO arv = new AdjReqMgrVO();
//로그인 정보 획득 - ssoLoginVO 사용
LoginVO loginVO = checkLoginUtil.getLoginVO();
/*
* 1.법원연계결재에 저장
* 2.법원연계관리 상태값 변경
*/
//step.2.조정사건결재에 저장=======================================================================
int i = 0;
adjCourtaprvlVO.setFrstRegisterId(loginVO.getUniqId());
adjCourtAprvlService.insertAprvlReg(adjCourtaprvlVO);
AdjCourtCnctnVO adjCourtCnctnVO = new AdjCourtCnctnVO();
adjCourtCnctnVO.setCrtSeq(adjCourtaprvlVO.getCrtSeq());
adjCourtCnctnVO.setLastUpdusrId(loginVO.getUniqId());
adjCourtCnctnVO.setCrtStatCd(adjCourtaprvlVO.getCrtStatCd());
adjCourtCnctnService.updateAdjCourtCnctnStatCd(adjCourtCnctnVO);
if (i<=0) {
modelAndView.addObject("status", "success");
modelAndView.addObject("message", "결재선 생성 실패.-step2");
return modelAndView;
}
modelAndView.addObject("status", "success");
}catch(Exception ex) {
modelAndView.addObject("status", "fail");
modelAndView.addObject("message", "결재선 생성 실패.-step0");
}
return modelAndView;
}
@RequestMapping(value = "/kccadr/adjCourtAprvl/aprvlDetail.do")
public String aprvlDetail(
@ModelAttribute("adjCourtaprvlVO") AdjCourtaprvlVO adjCourtaprvlVO
, ModelMap model
, HttpServletRequest request) throws Exception {
String auth = EgovUserDetailsHelper.isAuthenticated() ? null : EgovUserDetailsHelper.getAuthenticatedUser().toString();
LoginVO loginVO = "anonymousUser".equals(auth) ? null : (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
model.addAttribute("courtVO", adjCourtCnctnService.findByid(adjCourtaprvlVO));
model.addAttribute("detailVO", adjCourtAprvlService.adjCourtAprvlDetail(adjCourtaprvlVO));
model.addAttribute("approvLine", adjCourtAprvlService.adjCourtAprvlLine(adjCourtaprvlVO));
AdjCourtaprvlVO statInfo = adjCourtAprvlService.adjCourtAprvlLineChk(adjCourtaprvlVO);
model.addAttribute("statInfo", statInfo);
model.addAttribute("loginVO", loginVO);
return "kccadr/adjCourtCnctn/adjCourtAprvlDetail";
}
@RequestMapping(value="/kccadr/adjCourtAprvl/aprvlSave.do", method = RequestMethod.POST)
public ModelAndView internalApprovManageSave(HttpServletRequest request , @RequestBody AdjCourtaprvlVO adjCourtaprvlVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
String auth = EgovUserDetailsHelper.isAuthenticated() ? null : EgovUserDetailsHelper.getAuthenticatedUser().toString();
LoginVO loginVO = "anonymousUser".equals(auth) ? null : (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
if (loginVO == null) {
modelAndView.addObject("result", "fail");
modelAndView.addObject("message", "로그인 해주세요.");
return modelAndView;
}
adjCourtaprvlVO.setFrstRegisterId(loginVO.getUniqId());
adjCourtaprvlVO.setLastUpdusrId(loginVO.getUniqId());
adjCourtaprvlVO.setCrtAprvlId(loginVO.getUniqId());
//결재 순서 체크
AdjCourtaprvlVO statInfo = new AdjCourtaprvlVO();
statInfo = adjCourtAprvlService.adjCourtAprvlLineChk(adjCourtaprvlVO);
adjCourtaprvlVO.setStep(statInfo.getStep());
//결재 처리
adjCourtAprvlService.adjCourtAprvlLineUpdate(adjCourtaprvlVO);
statInfo = new AdjCourtaprvlVO();
statInfo = adjCourtAprvlService.adjCourtAprvlLineChk(adjCourtaprvlVO);
// 모든 결재가 끝났다면...
if("Y".equals(statInfo.getAllYn())){
//adr_court_mgr - > statCd 변경
if("2".equals(statInfo.getCrtAprvlCnt())) {
adjCourtaprvlVO.setCrtStatCd(KccadrCourtConstants.CRT_APRVL_END);
}
else {
adjCourtaprvlVO.setCrtStatCd(KccadrCourtConstants.CRT_APRVL_OK);
}
adjCourtaprvlVO.setLastUpdusrId(loginVO.getUniqId());
adjCourtCnctnService.updateAdjCourtCnctnStatCd(adjCourtaprvlVO);
}
modelAndView.addObject("result", KccadrConstants.SUCCESS);
return modelAndView;
}
@RequestMapping("/kccadr/adjCourtAprvl/popup/aprvlReqEndPop.do")
public String aprvlReqEndPop(
@ModelAttribute("adjCourtaprvlVO") AdjCourtaprvlVO adjCourtaprvlVO
, ModelMap model
) throws Exception {
return "kccadr/adjCourtCnctn/pop/adjCourtaprvlReqEndPop";
}
}

View File

@ -1,52 +1,23 @@
package kcc.kccadr.adjCourtCnctn.web;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.psl.dataaccess.util.EgovMap;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultCodeVO;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.util.RedirectUrlMaker;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.fcc.service.EgovStringUtil;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtAppVO;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtCnctnService;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtCnctnVO;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtDeptVO;
import kcc.kccadr.adjCourtCnctn.service.AdjCourtRprtMgrVO;
import kcc.kccadr.cmm.KccadrCourtConstants;
import kcc.kccadr.adjReqMgrPast.service.AdjReqMgrPastVO;
import kcc.kccadr.cmm.RestResponse;
import kcc.let.org.service.LocVO;
import kcc.let.sec.ram.service.AuthorManageVO;
import kcc.let.sec.ram.service.EgovAuthorManageService;
import kcc.let.uat.uia.service.EgovLoginService;
import kcc.let.uss.umt.service.EgovUserManageService;
import kcc.let.uss.umt.service.UserDefaultVO;
import kcc.let.uss.umt.service.UserManageVO;
/**
*
@ -69,57 +40,20 @@ public class AdjCourtCnctnController {
@Resource(name = "AdjCourtCnctnService")
private AdjCourtCnctnService adjCourtCnctnService;
//파일정보의 관리
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
@Resource(name = "loginService")
private EgovLoginService loginService;
@Resource(name = "userManageService")
private EgovUserManageService userManageService;
/** cmmUseService */
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@Resource(name = "egovAuthorManageService")
private EgovAuthorManageService egovAuthorManageService;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileMngService;
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtCnctnList.do")
public String adjCourtCnctnList(@ModelAttribute("adjCourtCnctnVO") AdjCourtCnctnVO adjCourtCnctnVO, ModelMap model) throws Exception {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
System.out.println(" :: loginVO.getOfcpsNm() :: "+loginVO.getOfcpsNm());
if(loginVO != null && (KccadrCourtConstants.CRT_DEPT_ORDINARY).equals(loginVO.getOfcpsNm())) {
adjCourtCnctnVO.setDeptOrdinaryYn("Y");
adjCourtCnctnVO.setUniqId(loginVO.getUniqId());
}else if(loginVO != null && (KccadrCourtConstants.CRT_DEPT_GENERAL).equals(loginVO.getOfcpsNm())) {
//총괄조정일경우
//insttCode 해당 법원 구하는 로직
UserManageVO userManageVO = new UserManageVO();
userManageVO = userManageService.selectUser(loginVO.getUniqId());
System.out.println("userManageVO.getInsttCode() :: "+userManageVO.getInsttCode());
adjCourtCnctnVO.setCrtLinkHouse(userManageVO.getInsttCode().trim());
}
model.addAttribute("ofcpsNm",loginVO.getOfcpsNm());
adjCourtCnctnVO.setSearchStatCd("list");
if(adjCourtCnctnVO.getPageUnit() != 10) {
adjCourtCnctnVO.setPageUnit(adjCourtCnctnVO.getPageUnit());
}
if("".equals(adjCourtCnctnVO.getSearchSortCnd())){
adjCourtCnctnVO.setSearchSortCnd("CRT_SEQ");
adjCourtCnctnVO.setSearchSortCnd("COURT_SEQ");
adjCourtCnctnVO.setSearchSortOrd("desc");
}
System.out.println("searchMonth2 :: "+ adjCourtCnctnVO.getSearchMonth2());
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(adjCourtCnctnVO.getPageIndex());
@ -131,37 +65,10 @@ public class AdjCourtCnctnController {
adjCourtCnctnVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
paginationInfo.setTotalRecordCount(adjCourtCnctnService.adjCourtCnctnListCount(adjCourtCnctnVO));
model.addAttribute("paginationInfo", paginationInfo);
if(StringUtil.isEmpty(adjCourtCnctnVO.getSearchMonth())) {
adjCourtCnctnVO.setSearchMonth("1");
}
if (StringUtil.isEmpty(adjCourtCnctnVO.getSearchStartDt())) { // 조회일시가 null인경우
Date today = new Date();
int month = -1;
if(StringUtil.isNotEmpty(adjCourtCnctnVO.getSearchMonth())) {
month = -(Integer.valueOf(adjCourtCnctnVO.getSearchMonth()));
}
adjCourtCnctnVO.setSearchStartDt(DateFormatUtils.format(DateUtils.addMonths(today, month), "yyyyMMdd"));
adjCourtCnctnVO.setSearchEndDt(DateFormatUtils.format(today, "yyyyMMdd"));
}
List<AdjCourtCnctnVO> list = adjCourtCnctnService.adjCourtCnctnList(adjCourtCnctnVO);
model.addAttribute("deptNmArr", deptNmArr(list));
// 복호화
model.addAttribute("list", list);
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("CC701");
List<?> corporationCmmCode = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("corporationCmmCode", corporationCmmCode);
return "kccadr/adjCourtCnctn/adjCourtCnctnList";
}
@ -179,88 +86,15 @@ public class AdjCourtCnctnController {
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtCnctnDetail.do")
public String adjCourtCnctnDetail(@ModelAttribute("adjCourtCnctnVO") AdjCourtCnctnVO CourtVO, ModelMap model) throws Exception {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
model.addAttribute("ofcpsNm",loginVO.getOfcpsNm());
AdjCourtCnctnVO adjCourtCnctnVO = adjCourtCnctnService.findByid(CourtVO);
// 처음 확인이면 확인 컬럼에 crtCnfrm = "Y" udpate
if("N".equals(CourtVO.getCrtCnfrm())
&& "80".equals(CourtVO.getOfcpsNm())) {
CourtVO.setCrtCnfrm("Y");
CourtVO.setEsntlId(loginVO.getUniqId());
CourtVO.setLastUpdusrId(loginVO.getUniqId());
adjCourtCnctnService.updateOfcpsNmFromAdrCourtDeptMgr(CourtVO);
}
if(StringUtil.isEmpty(adjCourtCnctnVO.getTabSeq())) {
adjCourtCnctnVO.setTabSeq("0");
}
model.addAttribute("courtVO", adjCourtCnctnVO);
model.addAttribute("loginVO", loginVO);
return "kccadr/adjCourtCnctn/adjCourtCnctnDetail";
}
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtCnctnDetailTab0.do")
public String adjCourtCnctnDetailTab0(@ModelAttribute("adjCourtCnctnVO") AdjCourtCnctnVO CourtVO, ModelMap model) throws Exception {
AdjCourtCnctnVO adjCourtCnctnVO = adjCourtCnctnService.findByid(CourtVO);
adjCourtCnctnVO.setAdjCourtRprtMgrList(adjCourtCnctnService.findByIdFromAdjCourtRprtMgr(adjCourtCnctnVO));
model.addAttribute("courtVO", adjCourtCnctnVO);
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
model.addAttribute("loginVO", loginVO);
return "kccadr/adjCourtCnctn/adjCourtCnctnDetailTab0";
}
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtCnctnDetailTab1.do")
public String adjCourtCnctnDetailTab1(@ModelAttribute("adjCourtCnctnVO") AdjCourtCnctnVO CourtVO, ModelMap model) throws Exception {
AdjCourtCnctnVO adjCourtCnctnVO = adjCourtCnctnService.findByid(CourtVO);
model.addAttribute("courtVO", adjCourtCnctnVO);
List<AdjCourtCnctnVO> list = adjCourtCnctnService.selectAdjCourtCnctniFileList(CourtVO);
model.addAttribute("list", list);
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
model.addAttribute("loginVO", loginVO);
return "kccadr/adjCourtCnctn/adjCourtCnctnDetailTab1";
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/popup/adjCourtCnctnFilePop.do")
public String adjCourtCnctnFilePop(@ModelAttribute("adjCourtCnctnVO") AdjCourtCnctnVO adjCourtCnctnVO, ModelMap model) throws Exception {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
model.addAttribute("userId", userId);
return "kccadr/adjCourtCnctn/pop/adjCourtCnctnFilePop";
}
@RequestMapping("/kccadr/adjCourtCnctn/popup/adjCourtCnctnFilePopAjax.do")
public ResponseEntity<RestResponse> adjCourtCnctnFilePopAjax(final MultipartHttpServletRequest multiRequest, AdjCourtCnctnVO adjCourtCnctnVO) throws Exception {
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
adjCourtCnctnVO.setFrstRegisterId(loginVO.getUniqId());
return ResponseEntity.ok().body(adjCourtCnctnService.insertCourtCnctnFile(adjCourtCnctnVO, multiRequest));
}
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtCnctnModify.do")
public String adjCourtCnctnModify(@ModelAttribute("adjCourtCnctnVO") AdjCourtCnctnVO CourtVO, ModelMap model) throws Exception {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
model.addAttribute("ofcpsNm",loginVO.getOfcpsNm());
AdjCourtCnctnVO adjCourtCnctnVO = adjCourtCnctnService.findByid(CourtVO);
model.addAttribute("courtVO", adjCourtCnctnVO);
return "kccadr/adjCourtCnctn/adjCourtCnctnModify";
}
@ -268,17 +102,17 @@ public class AdjCourtCnctnController {
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtCnctnRegist.do")
public String adjCourtCnctnRegist(@ModelAttribute("adjCourtCnctnVO") AdjCourtCnctnVO adjCourtCnctnVO, ModelMap model) throws Exception {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
model.addAttribute("ofcpsNm",loginVO.getOfcpsNm());
AdjReqMgrPastVO adjReqMgrPastVO = new AdjReqMgrPastVO();
model.addAttribute("courtVO", adjReqMgrPastVO);
return "kccadr/adjCourtCnctn/adjCourtCnctnRegist";
}
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtCnctnRegistAjax.do")
public ResponseEntity<RestResponse> adjCourtCnctnRegistAjax(final MultipartHttpServletRequest multiRequest, AdjCourtCnctnVO adjCourtCnctnVO) throws Exception {
public ResponseEntity<RestResponse> adjCourtCnctnRegistAjax(@ModelAttribute("adjCourtCnctnVO") AdjCourtCnctnVO adjCourtCnctnVO) throws Exception {
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
adjCourtCnctnVO.setFrstRegisterId(loginVO.getUniqId());
return ResponseEntity.ok().body(adjCourtCnctnService.insertCourtCnctn(adjCourtCnctnVO, multiRequest));
return ResponseEntity.ok().body(adjCourtCnctnService.insertCourtCnctn(adjCourtCnctnVO));
}
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtCnctnUpdateAjax.do")
@ -289,394 +123,4 @@ public class AdjCourtCnctnController {
return ResponseEntity.ok().body(adjCourtCnctnService.updateCourtCnctn(adjCourtCnctnVO));
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/popup/adjCourtCnctnDeptPop.do")
public String adjCourtCnctnDeptPop(@ModelAttribute("deptVO") AdjCourtDeptVO deptVO, ModelMap model) throws Exception {
model.addAttribute("adjCourtDeptVO", adjCourtCnctnService.selectAdjCourtCnctniDeptPop());
return "kccadr/adjCourtCnctn/pop/adjCourtCnctnDeptPop";
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/insertAdjCourtCnctnDeptPopAjax.do")
public ResponseEntity<RestResponse> insertAdjCourtCnctnDeptPopAjax(@ModelAttribute("deptVO") AdjCourtDeptVO deptVO) throws Exception {
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
deptVO.setLastUpdusrId(loginVO.getUniqId());
deptVO.setFrstRegisterId(loginVO.getUniqId());
return ResponseEntity.ok().body(adjCourtCnctnService.insertAdjCourtCnctnDeptPopAjax(deptVO));
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/popup/adjCourtCnctnAppPop.do")
public String adjCourtCnctnAppPop(@RequestParam(value = "endFlag" , required = false) String endFlag, @ModelAttribute("adjCourtAppVO") AdjCourtAppVO adjCourtAppVO, ModelMap model) throws Exception {
model.addAttribute("endFlag", endFlag);
model.addAttribute("list", adjCourtCnctnService.selectAdjCourtCnctnAppList(adjCourtAppVO));
return "kccadr/adjCourtCnctn/pop/adjCourtCnctnAppPop";
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/updateCrtAdjCmsnrMenoAjax.do")
public ResponseEntity<RestResponse> updateCrtAdjCmsnrMenoAjax(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception {
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
adjCourtCnctnVO.setLastUpdusrId(loginVO.getUniqId());
adjCourtCnctnVO.setFrstRegisterId(loginVO.getUniqId());
return ResponseEntity.ok().body(adjCourtCnctnService.updateCrtAdjCmsnrMenoAjax(adjCourtCnctnVO));
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/updateCrtAdjAdminMenoAjax.do")
public ResponseEntity<RestResponse> updateCrtAdjAdminMenoAjax(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception {
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
adjCourtCnctnVO.setLastUpdusrId(loginVO.getUniqId());
adjCourtCnctnVO.setFrstRegisterId(loginVO.getUniqId());
return ResponseEntity.ok().body(adjCourtCnctnService.updateCrtAdjAdminMenoAjax(adjCourtCnctnVO));
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/updateCrtStatCdAjax.do")
public ResponseEntity<RestResponse> updateCrtStatCdAjax(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception {
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
adjCourtCnctnVO.setLastUpdusrId(loginVO.getUniqId());
adjCourtCnctnVO.setFrstRegisterId(loginVO.getUniqId());
return ResponseEntity.ok().body(adjCourtCnctnService.updateCrtStatCdAjax(adjCourtCnctnVO));
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/popup/adjCourtCnctnAppDetailPop.do")
public String adjCourtCnctnAppDetailPop(@ModelAttribute("adjCourtAppVO") AdjCourtAppVO adjCourtAppVO, ModelMap model) throws Exception {
AdjCourtAppVO detailVO = adjCourtCnctnService.selectAdjCourtCnctnAppDetail(adjCourtAppVO);
model.addAttribute("detailVO", detailVO);
//파일 정보 가져오기
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(detailVO.getCrtAtchFileId());
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("fileListCnt", result.size());
return "kccadr/adjCourtCnctn/pop/adjCourtCnctnAppDetailPop";
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/popup/adjCourtCnctnAppRegPop.do")
public String adjCourtCnctnAppRegPop(@ModelAttribute("adjCourtAppVO") AdjCourtAppVO adjCourtAppVO, ModelMap model) throws Exception {
adjCourtAppVO.setCrtSn(Integer.toString(adjCourtCnctnService.selectAdjCourtCnctnAppNextSn(adjCourtAppVO)));
return "kccadr/adjCourtCnctn/pop/adjCourtCnctnAppRegPop";
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/popup/adjCourtCnctnAppRegPopAjax.do")
public ResponseEntity<RestResponse> adjCourtCnctnAppRegPopAjax(final MultipartHttpServletRequest multiRequest, AdjCourtAppVO adjCourtAppVO) throws Exception {
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
adjCourtAppVO.setLastUpdusrId(loginVO.getUniqId());
adjCourtAppVO.setFrstRegisterId(loginVO.getUniqId());
return ResponseEntity.ok().body(adjCourtCnctnService.insertAdjCourtCnctnAppReg(adjCourtAppVO, multiRequest));
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/popup/adjCourtCnctnEndPop.do")
public String adjCourtCnctnEndPop(@ModelAttribute("searchVO") AdjCourtCnctnVO adjCourtCnctnVO, ModelMap model) throws Exception {
model.addAttribute("adjCourtCnctnVO", adjCourtCnctnService.findByid(adjCourtCnctnVO));
return "kccadr/adjCourtCnctn/pop/adjCourtCnctnEndRegPop";
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/popup/adjCourtCnctnEndPopAjax.do")
public ResponseEntity<RestResponse> adjCourtCnctnEndPopAjax(final MultipartHttpServletRequest multiRequest, AdjCourtCnctnVO adjCourtCnctnVO) throws Exception {
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
adjCourtCnctnVO.setLastUpdusrId(loginVO.getUniqId());
adjCourtCnctnVO.setFrstRegisterId(loginVO.getUniqId());
return ResponseEntity.ok().body(adjCourtCnctnService.updateAdjCourtCnctnEnd(adjCourtCnctnVO, multiRequest));
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/popup/adjCourtCnctnEndAfterPop.do")
public String adjCourtCnctnEndAfterPop(@ModelAttribute("searchVO") AdjCourtCnctnVO adjCourtCnctnVO, ModelMap model) throws Exception {
AdjCourtDeptVO adjCourtDeptVO = new AdjCourtDeptVO();
adjCourtDeptVO.setCrtSeq(adjCourtCnctnVO.getCrtSeq());
model.addAttribute("adjCourtDeptVO", adjCourtCnctnService.selectCourtDept(adjCourtDeptVO));
model.addAttribute("adjCourtCnctnVO", adjCourtCnctnService.findByid(adjCourtCnctnVO));
return "kccadr/adjCourtCnctn/pop/adjCourtCnctnEndAfterPop";
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/popup/adjCourtCnctnEndAfterPopAjax.do")
public ResponseEntity<RestResponse> adjCourtCnctnEndAfterPopAjax(AdjCourtCnctnVO adjCourtCnctnVO, AdjCourtDeptVO deptVO) throws Exception {
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
deptVO.setLastUpdusrId(loginVO.getUniqId());
deptVO.setFrstRegisterId(loginVO.getUniqId());
adjCourtCnctnVO.setLastUpdusrId(loginVO.getUniqId());
adjCourtCnctnVO.setFrstRegisterId(loginVO.getUniqId());
return ResponseEntity.ok().body(adjCourtCnctnService.updateAdjCourtCnctnEndAfterPopAjax(adjCourtCnctnVO, deptVO));
}
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtCnctnEndList.do")
public String adjCourtCnctnEndList(@ModelAttribute("adjCourtCnctnVO") AdjCourtCnctnVO adjCourtCnctnVO, ModelMap model) throws Exception {
adjCourtCnctnVO.setSearchStatCd("endList");
if(adjCourtCnctnVO.getPageUnit() != 10) {
adjCourtCnctnVO.setPageUnit(adjCourtCnctnVO.getPageUnit());
}
if("".equals(adjCourtCnctnVO.getSearchSortCnd())){
adjCourtCnctnVO.setSearchSortCnd("CRT_SEQ");
adjCourtCnctnVO.setSearchSortOrd("desc");
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(adjCourtCnctnVO.getPageIndex());
paginationInfo.setRecordCountPerPage(adjCourtCnctnVO.getPageUnit());
paginationInfo.setPageSize(adjCourtCnctnVO.getPageSize());
adjCourtCnctnVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
adjCourtCnctnVO.setLastIndex(paginationInfo.getLastRecordIndex());
adjCourtCnctnVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
paginationInfo.setTotalRecordCount(adjCourtCnctnService.adjCourtCnctnListCount(adjCourtCnctnVO));
model.addAttribute("paginationInfo", paginationInfo);
List<AdjCourtCnctnVO> list = adjCourtCnctnService.adjCourtCnctnList(adjCourtCnctnVO);
// try {
// list = list.stream()
// .filter(t -> t.getCrtStatCd() != null)
// .filter(t -> Integer.parseInt(t.getCrtStatCd()) > 201050)
// .collect(Collectors.toList());
// } catch (Exception e) {
// System.out.println(e.getMessage());
// }
// 복호화
model.addAttribute("list", list);
model.addAttribute("endFlag", "end");
return "kccadr/adjCourtCnctn/adjCourtCnctnList";
}
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtCnctnEndDetail.do")
public String adjCourtCnctnEndDetail(@ModelAttribute("adjCourtCnctnVO") AdjCourtCnctnVO CourtVO, ModelMap model) throws Exception {
AdjCourtCnctnVO adjCourtCnctnVO = adjCourtCnctnService.findByid(CourtVO);
if(StringUtil.isEmpty(adjCourtCnctnVO.getTabSeq())) {
adjCourtCnctnVO.setTabSeq("0");
}
model.addAttribute("courtVO", adjCourtCnctnVO);
return "kccadr/adjCourtCnctn/adjCourtCnctnEndDetail";
}
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtCnctnEndDetailTab0.do")
public String adjCourtCnctnEndDetailTab0(@ModelAttribute("adjCourtCnctnVO") AdjCourtCnctnVO CourtVO, ModelMap model) throws Exception {
AdjCourtCnctnVO adjCourtCnctnVO = adjCourtCnctnService.findByid(CourtVO);
model.addAttribute("courtVO", adjCourtCnctnVO);
AdjCourtDeptVO adjCourtDeptVO = new AdjCourtDeptVO();
adjCourtDeptVO.setCrtSeq(adjCourtCnctnVO.getCrtSeq());
model.addAttribute("adjCourtDeptVO", adjCourtCnctnService.selectCourtDept(adjCourtDeptVO));
return "kccadr/adjCourtCnctn/adjCourtCnctnEndDetailTab0";
}
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtCnctnEndDetailTab1.do")
public String adjCourtCnctnEndDetailTab1(@ModelAttribute("adjCourtCnctnVO") AdjCourtCnctnVO CourtVO, ModelMap model) throws Exception {
AdjCourtCnctnVO adjCourtCnctnVO = adjCourtCnctnService.findByid(CourtVO);
model.addAttribute("courtVO", adjCourtCnctnVO);
List<AdjCourtCnctnVO> list = adjCourtCnctnService.selectAdjCourtCnctniFileList(CourtVO);
model.addAttribute("list", list);
return "kccadr/adjCourtCnctn/adjCourtCnctnEndDetailTab1";
}
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtSelectUserList.do")
public String adjCourtSelectUserList(@ModelAttribute("userSearchVO") UserDefaultVO userSearchVO,
ModelMap model,
HttpServletRequest request,
HttpSession session) throws Exception {
{
//일반관리자가 좌측의 매뉴의 관리자 관리 클릭시 리스트가 아닌 자신의 정보수정페이지로 리로딩.
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();//최고관리자의 경우 비밀번호 확인 없음.
loginVO.setId(loginVO.getId());
if(!"ROLE_ADMIN".equals(loginService.getUserAuth(loginVO).getAuthority())){//최고관리자 아닐경우
return "redirect:/EgovTopPageLink.do?link=/uss/umt/user/EgovUserSelectUpdtView.do?selectedId="+loginVO.getUniqId()+"&baseMenuNo=3500000" ;
}
}
if(userSearchVO.getPageUnit() != 10) {
userSearchVO.setPageUnit(userSearchVO.getPageUnit());
}
userSearchVO.setPageUnit(50);
/** pageing */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(userSearchVO.getPageIndex());
paginationInfo.setRecordCountPerPage(userSearchVO.getPageUnit());
paginationInfo.setPageSize(userSearchVO.getPageSize());
userSearchVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
userSearchVO.setLastIndex(paginationInfo.getLastRecordIndex());
userSearchVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
//userSearchVO.setAdminYn("Y");
if("".equals(userSearchVO.getSearchSortCnd())){ //최초조회시 최신것 조회List
userSearchVO.setSearchSortCnd("uniqId");
userSearchVO.setSearchSortOrd("desc");
}
userSearchVO.setCourtYn("Y");
List<?> resultList = userManageService.selectUserList(userSearchVO) ;
model.addAttribute("resultList", resultList);
//paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((Long)((EgovMap)resultList.get(0)).get("totCnt")).intValue() : 0);
paginationInfo.setTotalRecordCount( resultList.size()> 0 ? ((int)((EgovMap)resultList.get(0)).get("totCnt")) : 0);
model.addAttribute("paginationInfo", paginationInfo);
//사용자상태코드를 코드정보로부터 조회
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("COM038");
model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));//사용자상태코드목록
//권한조회
AuthorManageVO authorManageVO = new AuthorManageVO();
authorManageVO.setFirstIndex(0);
authorManageVO.setLastIndex(10);
authorManageVO.setRecordCountPerPage(10);
authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO));
model.addAttribute("authorList", authorManageVO.getAuthorManageList());
return "kccadr/adjCourtCnctn/adjCourtUserList";
}
@RequestMapping("/kccadr/adjCourtCnctn/adjCourtSelectUserDetail.do")
public String adjCourtSelectUserDetail(@RequestParam("selectedId") String uniqId,
@ModelAttribute("searchVO") UserDefaultVO userSearchVO,
HttpServletRequest request,
@RequestParam Map<String, Object> commandMap,
Model model) throws Exception {
ComDefaultCodeVO vo = new ComDefaultCodeVO();
//패스워드힌트목록을 코드정보로부터 조회
vo.setCodeId("COM022");
model.addAttribute("passwordHint_result", cmmUseService.selectCmmCodeDetail(vo));
//성별구분코드를 코드정보로부터 조회
vo.setCodeId("COM014");
model.addAttribute("sexdstnCode_result", cmmUseService.selectCmmCodeDetail(vo));
//사용자상태코드를 코드정보로부터 조회
vo.setCodeId("COM013");
model.addAttribute("emplyrSttusCode_result", cmmUseService.selectCmmCodeDetail(vo));
//소속기관코드를 코드정보로부터 조회 - COM025
vo.setCodeId("COM025");
model.addAttribute("insttCode_result", cmmUseService.selectCmmCodeDetail(vo));
//조직정보를 조회 - ORGNZT_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("orgnztId_result", cmmUseService.selectOgrnztIdDetail(vo));
//그룹정보를 조회 - GROUP_ID정보
vo.setTableNm("LETTNORGNZTINFO");
model.addAttribute("groupId_result", cmmUseService.selectGroupIdDetail(vo));
UserManageVO userManageVO = new UserManageVO();
userManageVO = userManageService.selectUser(uniqId);
model.addAttribute("userSearchVO", userSearchVO);
model.addAttribute("userManageVO", userManageVO);
if(StringUtils.isNotBlank(userManageVO.getAtchFileId())){
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(userManageVO.getAtchFileId());
List<FileVO> fileList = fileMngService.selectFileInfs(fileVO);
model.addAttribute("fileList", fileList);
}
//권한조회
AuthorManageVO authorManageVO = new AuthorManageVO();
authorManageVO.setFirstIndex(0);
authorManageVO.setLastIndex(10);
authorManageVO.setRecordCountPerPage(10);
authorManageVO.setAuthorSet("01");
authorManageVO.setSearchSortCnd("sort_num");
authorManageVO.setSearchSortOrd("desc");
authorManageVO.setAuthorManageList(egovAuthorManageService.selectAuthorList(authorManageVO));
model.addAttribute("authorList", authorManageVO.getAuthorManageList());
//initRsa(request);
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if(!"ROLE_ADMIN".equals(loginVO.getAuthority()) && !uniqId.equals(loginVO.getUniqId())) {
/*return "/cmm/main/mainPage.do";*/
RedirectUrlMaker redirectUrlMaker = new RedirectUrlMaker("/cmm/main/mainPage.do");
return redirectUrlMaker.getRedirectUrl();
}
if("ROLE_ADMIN".equals(loginVO.getAuthority())) {
model.addAttribute("isAdmin", "Y");
}
if("ROLE_USER_MEMBER".equals(loginVO.getAuthority())) {
model.addAttribute("isMember", "Y");
}
return "kccadr/adjCourtCnctn/adjCourtUserDetail";
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/popup/adjCourtRprtDePop.do")
public String adjCourtRprtDePop(@ModelAttribute("AdjCourtCnctnVO") AdjCourtCnctnVO adjCourtCnctnVO, ModelMap model) throws Exception {
AdjCourtRprtMgrVO adjCourtRprtMgrVO = adjCourtCnctnService.findByRprtSeqFromAdrCourtRprtMgr(adjCourtCnctnVO);
model.addAttribute("adjCourtRprtMgrVO", adjCourtRprtMgrVO);
return "kccadr/adjCourtCnctn/pop/adjCourtRprtDePop";
}
@RequestMapping(value = "/kccadr/adjCourtCnctn/insertAdjCourtRprtDePopAjax.do")
public ResponseEntity<RestResponse> insertAdjCourtRprtDePopAjax(AdjCourtCnctnVO adjCourtCnctnVO) throws Exception {
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
adjCourtCnctnVO.setLastUpdusrId(loginVO.getUniqId());
adjCourtCnctnVO.setFrstRegisterId(loginVO.getUniqId());
return ResponseEntity.ok().body(adjCourtCnctnService.insertAdjCourtRprtDePopAjax(adjCourtCnctnVO));
}
private List<Map<String, String>> deptNmArr(List<AdjCourtCnctnVO> list){
List<Map<String, String>> tmp1 = new ArrayList<Map<String, String>>();
if(list.stream().count() > 0) {
String[] deptNmArr = list.get(0).getDeptNmArr().split("\\|");
for(String tmp : deptNmArr) {
String[] tmpArr = null;
tmpArr = tmp.split("§");
Map<String, String> tmpMap = new HashMap<String, String>();
tmpMap.put("userNm", tmpArr[0]);
tmpMap.put("esntlId", tmpArr[1]);
tmp1.add(tmpMap);
}
}
return tmp1;
}
}

View File

@ -1,32 +0,0 @@
package kcc.kccadr.adjCs.service;
import java.util.List;
import egovframework.rte.fdl.cmmn.exception.FdlException;
public interface AdjCsService {
List<AdjCsVO> selectDetailList(AdjCsVO adjCsVO);
AdjCsVO selectAdjCsDetail(AdjCsVO adjCsVO);
List<AdjCsVO> selectAdjCsList(AdjCsVO adjCsVO);
void updateAdjCs(AdjCsVO adjCsVO);
void insertAdjCs(AdjCsVO adjCsVO) throws FdlException;
// public int insertGlossary(AdjCsVO glossaryVO) throws Exception;
//
// public List<AdjCsVO> selectGlossaryList(AdjCsVO glossaryVO) throws Exception;
//
// public AdjCsVO selectGlossaryDetail(AdjCsVO glossaryVO) throws Exception;
//
// public void updateGlossaryModify(AdjCsVO glossaryVO) throws Exception;
//
// public void deleteGlossary(AdjCsVO glossaryVO) throws Exception;
//
// public List<AdjCsVO> selectGlossaryListForWeb(AdjCsVO glossaryVO) throws Exception;
}

View File

@ -1,93 +0,0 @@
package kcc.kccadr.adjCs.service;
import java.io.Serializable;
import kcc.com.cmm.ComDefaultVO;
public class AdjCsVO extends ComDefaultVO implements Serializable{
private static final long serialVersionUID = 1L;
private String cnt;
private String csSeq;
private String csCategory;
private String csSubject;
private String csCn;
private String frstRegisterId;
private String frstRegistPnttm;
private String lastUpdusrId;
private String lastUpdtPnttm;
private String useYn;
private String searchKeywordSearch;
public String getCnt() {
return cnt;
}
public void setCnt(String cnt) {
this.cnt = cnt;
}
public String getCsSeq() {
return csSeq;
}
public void setCsSeq(String csSeq) {
this.csSeq = csSeq;
}
public String getCsCategory() {
return csCategory;
}
public void setCsCategory(String csCategory) {
this.csCategory = csCategory;
}
public String getCsSubject() {
return csSubject;
}
public void setCsSubject(String csSubject) {
this.csSubject = csSubject;
}
public String getCsCn() {
return csCn;
}
public void setCsCn(String csCn) {
this.csCn = csCn;
}
public String getFrstRegisterId() {
return frstRegisterId;
}
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
}
public void setFrstRegistPnttm(String frstRegistPnttm) {
this.frstRegistPnttm = frstRegistPnttm;
}
public String getLastUpdusrId() {
return lastUpdusrId;
}
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
public String getLastUpdtPnttm() {
return lastUpdtPnttm;
}
public void setLastUpdtPnttm(String lastUpdtPnttm) {
this.lastUpdtPnttm = lastUpdtPnttm;
}
public String getUseYn() {
return useYn;
}
public void setUseYn(String useYn) {
this.useYn = useYn;
}
public String getSearchKeywordSearch() {
return searchKeywordSearch;
}
public void setSearchKeywordSearch(String searchKeywordSearch) {
this.searchKeywordSearch = searchKeywordSearch;
}
}

View File

@ -1,35 +0,0 @@
package kcc.kccadr.adjCs.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.kccadr.adjCs.service.AdjCsVO;
@Repository("AdjCsDAO")
public class AdjCsDAO extends EgovAbstractDAO{
public List<AdjCsVO> selectDetailList(AdjCsVO adjCsVO) {
return (List<AdjCsVO>) list("adjCsDAO.selectDetailList", adjCsVO);
}
public AdjCsVO selectAdjCsDetail(AdjCsVO adjCsVO) {
return (AdjCsVO) select("adjCsDAO.selectAdjCsDetail", adjCsVO);
}
public List<AdjCsVO> selectAdjCsList(AdjCsVO adjCsVO) {
return (List<AdjCsVO>) list("adjCsDAO.selectAdjCsList", adjCsVO);
}
public void updateAdjCs(AdjCsVO adjCsVO) {
update("adjCsDAO.updateAdjCs", adjCsVO);
}
public void insertAdjCs(AdjCsVO adjCsVO) {
insert("adjCsDAO.insertAdjCs", adjCsVO);
}
}

View File

@ -1,65 +0,0 @@
package kcc.kccadr.adjCs.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.exception.FdlException;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.kccadr.adjCs.service.AdjCsService;
import kcc.kccadr.adjCs.service.AdjCsVO;
@Service("AdjCsService")
public class AdjCsServiceImpl implements AdjCsService{
/** ID Generation */
@Resource(name="adjCsIdgenService")
private EgovIdGnrService adjCsIdgenService;
@Resource(name = "AdjCsDAO")
private AdjCsDAO adjCsDAO;
@Override
public List<AdjCsVO> selectDetailList(AdjCsVO adjCsVO) {
return adjCsDAO.selectDetailList(adjCsVO);
}
@Override
public AdjCsVO selectAdjCsDetail(AdjCsVO adjCsVO) {
AdjCsVO adjCsInfoVO = adjCsDAO.selectAdjCsDetail(adjCsVO);
if(adjCsInfoVO != null) {
// adjCsInfoVO.setCsCn(adjCsInfoVO.getCsCn().replace("\r\n","<br>"));
}
return adjCsInfoVO;
}
@Override
public List<AdjCsVO> selectAdjCsList(AdjCsVO adjCsVO) {
return adjCsDAO.selectAdjCsList(adjCsVO);
}
@Override
public void updateAdjCs(AdjCsVO adjCsVO) {
adjCsDAO.updateAdjCs(adjCsVO);
}
@Override
public void insertAdjCs(AdjCsVO adjCsVO) throws FdlException {
adjCsVO.setCsSeq(adjCsIdgenService.getNextStringId());
adjCsDAO.insertAdjCs(adjCsVO);
}
}

View File

@ -1,201 +0,0 @@
package kcc.kccadr.adjCs.web;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.ComDefaultCodeVO;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.kccadr.adjCs.service.AdjCsService;
import kcc.kccadr.adjCs.service.AdjCsVO;
import kcc.kccadr.glossary.service.GlossaryService;
import kcc.let.uss.ion.sat.service.EgovSatManageService;
@Controller
public class AdjCsController {
@Resource(name = "GlossaryService")
private GlossaryService glossaryService;
@Resource(name = "AdjCsService")
private AdjCsService adjCsService;
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@Resource(name = "egovSatManageService")
private EgovSatManageService egovSatManageService;
/**
* @methodName : selectTextSenseList
* @author : JunHo Lee
* @date : 2023.11.03
* @description : 용어해설 목록
* @param adjCsVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value="/kccadr/adjCs/adjCsList.do")
public String glossaryList(@ModelAttribute("searchVO") AdjCsVO adjCsVO, ModelMap model) throws Exception{
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if(user == null) {
return "redirect:/uat/uia/EgovLoginUsr.do";
}
if(adjCsVO.getPageUnit() != 10) {
adjCsVO.setPageUnit(adjCsVO.getPageUnit());
}
if("".equals(adjCsVO.getSearchSortCnd())){
adjCsVO.setSearchSortCnd("frstRegistPnttm");
adjCsVO.setSearchSortOrd("desc");
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(adjCsVO.getPageIndex());
paginationInfo.setRecordCountPerPage(adjCsVO.getPageUnit());
paginationInfo.setPageSize(adjCsVO.getPageSize());
adjCsVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
adjCsVO.setLastIndex(paginationInfo.getLastRecordIndex());
adjCsVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
adjCsVO.setFrstRegisterId(user.getUniqId());
model.addAttribute("paginationInfo", paginationInfo);
// List<AdjCsVO> list = glossaryService.selectGlossaryList(adjCsVO);
List<AdjCsVO> list = adjCsService.selectAdjCsList(adjCsVO);
if(list.size() > 0) {
paginationInfo.setTotalRecordCount(Integer.parseInt(list.get(0).getCnt()));
}
model.addAttribute("list", list);
return "kccadr/adjCs/adjCsList";
}
@RequestMapping(value="/kccadr/adjCs/adjCsDetail.do")
public String gossaryDetail(@ModelAttribute("searchVO") AdjCsVO adjCsVO, ModelMap model) throws Exception{
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if(user == null) {
return "redirect:/uat/uia/EgovLoginUsr.do";
}
AdjCsVO detailVO = adjCsService.selectAdjCsDetail(adjCsVO);
model.addAttribute("adjCsVO", detailVO);
// if("N".equals(detailVO.getUseYn())) {
// return "redirect:/kccadr/glossary/glossaryList.do";
// }
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("CC201");
List<?> cmmCode = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("cmmCode", cmmCode);
return "kccadr/adjCs/adjCsDetail";
}
@RequestMapping(value="/kccadr/adjCs/adjCsRegist.do")
public String adjCsRegist(@ModelAttribute("searchVO") AdjCsVO adjCsVO, ModelMap model) throws Exception{
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if(user == null) {
return "redirect:/uat/uia/EgovLoginUsr.do";
}
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("CC201");
List<?> cmmCode = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("cmmCode", cmmCode);
// if("N".equals(detailVO.getUseYn())) {
// return "redirect:/kccadr/glossary/glossaryList.do";
// }
return "kccadr/adjCs/adjCsRegist";
}
@RequestMapping(value="/kccadr/adjCs/adjCsModifyAjax.do")
public ModelAndView adjCsModifyAjax(AdjCsVO adjCsVO) throws Exception{
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if(user == null) {
modelAndView.addObject("result", "FAIL");
modelAndView.addObject("message", "다시 로그인 해주세요.");
return modelAndView;
}
try {
System.out.println("adjCsVO :: "+ adjCsVO.getCsSeq());
adjCsVO.setLastUpdusrId(user.getUniqId());
adjCsService.updateAdjCs(adjCsVO);
modelAndView.addObject("result", "SUCCESS");
modelAndView.addObject("message", "수정되었습니다.");
} catch (Exception e) {
modelAndView.addObject("result", "FAIL");
modelAndView.addObject("message", "수정에 실패했습니다.");
}
return modelAndView;
}
@RequestMapping(value="/kccadr/adjCs/adjCsRegistAjax.do")
public ModelAndView adjCsRegistAjax(AdjCsVO adjCsVO) throws Exception{
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if(user == null) {
modelAndView.addObject("result", "FAIL");
modelAndView.addObject("message", "다시 로그인 해주세요.");
return modelAndView;
}
try {
adjCsVO.setFrstRegisterId(user.getUniqId());
adjCsService.insertAdjCs(adjCsVO);
modelAndView.addObject("result", "SUCCESS");
modelAndView.addObject("message", "등록되었습니다.");
} catch (Exception e) {
modelAndView.addObject("result", "FAIL");
modelAndView.addObject("message", "등록에 실패했습니다.");
}
return modelAndView;
}
}

View File

@ -13,8 +13,6 @@ public class RpplVO extends PgrCmmVO implements Serializable {
private String agntYn; /* 조정기일대리여부 */
private String rpplUsrTy; /* 관리인분류 */
private String rpplUsrTyTx; /* 관리인분류 */
private String rpplUsrDiv; /* 신청인구분 */
private String rpplUsrDivTx; /* 신청인구분 */
private String adrOlYn; /* 전자조정진행여부 */
private String rpplId; /* 조정사건관리인ID */
private String rpplNm; /* 이름_대표자 */
@ -89,20 +87,7 @@ public class RpplVO extends PgrCmmVO implements Serializable {
public void setRpplUsrTyTx(String rpplUsrTyTx) {
this.rpplUsrTyTx = rpplUsrTyTx;
}
public String getRpplUsrDiv() {
return rpplUsrDiv;
}
public void setRpplUsrDiv(String rpplUsrDiv) {
this.rpplUsrDiv = rpplUsrDiv;
}
public String getRpplUsrDivTx() {
return rpplUsrDivTx;
}
public void setRpplUsrDivTx(String rpplUsrDivTx) {
this.rpplUsrDivTx = rpplUsrDivTx;
}
public String getAdrOlYn() {
public String getAdrOlYn() {
return adrOlYn;
}
public void setAdrOlYn(String adrOlYn) {

View File

@ -44,7 +44,6 @@ import kcc.com.cmm.spring.data.util.ExcelUtil;
import kcc.com.cmm.util.IpUtil;
import kcc.com.cmm.util.SequenceUtil;
import kcc.com.cmm.util.StringUtil;
import kcc.com.cmm.util.StringUtil2;
import kcc.com.utl.fcc.service.EgovStringUtil;
import kcc.com.utl.user.service.CheckAdrProcessUtil;
import kcc.com.utl.user.service.CheckFileUtil;
@ -259,9 +258,6 @@ public class ApmController {
@RequestMapping(value = "apmList.do")
public String apmList(@ModelAttribute("cmmVO") PgrCmmVO cmmVO, HttpServletRequest request, ModelMap model) throws Exception {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
/*
* if(apmVO.getPageUnit() != 10) { apmVO.setPageUnit(apmVO.getPageUnit()); }
*/
@ -278,12 +274,7 @@ public class ApmController {
if (StringUtil.isEmpty(cmmVO.getSearchStartDt())) { // 조회일시가 null인경우
Date today = new Date();
//조정진행목록 보이는 화면 수정 요청_230524
int month = -1;
if(StringUtil.isNotEmpty(cmmVO.getSearchMonth())) {
month = -(Integer.valueOf(cmmVO.getSearchMonth()));
}
cmmVO.setSearchStartDt(DateFormatUtils.format(DateUtils.addMonths(today, month), "yyyyMMdd"));
cmmVO.setSearchStartDt(DateFormatUtils.format(DateUtils.addMonths(today, -1), "yyyyMMdd"));
cmmVO.setSearchEndDt(DateFormatUtils.format(today, "yyyyMMdd"));
}
@ -321,20 +312,6 @@ public class ApmController {
cmmVO.setCkStsList(tmpList.toArray(new String[tmpList.size()]));
}
//담당사건만 보기 여부 - 기본 : 전체 조회 / ROLE_ADR_ADMIN 권한에 조정조사관 or 조정팀장은 기본 : 담당사건만 조회
if(StringUtil2.isEmpty(cmmVO.getSearchLoginId())) {
//23.8.7 요청 사항에 따라 주석 처리
// if("ROLE_ADR_ADMIN".equals(loginVO.getAuthority()) && ("10".equals(loginVO.getOfcpsNm()) || "20".equals(loginVO.getOfcpsNm()))) {
// cmmVO.setSearchEachAdrAdminYn("Y");
// cmmVO.setSearchLoginId(userId);
// }
}else {
if(!"all".equals(cmmVO.getSearchLoginId())){
cmmVO.setSearchEachAdrAdminYn("Y");
}
}
// cmmVO.setSearchEachAdrAdminYn("Y");
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(cmmVO.getPageIndex());
@ -346,10 +323,8 @@ public class ApmController {
cmmVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
cmmVO.setReqOlCdPst("2");
Map<String, Integer> totalRecordCountMap = cmmService.selectPgrCmmListCntForOnlineOffline(cmmVO);
paginationInfo.setTotalRecordCount(totalRecordCountMap.get("cnt"));
model.addAttribute("cntOnline",totalRecordCountMap.get("cntOnline"));
model.addAttribute("cntOffline",totalRecordCountMap.get("cntOffline"));
paginationInfo.setTotalRecordCount(cmmService.selectPgrCmmListCnt(cmmVO));
model.addAttribute("paginationInfo", paginationInfo);
// reqOlCdPst 값이 있으면 과거사건 조회하지 않음
@ -364,8 +339,6 @@ public class ApmController {
}
}
//조정조사관 리스트
model.addAttribute("adrAdminList", cmmService.selectPgrCmmAdrAdminList());
return "/kccadr/adjPgrMgr/apm/apmList";
}
@ -384,17 +357,14 @@ public class ApmController {
public ModelAndView excel(@ModelAttribute("cmmVO") PgrCmmVO cmmVO, ModelMap model) throws Exception {
cmmVO.setExcelYn("Y");
List list = cmmService.selectPgrCmmListForExcel(cmmVO);
List list = cmmService.selectPgrCmmList(cmmVO);
// 세팅값
String title = "조정진행목록리스트";
int[] width = {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}; // 너비
//String[] header = {"신청일자", "구분", "조정번호", "신청인", "신청내용", "피신청인", "조정부", "조사관", "기일", "진행차수", "조정상태"}; // 헤더에 들어갈 이름
//String[] order = {"SbmtDeDay", "ReqOlCdTx", "AdrNo", "AppliCantNm", "CcTyTx", "ResPonDentNm", "MemDeptNm", "AdrAdmNm", "AppDeDay", "AdrSn", "StatCdTx"}; // vo 내부의 필드 이름 (첫글자 대문자, 낙타체 사용)
String[] header = {"신청일자", "구분", "조정번호", "신청인", "연락처", "이메일", "수신여부", "대리인", "대리인연락처", "대리인이메일", "대리인수신여부", "신청내용", "피신청인", "조정부", "조사관", "기일", "진행차수", "조정상태", "성립여부"}; // 헤더에 들어갈 이름
String[] order = {"SbmtDeDay", "ReqOlCdTx", "AdrNo", "AppliCantNm", "AppliCantPhone", "AppliCantEmail", "AppliCantSendYn", "AppliCantNm2", "AppliCantPhone2", "AppliCantEmail2", "AppliCantSendYn2", "CcTyTx", "ResPonDentNm", "MemDeptNm", "AdrAdmNm", "AppDeDay", "AdrSn", "StatCdTx", "FinalStatCdTxt"}; // vo 내부의 필드 이름 (첫글자 대문자, 낙타체 사용)
int[] width = {4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000}; // 너비
String[] header = {"신청일자", "구분", "조정번호", "신청인", "신청내용", "피신청인", "조정부", "조사관", "기일", "진행차수", "조정상태"}; // 헤더에 들어갈 이름
String[] order = {"SbmtDeDay", "ReqOlCdTx", "AdrNo", "AppliCantNm", "CcTyTx", "ResPonDentNm", "MemDeptNm", "AdrAdmNm", "AppDeDay", "AdrSn", "StatCdTx"}; // vo 내부의 필드 이름 (첫글자 대문자, 낙타체 사용)
// 호출
SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(list, header, order, width, title);
@ -426,14 +396,10 @@ public class ApmController {
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
//문자발송 팝업에 전달할 데이터
model.addAttribute("adminPhone", loginVO.getPhone());
// 조정사건일반
PgrCmmVO info = cmmService.selectPgrCmm(cmmVO);
info.setSearchMonth(cmmVO.getSearchMonth());
info.setSearchEachAdrAdminYn(cmmVO.getSearchEachAdrAdminYn());
model.addAttribute("info", info);
@ -623,20 +589,6 @@ public class ApmController {
List<AdjReqMgrVO> person = adjReqMgrService.selectAdjstReqMgrPersonList(adjReqMgrVO);
decryptInfomation(person ,null);
model.addAttribute("person", person);
//처리일자
PgrCmmVO adrEndDeDayVO = new PgrCmmVO();
adrEndDeDayVO.setAdrSeq(cmmVO.getAdrSeq());
PgrCmmVO PgrCmmVO = new PgrCmmVO();
PgrCmmVO = cmmService.selectAdrEndDeDay(adrEndDeDayVO);
String adrEndDeDay = "";
if(PgrCmmVO != null) {
adrEndDeDay = PgrCmmVO.getAdrEndDeDay();
}
model.addAttribute("adrEndDeDay", adrEndDeDay);
}catch(Exception ex) {
ex.printStackTrace();
}
@ -2174,6 +2126,7 @@ public class ApmController {
, ""
);
System.out.println("adrSn : "+ adrSn);
apmVO.setAdrSn(adrSn);
@ -2787,31 +2740,31 @@ public class ApmController {
String applicantNm = corReqVO.getAppliCantNm(); //신청인 이름
String resPonDentNm = corReqVO.getRpplNm(); //피신청인
if(StringUtil.isNotEmpty(adrNo)) {
if(!adrNo.equals("")) {
oj.put("adrNo", adrNo);
}
if(StringUtil.isNotEmpty(rpplChgCn1)) {
if(!rpplChgCn1.equals("")) {
oj.put("rpplChgCn1", rpplChgCn1);
}
if(StringUtil.isNotEmpty(rpplChgCn2)) {
if(!rpplChgCn2.equals("")) {
oj.put("rpplChgCn2", rpplChgCn2);
}
if(StringUtil.isNotEmpty(applicantNm)) {
if(!applicantNm.equals("")) {
oj.put("applicantNm", applicantNm);
}
if(StringUtil.isNotEmpty(resPonDentNm)) {
if(!resPonDentNm.equals("")) {
oj.put("resPonDentNm", resPonDentNm);

View File

@ -677,81 +677,80 @@ public class ArmController {
List<PgrCmmVO> resultStampInfo = cmmService.selectAtchFileIdInfo(closeVO);
String atchFileId = "";
if(resultStampInfo.size() > 0) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
}
}
if(StringUtil.isNotEmpty(adrSeq)) {
if(!adrSeq.equals("")) {
oj.put("adrSeq", adrSeq);
}
if(StringUtil.isNotEmpty(adrNo)) {
if(!adrNo.equals("")) {
oj.put("adrNo", adrNo);
}
if(StringUtil.isNotEmpty(adrSn)) {
if(!adrSn.equals("")) {
oj.put("adrSn", adrSn);
}
if(StringUtil.isNotEmpty(cctyTx)) {
if(!cctyTx.equals("")) {
oj.put("cctyTx", cctyTx);
}
if(StringUtil.isNotEmpty(memDeptNm)) {
if(!memDeptNm.equals("")) {
oj.put("memDeptNm", memDeptNm);
}
if(StringUtil.isNotEmpty(memName)) {
if(!memName.equals("")) {
oj.put("memName", memName);
}
if(StringUtil.isNotEmpty(closeCn1)) {
if(!closeCn1.equals("")) {
oj.put("closeCn1", closeCn1);
}
if(StringUtil.isNotEmpty(applicantNm)) {
if(!applicantNm.equals("")) {
oj.put("applicantNm", applicantNm);
}
if(StringUtil.isNotEmpty(resPonDentNm)) {
if(!resPonDentNm.equals("")) {
oj.put("resPonDentNm", resPonDentNm);
}
if(StringUtil.isNotEmpty(appDeDay)) {
if(!appDeDay.equals("")) {
oj.put("appDeDay", appDeDay);
}
if(StringUtil.isNotEmpty(rplyEndDeDay)) {
if(!rplyEndDeDay.equals("")) {
oj.put("rplyEndDeDay", rplyEndDeDay);
}
if(StringUtil.isNotEmpty(atchFileId)) {
if(!atchFileId.equals("")) {
String domain = "";

View File

@ -113,10 +113,6 @@ public class ConciliatorManageVO extends ComDefaultVO {
private String userNm; // 결재자명
private String procCnd; // 처리구분 I, U
private String memTeam; // 조정위원 소속
private String searchCondition2;
public String[] getMemSeqArr() {
String[]returnArr;
@ -382,24 +378,6 @@ public class ConciliatorManageVO extends ComDefaultVO {
this.procCnd = procCnd;
}
public String getMemTeam() {
return memTeam;
}
public void setMemTeam(String memTeam) {
this.memTeam = memTeam;
}
public String getSearchCondition2() {
return searchCondition2;
}
public void setSearchCondition2(String searchCondition2) {
this.searchCondition2 = searchCondition2;
}

View File

@ -1,7 +1,5 @@
package kcc.kccadr.adjPgrMgr.cclt.web;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -9,8 +7,6 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
@ -21,8 +17,6 @@ import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.mysql.fabric.xmlrpc.base.Array;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.EgovMessageSource;
@ -32,7 +26,6 @@ import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
import kcc.com.cmm.service.FileVO;
import kcc.com.cmm.util.RedirectUrlMaker;
import kcc.com.cmm.util.StringUtil;
import kcc.kccadr.adjPgrMgr.adjDept.service.AdjustDeptManageService;
import kcc.kccadr.adjPgrMgr.adjDept.service.AdjustDeptManageVO;
import kcc.kccadr.adjPgrMgr.cclt.service.ConciliatorManageService;
@ -91,25 +84,10 @@ public class ConciliatorManageController {
conciliatorManageVO.setSearchSortOrd("desc");
}
if(StringUtils.isNotBlank(conciliatorManageVO.getSearchKeyword()) && !"3".equals(conciliatorManageVO.getSearchCondition())){
if(StringUtils.isNotBlank(conciliatorManageVO.getSearchKeyword())){
conciliatorManageVO.setSearchKeyword(egovCryptoUtil.encrypt(conciliatorManageVO.getSearchKeyword()));
}
if (StringUtil.isEmpty(conciliatorManageVO.getSearchCondition2())) { // 위원임기가 null인경우
conciliatorManageVO.setSearchCondition2("2");
}
if (StringUtil.isEmpty(conciliatorManageVO.getSearchStartDt())) { // 조회일시가 null인경우
Date today = new Date();
//조정진행목록 보이는 화면 수정 요청_230524
int month = -1;
if(StringUtil.isNotEmpty(conciliatorManageVO.getSearchMonth())) {
month = -(Integer.valueOf(conciliatorManageVO.getSearchMonth()));
}
conciliatorManageVO.setSearchStartDt(DateFormatUtils.format(DateUtils.addMonths(today, month), "yyyyMMdd"));
conciliatorManageVO.setSearchEndDt(DateFormatUtils.format(today, "yyyyMMdd"));
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(conciliatorManageVO.getPageIndex());
@ -123,15 +101,12 @@ public class ConciliatorManageController {
model.addAttribute("paginationInfo", paginationInfo);
List<ConciliatorManageVO> list = conciliatorManageService.selectConciliatorManageList(conciliatorManageVO);
this.decryptInfomation(list , null);
model.addAttribute("list", list);
if(StringUtils.isNotBlank(conciliatorManageVO.getSearchKeyword())){
conciliatorManageVO.setSearchKeyword(egovCryptoUtil.decrypt(conciliatorManageVO.getSearchKeyword()));
}
return "kccadr/adjPgrMgr/cclt/ConciliatorManageList";
}
@ -155,20 +130,8 @@ public class ConciliatorManageController {
model.addAttribute("fileList", fileList);
}
this.decryptInfomation(null , info);
String memTeam = info.getMemTeam();
String[] memTeamArray;
if(StringUtil.isNotEmpty(memTeam)) {
memTeamArray = memTeam.split("§");
}else {
memTeamArray = new String[]{""};
}
model.addAttribute("model", info);
model.addAttribute("list", conciliatorManageService.selectConciliatorDeptList(conciliatorManageVO));
model.addAttribute("memTeamArray", memTeamArray);
return "kccadr/adjPgrMgr/cclt/ConciliatorManageDetail";
}

View File

@ -563,13 +563,12 @@ public class CfrmController {
cmmVO.setMemGrade("01");
List<PgrCmmVO> resultStampInfo = cmmService.selectAtchFileIdInfo(cmmVO);
if(resultStampInfo.size() > 0) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
atchFileId = resultStampInfo.get(0).getAtchFileId();
}
}
//조정조사관 직인 이미지 불러오기
PgrCmmVO resultAdmStampInfo = cmmService.selectAdmAtchFileIdInfo(cmmVO);
@ -618,49 +617,49 @@ public class CfrmController {
}
if(StringUtil.isNotEmpty(adrNo)) {
if(!adrNo.equals("")) {
oj.put("adrNo", adrNo);
}
if(StringUtil.isNotEmpty(memDeptNm)) {
if(!memDeptNm.equals("")) {
oj.put("memDeptNm", memDeptNm);
}
if(StringUtil.isNotEmpty(memName)) {
if(!memName.equals("")) {
oj.put("memName", memName);
}
if(StringUtil.isNotEmpty(adrAdmNm)) {
if(!adrAdmNm.equals("")) {
oj.put("adrAdmNm", adrAdmNm);
}
if(StringUtil.isNotEmpty(applicantNm)) {
if(!applicantNm.equals("")) {
oj.put("applicantNm", applicantNm);
}
if(StringUtil.isNotEmpty(resPonDentNm)) {
if(!resPonDentNm.equals("")) {
oj.put("resPonDentNm", resPonDentNm);
}
/*if(StringUtil.isNotEmpty(resPonDentNmEtc)) {
/*if(!resPonDentNmEtc.equals("")) {
oj.put("resPonDentNmEtc", resPonDentNmEtc);
}*/
if(StringUtil.isNotEmpty(rplyEndDeDay)) {
if(!rplyEndDeDay.equals("")) {
oj.put("rplyEndDeDay", rplyEndDeDay);
@ -671,7 +670,7 @@ public class CfrmController {
oj.put("recDeDay", recDeDay);
}
if(StringUtil.isNotEmpty(closeCn1)) {
if(!closeCn1.equals("")) {
oj.put("closeCn1", closeCn1);

View File

@ -519,12 +519,10 @@ public class ChdController {
String atchFileId = "";
if(resultStampInfo.size() > 0) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
atchFileId = resultStampInfo.get(0).getAtchFileId();
}
}
/*if(!adrSeq.equals("")) {
@ -533,73 +531,73 @@ public class ChdController {
}*/
if(StringUtil.isNotEmpty(adrNo)) {
if(!adrNo.equals("")) {
oj.put("adrNo", adrNo);
}
if(StringUtil.isNotEmpty(adrSn)) {
if(!adrSn.equals("")) {
oj.put("adrSn", adrSn);
}
if(StringUtil.isNotEmpty(cctyTx)) {
if(!cctyTx.equals("")) {
oj.put("cctyTx", cctyTx);
}
if(StringUtil.isNotEmpty(memDeptNm)) {
if(!memDeptNm.equals("")) {
oj.put("memDeptNm", memDeptNm);
}
if(StringUtil.isNotEmpty(memName)) {
if(!memName.equals("")) {
oj.put("memName", memName);
}
if(StringUtil.isNotEmpty(adrAdmNm)) {
if(!adrAdmNm.equals("")) {
oj.put("adrAdmNm", adrAdmNm);
}
if(StringUtil.isNotEmpty(adrAdmOffmTel)) {
if(!adrAdmOffmTel.equals("")) {
oj.put("adrAdmOffmTel", adrAdmOffmTel);
}
if(StringUtil.isNotEmpty(applicantNm)) {
if(!applicantNm.equals("")) {
oj.put("applicantNm", applicantNm);
}
if(StringUtil.isNotEmpty(resPonDentNm)) {
if(!resPonDentNm.equals("")) {
oj.put("resPonDentNm", resPonDentNm);
}
if(StringUtil.isNotEmpty(resPonDentNmEtc)) {
if(!resPonDentNmEtc.equals("")) {
oj.put("resPonDentNmEtc", resPonDentNmEtc);
}
/*if(StringUtil.isNotEmpty(appDeDay)) {
/*if(!appDeDay.equals("")) {
oj.put("appDeDay", appDeDay);
}*/
if(StringUtil.isNotEmpty(appDeDate)) {
if(!appDeDate.equals("")) {
oj.put("appDeDate", appDeDate);
@ -617,7 +615,7 @@ public class ChdController {
}
if(StringUtil.isNotEmpty(atchFileId)) {
if(!atchFileId.equals("")) {
String domain = "";

View File

@ -1,10 +1,8 @@
package kcc.kccadr.adjPgrMgr.cmm.service;
import java.util.List;
import java.util.Map;
import kcc.kccadr.adjPgrMgr.arm.service.CmntVO;
import kcc.let.uss.umt.service.UserManageVO;
public interface PgrCmmService {
@ -15,8 +13,6 @@ public interface PgrCmmService {
int selectPgrCmmListCnt(PgrCmmVO pgrCmmVO) throws Exception;
Map<String, Integer> selectPgrCmmListCntForOnlineOffline(PgrCmmVO pgrCmmVO) throws Exception;
PgrCmmVO selectPgrCmm(PgrCmmVO pgrCmmVO) throws Exception;
PgrCmmVO selectPgrCmm4DntDetail(PgrCmmVO pgrCmmVO) throws Exception;
@ -74,10 +70,5 @@ public interface PgrCmmService {
//배당전 취하종결 조정조사관 등록
int updateEntBeforeDtbAdrAdminReg(PgrCmmVO pgrCmmVO) throws Exception;
public List<PgrCmmVO> selectPgrCmmListForExcel(PgrCmmVO pgrCmmVO) throws Exception;
List<UserManageVO> selectPgrCmmAdrAdminList() throws Exception;
//처리일시
PgrCmmVO selectAdrEndDeDay(PgrCmmVO pgrCmmVO) throws Exception;
}

View File

@ -5,7 +5,7 @@ import java.io.Serializable;
import kcc.com.cmm.ComDefaultVO;
@SuppressWarnings("serial")
public class PgrCmmVO implements Serializable {
public class PgrCmmVO extends ComDefaultVO implements Serializable {
private String adrAdmId; // 조정조사관
private String adrAdmNm; /* 조정조사관 ( LETTNEMPLYRINFO ) */
@ -23,8 +23,6 @@ public class PgrCmmVO implements Serializable {
private String appliCantId; // 신청인 ID 1명
private String appliCantNm; // 신청인
private String appliCantBizNm; // 신청인 법인(개인사업자)
private String appliCantUsrTy; // 신청인 법인(개인사업자)
private String resPonDentId; // 피신청인 ID
private String resPonDentNm; // 피신청인
@ -79,7 +77,7 @@ public class PgrCmmVO implements Serializable {
private String registDay;
private String registTime;
private String reqCn1; // 사건내용(신청취지)
private String reqCn2; // 사건내용(신청이유)
private String reqCn2; // 사건내용(신청원인)
private String reqOlCd; // 온_오프라인_신청구분
private String reqOlCdTx;
@ -171,104 +169,6 @@ public class PgrCmmVO implements Serializable {
private String dntDetailType;//4DntDetailType(기일지정상세화면) / NoDntDetailType(이외)
private String orderByYn;
private String appliCantPhone;
private String appliCantEmail;
private String appliCantSendYn;
private String appliCantNm2;
private String appliCantPhone2;
private String appliCantEmail2;
private String appliCantSendYn2;
private String finalStatCdTxt;
/** 검색조건 */
private String searchCondition = "";
/** 검색Keyword */
private String searchKeyword = "";
/** 검색Keyword */
private String searchEncKeyword = "";
/** 검색사용여부 */
private String searchUseYn = "";
/** 현재페이지 */
private int pageIndex = 1;
/** 페이지갯수 */
private int pageUnit = 10;
/** 페이지사이즈 */
private int pageSize = 10;
/** firstIndex */
private int firstIndex = 1;
/** lastIndex */
private int lastIndex = 1;
/** recordCountPerPage */
private int recordCountPerPage = 10;
/** 검색KeywordFrom */
private String searchKeywordFrom = "";
/** 검색KeywordTo */
private String searchKeywordTo = "";
private String searchYear = "";
private String searchMonth2 = "";
private String searchQuarter = "";
/** 엑셀용 */
private String excelYn = "";
private String siteId = "";
private String siteNm = "";
private String searchConditionSite;
private String sortOver = "A"; //재정렬시 차순(A:오름차순 , D:내림차순)
private String seCd = ""; //게시판 구분 게시판ID추가 구분
private int sort = 0;
private int beSort = 0; //이전 sort번호
private int totCnt = 0;
private String searchSortCnd = ""; // 정렬 항목
private String searchSortOrd = ""; // 정렬 구분(오름/내림)
private String searchNm = ""; //상세검색 이름
private String tempSortNum ;
private String searchStartDt; //검색시작일
private String searchEndDt; //검색종료일
private String searchStatus; //진행상태
private String searchSelStatus; //셀렉트 진행상태
private String[] searchStatusArr; //검색상태
private String searchMonth = "3"; //검색월선택
private String searchSbmtId ; // 결제자 검색
private String searchEachAdrAdminYn = ""; // 담당사건민 보기 여부 - 조정조사관일 선택 가능
private String searchLoginId ; // 본인 ID
public String getAdrAdmId() {
return adrAdmId;
}
@ -1285,382 +1185,7 @@ public class PgrCmmVO implements Serializable {
this.dntDetailType = dntDetailType;
}
public String getOrderByYn() {
return orderByYn;
}
public void setOrderByYn(String orderByYn) {
this.orderByYn = orderByYn;
}
public String getAppliCantPhone() {
return appliCantPhone;
}
public void setAppliCantPhone(String appliCantPhone) {
this.appliCantPhone = appliCantPhone;
}
public String getAppliCantEmail() {
return appliCantEmail;
}
public void setAppliCantEmail(String appliCantEmail) {
this.appliCantEmail = appliCantEmail;
}
public String getAppliCantSendYn() {
return appliCantSendYn;
}
public void setAppliCantSendYn(String appliCantSendYn) {
this.appliCantSendYn = appliCantSendYn;
}
public String getAppliCantPhone2() {
return appliCantPhone2;
}
public void setAppliCantPhone2(String appliCantPhone2) {
this.appliCantPhone2 = appliCantPhone2;
}
public String getAppliCantEmail2() {
return appliCantEmail2;
}
public void setAppliCantEmail2(String appliCantEmail2) {
this.appliCantEmail2 = appliCantEmail2;
}
public String getAppliCantSendYn2() {
return appliCantSendYn2;
}
public void setAppliCantSendYn2(String appliCantSendYn2) {
this.appliCantSendYn2 = appliCantSendYn2;
}
public String getAppliCantNm2() {
return appliCantNm2;
}
public void setAppliCantNm2(String appliCantNm2) {
this.appliCantNm2 = appliCantNm2;
}
public String getFinalStatCdTxt() {
return finalStatCdTxt;
}
public void setFinalStatCdTxt(String finalStatCdTxt) {
this.finalStatCdTxt = finalStatCdTxt;
}
public String getSearchCondition() {
return searchCondition;
}
public void setSearchCondition(String searchCondition) {
this.searchCondition = searchCondition;
}
public String getSearchKeyword() {
return searchKeyword;
}
public void setSearchKeyword(String searchKeyword) {
this.searchKeyword = searchKeyword;
}
public String getSearchEncKeyword() {
return searchEncKeyword;
}
public void setSearchEncKeyword(String searchEncKeyword) {
this.searchEncKeyword = searchEncKeyword;
}
public String getSearchUseYn() {
return searchUseYn;
}
public void setSearchUseYn(String searchUseYn) {
this.searchUseYn = searchUseYn;
}
public int getPageIndex() {
return pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageUnit() {
return pageUnit;
}
public void setPageUnit(int pageUnit) {
this.pageUnit = pageUnit;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getFirstIndex() {
return firstIndex;
}
public void setFirstIndex(int firstIndex) {
this.firstIndex = firstIndex;
}
public int getLastIndex() {
return lastIndex;
}
public void setLastIndex(int lastIndex) {
this.lastIndex = lastIndex;
}
public int getRecordCountPerPage() {
return recordCountPerPage;
}
public void setRecordCountPerPage(int recordCountPerPage) {
this.recordCountPerPage = recordCountPerPage;
}
public String getSearchKeywordFrom() {
return searchKeywordFrom;
}
public void setSearchKeywordFrom(String searchKeywordFrom) {
this.searchKeywordFrom = searchKeywordFrom;
}
public String getSearchKeywordTo() {
return searchKeywordTo;
}
public void setSearchKeywordTo(String searchKeywordTo) {
this.searchKeywordTo = searchKeywordTo;
}
public String getSearchYear() {
return searchYear;
}
public void setSearchYear(String searchYear) {
this.searchYear = searchYear;
}
public String getSearchMonth2() {
return searchMonth2;
}
public void setSearchMonth2(String searchMonth2) {
this.searchMonth2 = searchMonth2;
}
public String getSearchQuarter() {
return searchQuarter;
}
public void setSearchQuarter(String searchQuarter) {
this.searchQuarter = searchQuarter;
}
public String getExcelYn() {
return excelYn;
}
public void setExcelYn(String excelYn) {
this.excelYn = excelYn;
}
public String getSiteId() {
return siteId;
}
public void setSiteId(String siteId) {
this.siteId = siteId;
}
public String getSiteNm() {
return siteNm;
}
public void setSiteNm(String siteNm) {
this.siteNm = siteNm;
}
public String getSearchConditionSite() {
return searchConditionSite;
}
public void setSearchConditionSite(String searchConditionSite) {
this.searchConditionSite = searchConditionSite;
}
public String getSortOver() {
return sortOver;
}
public void setSortOver(String sortOver) {
this.sortOver = sortOver;
}
public String getSeCd() {
return seCd;
}
public void setSeCd(String seCd) {
this.seCd = seCd;
}
public int getSort() {
return sort;
}
public void setSort(int sort) {
this.sort = sort;
}
public int getBeSort() {
return beSort;
}
public void setBeSort(int beSort) {
this.beSort = beSort;
}
public int getTotCnt() {
return totCnt;
}
public void setTotCnt(int totCnt) {
this.totCnt = totCnt;
}
public String getSearchSortCnd() {
return searchSortCnd;
}
public void setSearchSortCnd(String searchSortCnd) {
this.searchSortCnd = searchSortCnd;
}
public String getSearchSortOrd() {
return searchSortOrd;
}
public void setSearchSortOrd(String searchSortOrd) {
this.searchSortOrd = searchSortOrd;
}
public String getSearchNm() {
return searchNm;
}
public void setSearchNm(String searchNm) {
this.searchNm = searchNm;
}
public String getTempSortNum() {
return tempSortNum;
}
public void setTempSortNum(String tempSortNum) {
this.tempSortNum = tempSortNum;
}
public String getSearchStartDt() {
return searchStartDt;
}
public void setSearchStartDt(String searchStartDt) {
this.searchStartDt = searchStartDt;
}
public String getSearchEndDt() {
return searchEndDt;
}
public void setSearchEndDt(String searchEndDt) {
this.searchEndDt = searchEndDt;
}
public String getSearchStatus() {
return searchStatus;
}
public void setSearchStatus(String searchStatus) {
this.searchStatus = searchStatus;
}
public String getSearchSelStatus() {
return searchSelStatus;
}
public void setSearchSelStatus(String searchSelStatus) {
this.searchSelStatus = searchSelStatus;
}
public String[] getSearchStatusArr() {
return searchStatusArr;
}
public void setSearchStatusArr(String[] searchStatusArr) {
this.searchStatusArr = searchStatusArr;
}
public String getSearchMonth() {
return searchMonth;
}
public void setSearchMonth(String searchMonth) {
this.searchMonth = searchMonth;
}
public String getSearchSbmtId() {
return searchSbmtId;
}
public void setSearchSbmtId(String searchSbmtId) {
this.searchSbmtId = searchSbmtId;
}
public String getAppliCantUsrTy() {
return appliCantUsrTy;
}
public void setAppliCantUsrTy(String appliCantUsrTy) {
this.appliCantUsrTy = appliCantUsrTy;
}
public String getSearchEachAdrAdminYn() {
return searchEachAdrAdminYn;
}
public void setSearchEachAdrAdminYn(String searchEachAdrAdminYn) {
this.searchEachAdrAdminYn = searchEachAdrAdminYn;
}
public String getSearchLoginId() {
return searchLoginId;
}
public void setSearchLoginId(String searchLoginId) {
this.searchLoginId = searchLoginId;
}

View File

@ -1,7 +1,6 @@
package kcc.kccadr.adjPgrMgr.cmm.service.impl;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
@ -9,7 +8,6 @@ import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.kccadr.adjPgrMgr.arm.service.CmntVO;
import kcc.kccadr.adjPgrMgr.cmm.service.CloseVO;
import kcc.kccadr.adjPgrMgr.cmm.service.PgrCmmVO;
import kcc.let.uss.umt.service.UserManageVO;
@Repository("PgrCmmDAO")
public class PgrCmmDAO extends EgovAbstractDAO {
@ -19,12 +17,6 @@ public class PgrCmmDAO extends EgovAbstractDAO {
return (List<PgrCmmVO>) list("Cmm.selectPgrCmmList", pgrCmmVO);
}
@SuppressWarnings("unchecked")
public List<PgrCmmVO> selectPgrCmmListForExcel(PgrCmmVO pgrCmmVO) throws Exception {
return (List<PgrCmmVO>) list("Cmm.selectPgrCmmListForExcel", pgrCmmVO);
}
public List<PgrCmmVO> selectPgrCmmDeptList(PgrCmmVO pgrCmmVO) throws Exception {
return (List<PgrCmmVO>) list("Cmm.selectPgrCmmDeptList", pgrCmmVO);
}
@ -33,10 +25,6 @@ public class PgrCmmDAO extends EgovAbstractDAO {
return (Integer) select("Cmm.selectPgrCmmListCnt", pgrCmmVO);
}
public Map<String, Integer> selectPgrCmmListCntForOnlineOffline(PgrCmmVO pgrCmmVO) throws Exception {
return (Map) select("Cmm.selectPgrCmmListCntForOnlineOffline", pgrCmmVO);
}
/**
* TODO daenge 신청인피신청인 아이디는 어느것으로 하나?? RPPL_ID , RPPL_SEQ
*
@ -118,12 +106,4 @@ public class PgrCmmDAO extends EgovAbstractDAO {
return (Integer) update("Cmm.updateEntBeforeDtbAdrAdminReg",pgrCmmVO);
}
public List<UserManageVO> selectPgrCmmAdrAdminList() throws Exception {
return (List<UserManageVO>) list("Cmm.selectPgrCmmAdrAdminList");
}
public PgrCmmVO selectAdrEndDeDay(PgrCmmVO pgrCmmVO) throws Exception {
return (PgrCmmVO) select("Cmm.selectAdrEndDeDay", pgrCmmVO);
}
}

View File

@ -1,7 +1,6 @@
package kcc.kccadr.adjPgrMgr.cmm.service.impl;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
@ -22,7 +21,6 @@ import kcc.kccadr.adjreqmgr.service.AdjReqMgrVO;
import kcc.kccadr.advc.service.impl.AdrHstryMgrDAO;
import kcc.kccadr.cmm.KccadrConstants;
import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService;
import kcc.let.uss.umt.service.UserManageVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
@Repository("pgrCmmService")
@ -49,10 +47,6 @@ public class PgrCmmServiceImpl implements PgrCmmService {
@Resource(name = "adrHstryMgrDAO")
private AdrHstryMgrDAO adrHstryMgrDAO;
//조정사건 이력관리 일련번호
@Resource(name="adrHstryMgrSeqGnrService")
private EgovIdGnrService adrHstryMgrSeqGnrService;
@Override
public List<PgrCmmVO> selectPgrCmmList(PgrCmmVO pgrCmmVO) throws Exception {
@ -67,58 +61,6 @@ public class PgrCmmServiceImpl implements PgrCmmService {
return list;
}
@Override
public List<PgrCmmVO> selectPgrCmmListForExcel(PgrCmmVO pgrCmmVO) throws Exception {
setDayInfo(pgrCmmVO);
List<PgrCmmVO> list = pgrCmmDAO.selectPgrCmmListForExcel(pgrCmmVO);
for (PgrCmmVO item : list) {
decpyptVo(item);
String[] statCd = item.getFinalStatCd() != null ? item.getFinalStatCd().split(",") : new String[] {""};
for(String tmpString : statCd) {
switch (tmpString) {
case KccadrConstants.ADR_DEPTBFRCNCL_PAY_COMP:
item.setFinalStatCdTxt("배당 전 취하종결");
break;
case KccadrConstants.ADR_DEPTBFRCNCL_ADR_RCPT_COMP:
item.setFinalStatCdTxt("배당 전 취하종결");
break;
case KccadrConstants.ADR_DEPTBFRCNCL_RCPT_APPR_REQ:
item.setFinalStatCdTxt("배당 전 취하종결");
break;
case KccadrConstants.ADR_DEPTBFRCNCL_RCPT_APPR_COMP:
item.setFinalStatCdTxt("배당 전 취하종결");
break;
case KccadrConstants.ADR_DEPTBFRCNCL_ADR_RCPT_DTB_REQ:
item.setFinalStatCdTxt("배당 전 취하종결");
break;
case KccadrConstants.ADR_CNCLTBS_APPR_COMP:
item.setFinalStatCdTxt("취하종결");
break;
case KccadrConstants.ADR_BSRTBS_APPR_REQ:
item.setFinalStatCdTxt("불성립종결");
break;
case KccadrConstants.ADR_JJOSU_APPR_COMP:
item.setFinalStatCdTxt("성립종결");
break;
case KccadrConstants.ADR_JKKJS_APPR_COMP:
item.setFinalStatCdTxt("직권조정 성립");
break;
default:
break;
}
}
System.out.println("FinalStatCdTxt :: " + item.getFinalStatCdTxt());
}
return list;
}
@Override
public List<PgrCmmVO> selectPgrCmmDeptList(PgrCmmVO pgrCmmVO) throws Exception {
@ -139,12 +81,6 @@ public class PgrCmmServiceImpl implements PgrCmmService {
return pgrCmmDAO.selectPgrCmmListCnt(pgrCmmVO);
}
@Override
public Map<String, Integer> selectPgrCmmListCntForOnlineOffline(PgrCmmVO pgrCmmVO) throws Exception {
setDayInfo(pgrCmmVO);
return pgrCmmDAO.selectPgrCmmListCntForOnlineOffline(pgrCmmVO);
}
@Override
public PgrCmmVO selectPgrCmm(PgrCmmVO pgrCmmVO) throws Exception {
@ -251,35 +187,6 @@ public class PgrCmmServiceImpl implements PgrCmmService {
result.setAppliCantNm(egovCryptoUtil.decrypt(result.getAppliCantNm()));
}
if (!StringUtil.isEmpty(result.getAppliCantPhone())) {
result.setAppliCantPhone(egovCryptoUtil.decrypt(result.getAppliCantPhone()));
}
if (!StringUtil.isEmpty(result.getAppliCantEmail())) {
result.setAppliCantEmail(egovCryptoUtil.decrypt(result.getAppliCantEmail()));
}
if (!StringUtil.isEmpty(result.getAppliCantSendYn())) {
result.setAppliCantSendYn(egovCryptoUtil.decrypt(result.getAppliCantSendYn()));
}
if (!StringUtil.isEmpty(result.getAppliCantNm2())) {
result.setAppliCantNm2(egovCryptoUtil.decrypt(result.getAppliCantNm2()));
}
if (!StringUtil.isEmpty(result.getAppliCantPhone2())) {
result.setAppliCantPhone2(egovCryptoUtil.decrypt(result.getAppliCantPhone2()));
}
if (!StringUtil.isEmpty(result.getAppliCantEmail2())) {
result.setAppliCantEmail2(egovCryptoUtil.decrypt(result.getAppliCantEmail2()));
}
if (!StringUtil.isEmpty(result.getAppliCantSendYn2())) {
result.setAppliCantSendYn2(egovCryptoUtil.decrypt(result.getAppliCantSendYn2()));
}
if (!StringUtil.isEmpty(result.getResPonDentNm())) {
String[] resPonArr = result.getResPonDentNm().split(", ");
@ -541,18 +448,13 @@ public class PgrCmmServiceImpl implements PgrCmmService {
adjReqMgrVO.setStatCd(statCd); // 최종 변경 상태값
adjReqMgrVO.setLastUpdusrId(userId); // 최종 변경자
// 배당전 취하종결 adrHstryMgrSeq 없어서 나는 에러 수정_230615
String s_adrHstryMgrSeq = adrHstryMgrSeqGnrService.getNextStringId();
//step1.statCd 30000X update
int resultCnt = kccadrMgrUdtService.updateAdrMgrUdt(adjReqMgrVO, s_adrHstryMgrSeq);
String s_adrHstryMgrSeq2 = adrHstryMgrSeqGnrService.getNextStringId();
int resultCnt = kccadrMgrUdtService.updateAdrMgrUdt(adjReqMgrVO, "");
//step2.statCd 400000 update
statCd = KccadrConstants.ADR_CLOSE;
adjReqMgrVO.setStatCd(statCd); // 최종 변경 상태값
resultCnt += kccadrMgrUdtService.updateAdrMgrUdt(adjReqMgrVO, s_adrHstryMgrSeq2);
resultCnt += kccadrMgrUdtService.updateAdrMgrUdt(adjReqMgrVO, "");
//step3.접수결재 요청(ADR_RCPT_APPR_REQ, 201010), 배당결재요청(ADR_RCPT_DTB_REQ, 202010) 경우 결재 요청 delete 처리
if(closeVO.getStatCd().equals(KccadrConstants.ADR_RCPT_APPR_REQ)
@ -573,16 +475,5 @@ public class PgrCmmServiceImpl implements PgrCmmService {
return (Integer) pgrCmmDAO.updateEntBeforeDtbAdrAdminReg(pgrCmmVO);
}
@Override
public List<UserManageVO> selectPgrCmmAdrAdminList() throws Exception {
return pgrCmmDAO.selectPgrCmmAdrAdminList();
}
@Override
public PgrCmmVO selectAdrEndDeDay(PgrCmmVO pgrCmmVO) throws Exception {
return pgrCmmDAO.selectAdrEndDeDay(pgrCmmVO);
}
}

View File

@ -592,68 +592,68 @@ public class CrtController {
List<PgrCmmVO> resultStampInfo = cmmService.selectAtchFileIdInfo(closeVO);
String atchFileId = "";
if(resultStampInfo.size() > 0) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
}
}
if(StringUtil.isNotEmpty(adrSeq)) {
if(!adrSeq.equals("")) {
oj.put("adrSeq", adrSeq);
}
if(StringUtil.isNotEmpty(adrNo)) {
if(!adrNo.equals("")) {
oj.put("adrNo", adrNo);
}
if(StringUtil.isNotEmpty(adrSn)) {
if(!adrSn.equals("")) {
oj.put("adrSn", adrSn);
}
if(StringUtil.isNotEmpty(cctyTx)) {
if(!cctyTx.equals("")) {
oj.put("cctyTx", cctyTx);
}
if(StringUtil.isNotEmpty(memDeptNm)) {
if(!memDeptNm.equals("")) {
oj.put("memDeptNm", memDeptNm);
}
if(StringUtil.isNotEmpty(memName)) {
if(!memName.equals("")) {
oj.put("memName", memName);
}
if(StringUtil.isNotEmpty(closeCn1)) {
if(!closeCn1.equals("")) {
oj.put("closeCn1", closeCn1);
}
if(StringUtil.isNotEmpty(applicantNm)) {
if(!applicantNm.equals("")) {
oj.put("applicantNm", applicantNm);
}
if(StringUtil.isNotEmpty(resPonDentNm)) {
if(!resPonDentNm.equals("")) {
oj.put("resPonDentNm", resPonDentNm);
}
if(StringUtil.isNotEmpty(atchFileId)) {
if(!atchFileId.equals("")) {
String domain = "";

View File

@ -167,11 +167,8 @@ public class DlvinfoController {
*/
@RequestMapping(value = "dlvinfoDetail.do")
public String dlvinfoDetail(@ModelAttribute("dlvinfoVO") DlvinfoVO dlvinfoVO, ModelMap model) throws Exception {
DlvinfoVO info = dlvinfoService.selectAdjustDeliveryInfo(dlvinfoVO);
System.out.println("info.getRecDeTime() :: "+info.getRecDeTime());
model.addAttribute("info", info);
model.addAttribute("info", dlvinfoService.selectAdjustDeliveryInfo(dlvinfoVO));
return "/kccadr/adjPgrMgr/dlvinfo/dlvinfoDetail";
}
@ -302,12 +299,10 @@ public class DlvinfoController {
// 신청인 add
for(int i = 0 ; i < appliCantNmList.length; i++) {
String[] appliCantNmListInfo = appliCantNmList[i].split("!");
if(appliCantNmListInfo.length > 0) {
DlvinfoVO rpplInfo = new DlvinfoVO();
rpplInfo.setRpplNm(appliCantNmListInfo[0]);
rpplInfo.setRpplTy(appliCantNmListInfo[1]);
rpplList.add(rpplInfo);
}
DlvinfoVO rpplInfo = new DlvinfoVO();
rpplInfo.setRpplNm(appliCantNmListInfo[0]);
rpplInfo.setRpplTy(appliCantNmListInfo[1]);
rpplList.add(rpplInfo);
}
@ -316,12 +311,10 @@ public class DlvinfoController {
//피신청인 add
for(int i = 0 ; i < resPonDentNmList.length; i++) {
String[] resPonDentNmInfo = resPonDentNmList[i].split("!");
if(resPonDentNmInfo.length > 0) {
DlvinfoVO rpplInfo = new DlvinfoVO();
rpplInfo.setRpplNm(resPonDentNmInfo[0]);
rpplInfo.setRpplTy(resPonDentNmInfo[1]);
rpplList.add(rpplInfo);
}
DlvinfoVO rpplInfo = new DlvinfoVO();
rpplInfo.setRpplNm(resPonDentNmInfo[0]);
rpplInfo.setRpplTy(resPonDentNmInfo[1]);
rpplList.add(rpplInfo);
}
String[] appliCantDNmList = new String[5];
@ -335,12 +328,10 @@ public class DlvinfoController {
//신청대리인 add
for(int i = 0 ; i < appliCantDNmList.length; i++) {
String[] appliCantDNmInfo = appliCantDNmList[i].split("!");
if(appliCantDNmInfo.length > 0) {
DlvinfoVO rpplInfo = new DlvinfoVO();
rpplInfo.setRpplNm(appliCantDNmInfo[0]);
rpplInfo.setRpplTy(appliCantDNmInfo[1]);
rpplList.add(rpplInfo);
}
DlvinfoVO rpplInfo = new DlvinfoVO();
rpplInfo.setRpplNm(appliCantDNmInfo[0]);
rpplInfo.setRpplTy(appliCantDNmInfo[1]);
rpplList.add(rpplInfo);
}
}
String[] resPonDentDNm = new String[5];
@ -350,12 +341,10 @@ public class DlvinfoController {
//피신청대리인 add
for(int i = 0 ; i < resPonDentDNm.length; i++) {
String[] resPonDentDNmInfo = resPonDentDNm[i].split("!");
if(resPonDentDNmInfo.length > 0) {
DlvinfoVO rpplInfo = new DlvinfoVO();
rpplInfo.setRpplNm(resPonDentDNmInfo[0]);
rpplInfo.setRpplTy(resPonDentDNmInfo[1]);
rpplList.add(rpplInfo);
}
DlvinfoVO rpplInfo = new DlvinfoVO();
rpplInfo.setRpplNm(resPonDentDNmInfo[0]);
rpplInfo.setRpplTy(resPonDentDNmInfo[1]);
rpplList.add(rpplInfo);
}
}
@ -523,11 +512,10 @@ public class DlvinfoController {
/*
* if(apmVO.getPageUnit() != 10) { apmVO.setPageUnit(apmVO.getPageUnit()); }
*/
// if (StringUtil.isEmpty(cmmVO.getSearchSortCnd())) { // 최초조회시 최신것 조회List
cmmVO.setOrderByYn("Y");
cmmVO.setSearchSortCnd("M.ADR_NO");
if (StringUtil.isEmpty(cmmVO.getSearchSortCnd())) { // 최초조회시 최신것 조회List
cmmVO.setSearchSortCnd("M.ADR_SEQ");
cmmVO.setSearchSortOrd("desc");
// }
}
if (StringUtil.isEmpty(cmmVO.getSearchStartDt())) { // 조회일시가 null인경우 디폴트로 12개월 동안의 기간으로 검색함
Date today = new Date();

View File

@ -864,10 +864,11 @@ public class DntController {
List<PgrCmmVO> resultStampInfo = cmmService.selectAtchFileIdInfo(cmmVO);
String atchFileId = "";
if(resultStampInfo.size() > 0) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
}
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
}
/*if(!adrSeq.equals("")) {
@ -876,86 +877,85 @@ public class DntController {
}*/
if(StringUtil.isNotEmpty(adrNo)) {
if(!adrNo.equals("")) {
oj.put("adrNo", adrNo);
}
if(StringUtil.isNotEmpty(adrSn)) {
if(!adrSn.equals("")) {
oj.put("adrSn", adrSn);
}
if(StringUtil.isNotEmpty(cctyTx)) {
if(!cctyTx.equals("")) {
oj.put("cctyTx", cctyTx);
}
// if(StringUtil.isNotEmpty(memDeptNm)) {
if(StringUtil.isNotEmpty(memDeptNm)) {
if(!memDeptNm.equals("")) {
oj.put("memDeptNm", memDeptNm);
}
if(StringUtil.isNotEmpty(memName)) {
if(!memName.equals("")) {
oj.put("memName", memName);
}
if(StringUtil.isNotEmpty(adrAdmNm)) {
if(!adrAdmNm.equals("")) {
oj.put("adrAdmNm", adrAdmNm);
}
if(StringUtil.isNotEmpty(adrAdmOffmTel)) {
if(!adrAdmOffmTel.equals("")) {
oj.put("adrAdmOffmTel", adrAdmOffmTel);
}
if(StringUtil.isNotEmpty(applicantNm)) {
if(!applicantNm.equals("")) {
oj.put("applicantNm", applicantNm);
}
if(StringUtil.isNotEmpty(resPonDentNm)) {
if(!resPonDentNm.equals("")) {
oj.put("resPonDentNm", resPonDentNm);
}
if(StringUtil.isNotEmpty(resPonDentNmEtc)) {
if(!resPonDentNmEtc.equals("")) {
oj.put("resPonDentNmEtc", resPonDentNmEtc);
}
/*if(StringUtil.isNotEmpty(appDeDay)) {
/*if(!appDeDay.equals("")) {
oj.put("appDeDay", appDeDay);
}*/
if(StringUtil.isNotEmpty(appDeDate)) {
if(!appDeDate.equals("")) {
oj.put("appDeDate", appDeDate);
}
if(StringUtil.isNotEmpty(appPlace)) {
if(!appPlace.equals("")) {
oj.put("appPlace", appPlace);
}
if(StringUtil.isNotEmpty(appPlaceAddr)) {
if(!appPlaceAddr.equals("")) {
oj.put("appPlaceAddr", appPlaceAddr);

View File

@ -37,8 +37,6 @@ public class AgntVO extends PgrCmmVO implements Serializable {
private String agntRealPost;
private String agntRealAddr;
private String agntRealAddrDtl;
private String agntRelation;
private String agntRelationEtc;
public String getAdrSeq() {
return adrSeq;
}
@ -231,16 +229,7 @@ public class AgntVO extends PgrCmmVO implements Serializable {
public void setAgntRealAddrDtl(String agntRealAddrDtl) {
this.agntRealAddrDtl = agntRealAddrDtl;
}
public String getAgntRelation() {
return agntRelation;
}
public void setAgntRelation(String agntRelation) {
this.agntRelation = agntRelation;
}
public String getAgntRelationEtc() {
return agntRelationEtc;
}
public void setAgntRelationEtc(String agntRelationEtc) {
this.agntRelationEtc = agntRelationEtc;
}
}

View File

@ -15,8 +15,6 @@ import kcc.kccadr.adjPgrMgr.drt.service.AgntVO;
import kcc.kccadr.adjPgrMgr.drt.service.AssVO;
import kcc.kccadr.adjPgrMgr.drt.service.DrtService;
import kcc.kccadr.adjPgrMgr.drt.service.DrtVO;
import kcc.kccadr.adjst.service.AdjstReqVO;
import kcc.kccadr.adjst.service.impl.AdjstReqDAO;
import kcc.kccadr.advc.service.impl.AdrHstryMgrDAO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
@ -33,8 +31,6 @@ public class DrtServiceImpl implements DrtService {
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
@Resource(name="rpplGnrService")
private EgovIdGnrService rpplIdgenService;
@Resource(name = "egovAssMgrManageGnrService")
private EgovIdGnrService idgenAssSeqService;
@ -46,9 +42,6 @@ public class DrtServiceImpl implements DrtService {
@Resource(name = "adrHstryMgrDAO")
private AdrHstryMgrDAO adrHstryMgrDAO;
// 조정신청 DAO
@Resource(name = "AdjstReqDAO")
private AdjstReqDAO adjstReqDAO;
@Transactional
@ -456,53 +449,22 @@ public class DrtServiceImpl implements DrtService {
, String p_adrHstryMgrSeq
) throws Exception {
agntVO.setAgntAddr(egovCryptoUtil.encrypt(agntVO.getAgntAddr()));
String agntPost = egovCryptoUtil.encrypt(agntVO.getAgntPost()); // 우편번호
String agntAddr = egovCryptoUtil.encrypt(agntVO.getAgntAddr()); // 주소
String agntAddrDtl = egovCryptoUtil.encrypt(agntVO.getAgntAddrDtl()); // 상세주소
String agntNm = egovCryptoUtil.encrypt(agntVO.getAgntNm()); // 이름
String agntEmail = egovCryptoUtil.encrypt(agntVO.getAgntEmail()); // 이메일
String agntPhone = egovCryptoUtil.encrypt(agntVO.getAgntPhone()); // 전화번호
String agntRealPost = egovCryptoUtil.encrypt(agntVO.getAgntRealPost()); // 대리인 실제 우편번호
String agntRealAddr = egovCryptoUtil.encrypt(agntVO.getAgntRealAddr()); // 대리인 실제주소
String agntRealAddrDtl = egovCryptoUtil.encrypt(agntVO.getAgntRealAddrDtl()); // 대리인 실제상세주소
agntVO.setAgntAddrDtl(egovCryptoUtil.encrypt(agntVO.getAgntAddrDtl()));
agntVO.setAgntPost(agntPost); // 우편번호
agntVO.setAgntAddr(agntAddr); // 주소
agntVO.setAgntAddrDtl(agntAddrDtl); // 상세주소
agntVO.setAgntNm(agntNm); // 이름
agntVO.setAgntEmail(egovCryptoUtil.encrypt(agntVO.getAgntEmail()));
agntVO.setAgntEmail(agntEmail); // 이메일
agntVO.setAgntPhone(agntPhone); // 전화번호
agntVO.setAgntRealPost(agntRealPost); // 대리인 실제 우편번호
agntVO.setAgntRealAddr(agntRealAddr); // 대리인 실제주소
agntVO.setAgntRealAddrDtl(agntRealAddrDtl); // 대리인 실제상세주소
agntVO.setAgntNm(egovCryptoUtil.encrypt(agntVO.getAgntNm()));
agntVO.setAgntPhone(egovCryptoUtil.encrypt(agntVO.getAgntPhone()));
agntVO.setAgntPost(egovCryptoUtil.encrypt(agntVO.getAgntPost()));
agntVO.setAgntRealAddr(egovCryptoUtil.encrypt(agntVO.getAgntRealAddr()));
agntVO.setAgntRealAddrDtl(egovCryptoUtil.encrypt(agntVO.getAgntRealAddrDtl()));
agntVO.setAgntRealPost(egovCryptoUtil.encrypt(agntVO.getAgntRealPost()));
drtDAO.addAgntPopAjax(agntVO);
AdjstReqVO adjstReqVO = new AdjstReqVO();
adjstReqVO.setRpplSeq(rpplIdgenService.getNextStringId());
adjstReqVO.setAdrSeq(agntVO.getAdrSeq());
adjstReqVO.setRpplNm(agntNm);
adjstReqVO.setRpplEmail(agntEmail);
adjstReqVO.setRpplPhone(agntPhone);
adjstReqVO.setRpplPost(agntPost);
adjstReqVO.setRpplAddr(agntAddr);
adjstReqVO.setRpplAddrDtl(agntAddrDtl);
adjstReqVO.setRpplRealPost(agntPost);
adjstReqVO.setRpplRealAddr(agntAddr);
adjstReqVO.setRpplRealAddrDtl(agntAddrDtl);
adjstReqVO.setRpplRelation(agntVO.getAgntRelation());
adjstReqVO.setRpplRelationEtc(agntVO.getAgntRelationEtc());
adjstReqVO.setFrstRegisterId(agntVO.getFrstRegisterId());
adjstReqVO.setLastUpdusrId(agntVO.getLastUpdusrId());
adjstReqDAO.insertAdrRppl(adjstReqVO);
//이력관리를 위한 adr_hstry_mgr 데이터 관리 추가 - 2022-08-09
//adr_hstry_mgr에 넣기 - 시작
adrHstryMgrDAO.insert4Func(agntVO.getAdrSeq()

View File

@ -849,23 +849,21 @@ public class DrtController {
/*String[] strMemName = result.getMemNames().split(",");*/
String[] strMemName;
if(result.getMemNames() != null || result.getMemName() != null) {
//조정부가 단독부 일경우 조정부장이 조정위원도 포함
if(StringUtil.isNotEmpty(result.getMemNames())) {
strMemName = result.getMemNames().split(",");
}else {
strMemName = result.getMemName().split(",");
}
//조정부가 단독부 일경우 조정부장이 조정위원도 포함
if(StringUtil.isNotEmpty(result.getMemNames())) {
strMemName = result.getMemNames().split(",");
}else {
strMemName = result.getMemName().split(",");
}
//조정위원 리스트 처리
for(String name : strMemName) {
//조정위원 리스트 처리
for(String name : strMemName) {
JSONObject ojs = new JSONObject();
JSONObject ojs = new JSONObject();
ojs.put("memName", name);
jsJoMemInfo.add(ojs);
ojs.put("memName", name);
jsJoMemInfo.add(ojs);
}
}
jsDrtInfo = parseJsonData(result);
@ -1015,12 +1013,11 @@ public class DrtController {
List<PgrCmmVO> resultStampInfo = cmmService.selectAtchFileIdInfo(cmmVO);
String atchFileId = "";
if(resultStampInfo.size() > 0) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
}
}
//조정조사관 직인 이미지 불러오기
@ -1035,121 +1032,116 @@ public class DrtController {
}
if(StringUtil.isNotEmpty(openYn)) {
if(openYn.equals("Y")) {
if(openYn.equals("Y")) {
openYn = "공개";
openYn = "공개";
}else {
}else {
openYn = "비공개";
openYn = "비공개";
}
}
String prtclCn = "";
if(StringUtil.isNotEmpty(cmmVO.getPrtclCn())) {
prtclCn = cmmVO.getPrtclCn().replaceAll("\r\n", "\\\\r\\\\n"); //기일조서 내용
}
String prtclCn = cmmVO.getPrtclCn().replaceAll("\r\n", "\\\\r\\\\n"); //기일조서 내용
if(StringUtil.isNotEmpty(adrNo)) {
if(!adrNo.equals("")) {
oj.put("adrNo", adrNo);
}
if(StringUtil.isNotEmpty(adrSn)) {
if(!adrSn.equals("")) {
oj.put("adrSn", adrSn);
}
if(StringUtil.isNotEmpty(cctyTx)) {
if(!cctyTx.equals("")) {
oj.put("cctyTx", cctyTx);
}
if(StringUtil.isNotEmpty(memDeptNm)) {
if(!memDeptNm.equals("")) {
oj.put("memDeptNm", memDeptNm);
}
if(StringUtil.isNotEmpty(memName)) {
if(!memName.equals("")) {
oj.put("memName", memName);
}
if(StringUtil.isNotEmpty(adrAdmNm)) {
if(!adrAdmNm.equals("")) {
oj.put("adrAdmNm", adrAdmNm);
}
/*if(StringUtil.isNotEmpty(adrAdmOffmTel)) {
/*if(!adrAdmOffmTel.equals("")) {
oj.put("adrAdmOffmTel", adrAdmOffmTel);
}*/
if(StringUtil.isNotEmpty(applicantNm)) {
if(!applicantNm.equals("")) {
oj.put("applicantNm", applicantNm);
}
/*if(StringUtil.isNotEmpty(resPonDentNm)) {
/*if(!resPonDentNm.equals("")) {
oj.put("resPonDentNm", resPonDentNm);
}
if(StringUtil.isNotEmpty(resPonDentNmEtc)) {
if(!resPonDentNmEtc.equals("")) {
oj.put("resPonDentNmEtc", resPonDentNmEtc);
}*/
if(StringUtil.isNotEmpty(appDeDate)) {
if(!appDeDate.equals("")) {
oj.put("appDeDate", appDeDate);
}
if(StringUtil.isNotEmpty(nextAppDate)) {
if(!nextAppDate.equals("")) {
oj.put("nextAppDate", nextAppDate);
}
if(StringUtil.isNotEmpty(appPlaceInfo)) {
if(!appPlaceInfo.equals("")) {
oj.put("appPlaceInfo", appPlaceInfo);
}
/*if(StringUtil.isNotEmpty(appPlaceAddr)) {
/*if(!appPlaceAddr.equals("")) {
oj.put("appPlaceAddr", appPlaceAddr);
}*/
if(StringUtil.isNotEmpty(openYn)) {
if(!openYn.equals("")) {
oj.put("openYn", openYn);
}
if(StringUtil.isNotEmpty(prtclCn)) {
if(!prtclCn.equals("")) {
oj.put("prtclCn", prtclCn);
}
if(StringUtil.isNotEmpty(atchFileId)) {
if(!atchFileId.equals("")) {
String domain = "";
@ -1168,7 +1160,7 @@ public class DrtController {
}
if(StringUtil.isNotEmpty(admAtchFileId)) {
if(!admAtchFileId.equals("")) {
String domain = "";

View File

@ -1131,12 +1131,10 @@ public class DrtCtrController {
String atchFileId = "";
if(resultStampInfo.size() > 0) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
atchFileId = resultStampInfo.get(0).getAtchFileId();
}
}
//조정조사관 직인 이미지 불러오기
@ -1164,86 +1162,86 @@ public class DrtCtrController {
String prtclCn = cmmVO.getPrtclCn().replaceAll("\r\n", "\\\\r\\\\n"); //조정조서 내용
if(StringUtil.isNotEmpty(adrNo)) {
if(!adrNo.equals("")) {
oj.put("adrNo", adrNo);
}
if(StringUtil.isNotEmpty(adrSn)) {
if(!adrSn.equals("")) {
oj.put("adrSn", adrSn);
}
if(StringUtil.isNotEmpty(cctyTx)) {
if(!cctyTx.equals("")) {
oj.put("cctyTx", cctyTx);
}
if(StringUtil.isNotEmpty(memDeptNm)) {
if(!memDeptNm.equals("")) {
oj.put("memDeptNm", memDeptNm);
}
if(StringUtil.isNotEmpty(memName)) {
if(!memName.equals("")) {
oj.put("memName", memName);
}
if(StringUtil.isNotEmpty(adrAdmNm)) {
if(!adrAdmNm.equals("")) {
oj.put("adrAdmNm", adrAdmNm);
}
if(StringUtil.isNotEmpty(applicantNm)) {
if(!applicantNm.equals("")) {
oj.put("applicantNm", applicantNm);
}
if(StringUtil.isNotEmpty(appDeDate)) {
if(!appDeDate.equals("")) {
oj.put("appDeDate", appDeDate);
}
if(StringUtil.isNotEmpty(nextAppDate)) {
if(!nextAppDate.equals("")) {
oj.put("nextAppDate", nextAppDate);
}
if(StringUtil.isNotEmpty(appPlaceInfo)) {
if(!appPlaceInfo.equals("")) {
oj.put("appPlaceInfo", appPlaceInfo);
}
if(StringUtil.isNotEmpty(openYn)) {
if(!openYn.equals("")) {
oj.put("openYn", openYn);
}
if(StringUtil.isNotEmpty(prtclCn)) {
if(!prtclCn.equals("")) {
oj.put("prtclCn", prtclCn);
}
if(StringUtil.isNotEmpty(ctrCn)) {
if(!ctrCn.equals("")) {
oj.put("ctrCn", ctrCn.replaceAll("\r\n", "\\\\r\\\\n"));
}
if(StringUtil.isNotEmpty(atchFileId)) {
if(!atchFileId.equals("")) {
String domain = "";
@ -1262,7 +1260,7 @@ public class DrtCtrController {
}
if(StringUtil.isNotEmpty(admAtchFileId)) {
if(!admAtchFileId.equals("")) {
String domain = "";

View File

@ -633,70 +633,68 @@ public class EntController {
String atchFileId = "";
if(resultStampInfo.size() > 0) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
atchFileId = resultStampInfo.get(0).getAtchFileId();
}
}
if(StringUtil.isNotEmpty(adrNo)) {
if(!adrNo.equals("")) {
oj.put("adrNo", adrNo);
}
if(StringUtil.isNotEmpty(adrSn)) {
if(!adrSn.equals("")) {
oj.put("adrSn", adrSn);
}
if(StringUtil.isNotEmpty(cctyTx)) {
if(!cctyTx.equals("")) {
oj.put("cctyTx", cctyTx);
}
if(StringUtil.isNotEmpty(memDeptNm)) {
if(!memDeptNm.equals("")) {
oj.put("memDeptNm", memDeptNm);
}
if(StringUtil.isNotEmpty(memName)) {
if(!memName.equals("")) {
oj.put("memName", memName);
}
if(StringUtil.isNotEmpty(applicantNm)) {
if(!applicantNm.equals("")) {
oj.put("applicantNm", applicantNm);
}
if(StringUtil.isNotEmpty(resPonDentNm)) {
if(!resPonDentNm.equals("")) {
oj.put("resPonDentNm", resPonDentNm);
}
if(StringUtil.isNotEmpty(resPonDentNmEtc)) {
if(!resPonDentNmEtc.equals("")) {
oj.put("resPonDentNmEtc", resPonDentNmEtc);
}
if(StringUtil.isNotEmpty(closeCn1)) {
if(!closeCn1.equals("")) {
oj.put("closeCn1", closeCn1);
}
if(StringUtil.isNotEmpty(atchFileId)) {
if(!atchFileId.equals("")) {
String domain = "";

View File

@ -13,7 +13,7 @@ import kcc.kccadr.adjPgrMgr.cclt.service.ConciliatorManageVO;
* @description :
* @exmp_cd
* - 01 : 신청취지
* - 02 : 신청이유
* - 02 : 신청원인
* - 03 : 의견
* - 04 : 답변서
* - 05 : 사건진행도움말

View File

@ -5,17 +5,8 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Properties;
import javax.annotation.Resource;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.collections.CollectionUtils;
@ -67,7 +58,6 @@ import kcc.kccadr.cmm.CmmUtil;
import kcc.kccadr.cmm.KccadrConstants;
import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService;
import kcc.kccadr.ozSchd.web.OzSchdExportUtil;
import kcc.kccadr.sendMgr.service.SendMgrService;
import kcc.let.uss.umt.service.EgovUserManageService;
import kcc.let.uss.umt.service.UserManageVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
@ -126,9 +116,6 @@ public class InternalApprovManageController {
@Resource(name = "drtCtrService")
private DrtCtrService drtCtrService;
@Resource(name = "SendMgrService")
private SendMgrService SendMgrService;
// 실서버 개발서버 구분
private static String islocal; // /pdf/out/
@Value("#{globalSettings['Globals.prod.islocal']}")
@ -298,7 +285,7 @@ public class InternalApprovManageController {
// 법인일 경우 법인명+대표자명 노출
AdjRpplVO rpplVO = adjRpplService.findOfRpplBizNm(info.getAdrSeq());
info.setRpplUsrTy(rpplVO.getRpplUsrTy());
info.setRpplBizNm(egovCryptoUtil.decrypt(rpplVO.getRpplNm()));
info.setRpplBizNm(rpplVO.getRpplBizNm());
model.addAttribute("info", info);
model.addAttribute("approvLine", approvLine);
@ -518,19 +505,6 @@ public class InternalApprovManageController {
kccadrMgrUdtService.updateAdrMgrUdt(arv
, s_adrHstryMgrSeq
);
}else if(StringUtils.isNotEmpty(statInfo.getNextSbmtId())) {
UserManageVO userManageVO = userManageService.selectUser(statInfo.getNextSbmtId());
String address = userManageVO.getEmailAdres();
try {
emailSend(address);
}catch (Exception e) {
// TODO: handle exception
}
}
modelAndView.addObject("rs", (rs>0));
modelAndView.addObject("result", KccadrConstants.SUCCESS);
@ -1212,12 +1186,11 @@ public class InternalApprovManageController {
cmmVO.setMemGrade("01");
List<PgrCmmVO> resultStampInfo = cmmService.selectAtchFileIdInfo(cmmVO);
if(resultStampInfo.size() > 0) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
}
}
//조정조사관 직인 이미지 불러오기
@ -1581,59 +1554,4 @@ public class InternalApprovManageController {
return adjstReqVO;
}
private void emailSend(String address) {
String emailFrom = "no-reply@copyright.or.kr"; // 추후 globals.properties 이용하여 변경
String emailPs = "Copycopy12!"; // 추후 globals.properties 이용하여 변경
Properties props = new Properties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.host", "smtp.gov-dooray.com");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.ssl.enable", "true");
props.put("mail.smtp.ssl.protocols", "TLSv1");
props.put("mail.smtp.ssl.protocols", "TLSv1.1");
props.put("mail.smtp.ssl.protocols", "TLSv1.2");
props.put("mail.debug", "true");
Authenticator authenticator = new Authenticator(){
protected PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(emailFrom,emailPs);
}
};
try {
Session session = Session.getInstance(props, authenticator) ;
InternetAddress fromAddress = new InternetAddress(emailFrom);
String result = "";
String emailTo = "";
AdjReqMgrVO adjReqMgrVO = new AdjReqMgrVO();
adjReqMgrVO.setEmailTitle("전자조정시스템 결재 순서 입니다.");
adjReqMgrVO.setEmailSendContent("전자조정시스템 결재 대상자 입니다. 결재 목록을 확인해주세요.");
emailTo = address;
InternetAddress toAddress = new InternetAddress(emailTo);
MimeMessage message = new MimeMessage(session);
message.setFrom(fromAddress);
message.addRecipient(Message.RecipientType.TO, toAddress );
message.setSubject(adjReqMgrVO.getEmailTitle());
message.setContent(adjReqMgrVO.getEmailSendContent()," text/html; charset=KSC5601");
System.out.println("------------------ 메일발송 시작 ----------------");
Transport.send(message);
System.out.println("------------------ 메일발송 끝 ----------------");
System.out.println("------------------ 메일발송Log 추가 시작----------------");
String encEmailFrom = egovCryptoUtil.encrypt(emailFrom); // email 수신자 주소 암호화
String encEmailTo = egovCryptoUtil.encrypt(emailTo); // email 발신자 주소 암호화
adjReqMgrVO.setEmailFrom(encEmailFrom);
adjReqMgrVO.setEmailTo(encEmailTo);
result = SendMgrService.insertAdrEmailLog(adjReqMgrVO);
System.out.println("------------------ 메일발송Log 추가 끝----------------");
} catch (Exception e) {
}
}
}

View File

@ -930,88 +930,86 @@ public class OadController {
String atchFileId = "";
if(resultStampInfo.size() > 0) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
if(StringUtil.isNotEmpty(resultStampInfo.get(0).getAtchFileId())) {
atchFileId = resultStampInfo.get(0).getAtchFileId();
atchFileId = resultStampInfo.get(0).getAtchFileId();
}
}
if(StringUtil.isNotEmpty(adrNo)) {
if(!adrNo.equals("")) {
oj.put("adrNo", adrNo);
}
if(StringUtil.isNotEmpty(adrSn)) {
if(!adrSn.equals("")) {
oj.put("adrSn", adrSn);
}
if(StringUtil.isNotEmpty(cctyTx)) {
if(!cctyTx.equals("")) {
oj.put("cctyTx", cctyTx);
}
if(StringUtil.isNotEmpty(memDeptNm)) {
if(!memDeptNm.equals("")) {
oj.put("memDeptNm", memDeptNm);
}
if(StringUtil.isNotEmpty(memName)) {
if(!memName.equals("")) {
oj.put("memName", memName);
}
if(StringUtil.isNotEmpty(applicantNm)) {
if(!applicantNm.equals("")) {
oj.put("applicantNm", applicantNm);
}
if(StringUtil.isNotEmpty(resPonDentNm)) {
if(!resPonDentNm.equals("")) {
oj.put("resPonDentNm", resPonDentNm);
}
if(StringUtil.isNotEmpty(resPonDentNmEtc)) {
if(!resPonDentNmEtc.equals("")) {
oj.put("resPonDentNmEtc", resPonDentNmEtc);
}
if(StringUtil.isNotEmpty(appDeDay)) {
if(!appDeDay.equals("")) {
oj.put("appDeDay", appDeDay);
}
if(StringUtil.isNotEmpty(closeCn1)) {
if(!closeCn1.equals("")) {
oj.put("closeCn1", closeCn1);
}
if(StringUtil.isNotEmpty(closeCn2)) {
if(!closeCn2.equals("")) {
oj.put("closeCn2", closeCn2);
}
if(StringUtil.isNotEmpty(closeCn3)) {
if(!closeCn3.equals("")) {
oj.put("closeCn3", closeCn3);
}
if(StringUtil.isNotEmpty(atchFileId)) {
if(!atchFileId.equals("")) {
String domain = "";

View File

@ -39,7 +39,4 @@ public interface AdjReqMgrOffLineService {
String selectAdjstReqMgrOffStatCdYn(AdjReqMgrOffLineVO adjReqMgrOffLineVO) throws Exception;
List<String> findByApprDeList();
//관리자 보완완료 상태변경 수정 처리
int updateAdjReqMgrState(AdjReqMgrOffLineVO adjReqMgrOffLineVO) throws Exception;
}

View File

@ -31,7 +31,7 @@ public class AdjReqMgrOffLineVO extends ComDefaultVO implements Serializable {
private String statCd = ""; // 조정사건상태
private String reqOlCd = ""; // 온_오프라인_신청구분
private String reqCn1 = ""; // 신청취지
private String reqCn2 = ""; // 신청이유
private String reqCn2 = ""; // 신청원인
private String reqTy = ""; // 신청유형
private String ccTy = ""; // 저작물종류
private String sbmtYn = ""; // 제출여부
@ -58,7 +58,6 @@ public class AdjReqMgrOffLineVO extends ComDefaultVO implements Serializable {
private String rpplTy = ""; // 관리인구분
private String agntYn = ""; // 조정기일대리여부
private String rpplUsrTy = ""; // 관리인분류
private String rpplUsrDiv = ""; // 관리인분류
private String adrOlYn = ""; // 전자조정진행여부
private String rpplId = ""; // 조정사건관리인ID
private String rpplNm = ""; // 이름_대표자
@ -404,12 +403,6 @@ public class AdjReqMgrOffLineVO extends ComDefaultVO implements Serializable {
public void setRpplUsrTy(String rpplUsrTy) {
this.rpplUsrTy = rpplUsrTy;
}
public String getRpplUsrDiv() {
return rpplUsrDiv;
}
public void setRpplUsrDiv(String rpplUsrDiv) {
this.rpplUsrDiv = rpplUsrDiv;
}
public String getAdrOlYn() {
return adrOlYn;
}

View File

@ -684,6 +684,7 @@ public String insertAdjReqMgrRpplReq(AdjReqMgrOffLineVO adjReqMgrOffLineVO) thro
adjReqMgrOffLineVO.setRpplRealPost(rpplRealPost);
adjReqMgrOffLineVO.setRpplRealAddr(rpplRealAddr);
adjReqMgrOffLineVO.setRpplRealAddrDtl(rpplRealAddrDtl);
//디비에 수정해 주기
int resultCnt = adjReqMgrOffLineDAO.updateAdjReqMgrOffRppl(adjReqMgrOffLineVO);
@ -1118,77 +1119,4 @@ public String insertAdjReqMgrRpplReq(AdjReqMgrOffLineVO adjReqMgrOffLineVO) thro
return adjReqMgrOffLineDAO.findByApprDeList();
}
@Override
public int updateAdjReqMgrState(AdjReqMgrOffLineVO adjReqMgrOffLineVO) throws Exception {
int rs = 0;
// 조정사건이력업데이트
{
AdjReqMgrVO adjReqMgrVO = new AdjReqMgrVO();
adjReqMgrVO.setAdrSeq(adjReqMgrOffLineVO.getAdrSeq());
adjReqMgrVO.setAdrSn(adjReqMgrOffLineVO.getAdrSn());
adjReqMgrVO.setLastUpdusrId(adjReqMgrOffLineVO.getLastUpdusrId());
adjReqMgrVO.setStatCd(KccadrConstants.ADR_REQ_COMP);
adjReqMgrVO = checkAdrProcessUtil.getAdrHstryCn(adjReqMgrVO); // 이력 내용 확인
//하기 내용으로 변경
CmmnDetailCodeVO cmmnDetailCodeVO = new CmmnDetailCodeVO();
cmmnDetailCodeVO.setCodeId("CC022");
cmmnDetailCodeVO.setCode(KccadrConstants.ADR_REQ_COMP);
CmmnDetailCode cmmnDetailCode = new CmmnDetailCode();
cmmnDetailCode = cmmnDetailCodeManageService.selectCmmnDetailCodeDetail(cmmnDetailCodeVO);
adjReqMgrVO.setHstryCn(cmmnDetailCode.getCodeNm());
System.out.println("cmmnDetailCode.getCodeNm()");
System.out.println(cmmnDetailCode.getCodeNm());
try {
adjReqMgrDAO.insertAdrHstry(adjReqMgrVO); // 이력 등록
rs++;
}catch(Exception ex) {
ex.printStackTrace();
}
}
//조정 사건 상태(stat_cd) 업데이트
{
AdjstReqVO adjstReqVO = new AdjstReqVO();
adjstReqVO.setAdrSeq(adjReqMgrOffLineVO.getAdrSeq());
adjstReqVO.setLastUpdusrId(adjReqMgrOffLineVO.getLastUpdusrId());
adjstReqVO.setEdtSn(adjReqMgrOffLineVO.getEdtSn());
adjstReqVO.setEdtTy(adjReqMgrOffLineVO.getEdtTy());
// 조정 마스터 정보 업데이트
adjstReqVO.setStatCd(KccadrConstants.ADR_REQ_COMP); // 제출완료상태
if(StringUtils.isNotBlank(adjstReqVO.getEdtSn()) ){
adjstReqVO.setEdtStatus("02"); // 수정, 보완 완료상태로 변경
adjstReqDAO.updateAdrMgrEditInfo(adjstReqVO);
//adr_hstry_mgr에 넣기 - 시작
adrHstryMgrDAO.insert4Func(adjReqMgrOffLineVO.getAdrSeq(), "조정신청서 보완완료-관리자"
, adjReqMgrOffLineVO.getStatCd()
, adjReqMgrOffLineVO.getFrstRegisterId()
, adjReqMgrOffLineVO.getLastUpdusrId()
, "" //, String p_adrHstryMgrSeq
, "U" //, String p_useCd I/U/UI/II/RE
, "ADR_MGR_MASTER" //, String p_tableName
, "" //, String p_updateQuery
);
//adr_hstry_mgr에 넣기 -
// 보완요청을 했을경우 상태를 보완요청완료로 변경
if("S".equals(adjstReqVO.getEdtTy())){
adjstReqVO.setStatCd(KccadrConstants.ADR_SUPP_COMP);
}
}
rs += adjstReqDAO.updateAdrMgrMasterComplete(adjstReqVO);
}
return rs;
}
}

View File

@ -978,22 +978,6 @@ public class AdjReqMgrOffLineController {
return modelAndView;
}
/*
*
* 조정신청 양식에 맞는 첨부파일을
* OCR로 읽어온다
*
* */
@RequestMapping("/kccadr/adjReqMgOff/adjReqMgrOffOcrPopAjax.do")
public String adjReqMgrOffOcrPopAjax(@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO, ModelMap model) throws Exception {
// AdjReqMgrOffLineVO master = adjReqMgrOffLineService.selectAdjstReqMgrOffMasterInfo(adjReqMgrOffLineVO);
// model.addAttribute("master", master);
return "kccadr/adjReqMgrOff/popup/adjReqMgrOffOcrPop";
}
public void decryptInfomation(List<AdjReqMgrOffLineVO> list, AdjReqMgrOffLineVO info){
if(CollectionUtils.isNotEmpty(list)){
for(AdjReqMgrOffLineVO model : list){

View File

@ -55,7 +55,7 @@ public class AdjReqMgrPastVO extends ComDefaultVO implements Serializable {
private String statTx = ""; // 조정사건상태
private String reqOlCd = ""; // 온_오프라인_신청구분
private String reqCn1 = ""; // 신청취지
private String reqCn2 = ""; // 신청이유
private String reqCn2 = ""; // 신청원인
private String reqTy = ""; // 신청유형
private String ccTy = ""; // 저작물종류
private String sbmtYn = ""; // 제출여부

View File

@ -116,8 +116,8 @@ public class AdjReqMgrPastServiceImpl extends EgovAbstractServiceImpl implements
List<AdjReqMgrPastVO> resultAdjReqMgrList = new ArrayList<AdjReqMgrPastVO>();
resultAdjReqMgrList = adjReqMgrPastDAO.selectAdjReqMgrListInfo(adjReqMgrPastVO);
// if(resultAdjReqMgrList != null) {
if(resultAdjReqMgrList.size() > 0) {
if(resultAdjReqMgrList != null) {
String rpplTy = resultAdjReqMgrList.get(0).getRpplTy();
int listCnt = resultAdjReqMgrList.size();
@ -1028,64 +1028,71 @@ public class AdjReqMgrPastServiceImpl extends EgovAbstractServiceImpl implements
List<AdjReqMgrPastVO> adjReqMgrPastList = adjReqMgrPastDAO.selectAdjReqMgrPastList(adjReqMgrPastVO);
// 신청인 피신청인 select
// adjReqMgrPastList.stream()
// .forEach(t-> t.setAdjReqMgrVoList(adjReqMgrPastDAO.selectRpplList(t)));
adjReqMgrPastList.stream()
.forEach(t-> t.setAdjReqMgrVoList(adjReqMgrPastDAO.selectRpplList(t)));
try {
// 신청인 피신청인 select
adjReqMgrPastList.stream()
.forEach(t-> {
t.setAdjReqMgrVoList(adjReqMgrPastDAO.selectRpplList(t));
/*
* 조정결과 상태값 select
* code -> text 변환
* */
if(StringUtils.isNotEmpty(t.getStatCd())) {
t.setStatTx(HstryStatEnumVO.getStatCdSwitching(t.getStatCd()));
}
// 리스트에서 피신청인 갯수 count
t.setpRpplCnt(t.getAdjReqMgrVoList().stream()
.filter(c -> "20".equals(c.getRpplTy()))
.count());
/*
* 조정결과 상태값 select
* code -> text 변환
* */
if(StringUtils.isNotEmpty(t.getAssPstUsrNm()))
t.setAssPstUsrNm(MagicDBAPIUtil.decryptOnlyOneString(t.getAssPstUsrNm()));
});
/*
* 조정결과 상태값 select
* code -> text 변환
* */
adjReqMgrPastList.stream()
.forEach(t-> {
if(StringUtils.isNotEmpty(t.getStatCd()))
t.setStatTx(HstryStatEnumVO.getStatCdSwitching(t.getStatCd()));
});
// N명 로직
for(AdjReqMgrPastVO adjRpplVO : adjReqMgrPastList){
// 피신청 이름
String PrpplNm = "";
// n명
String etcStr = "";
// 피신청인 1명 이름 추출
for(AdjReqMgrPastVO adjRppl : adjRpplVO.getAdjReqMgrVoList())
// 리스트에서 피신청인 갯수 count
adjReqMgrPastList.stream().forEach(t-> {
t.setpRpplCnt(t.getAdjReqMgrVoList().stream()
.filter(c -> "20".equals(c.getRpplTy()))
.count());
});
// N명 로직
for(AdjReqMgrPastVO adjRpplVO : adjReqMgrPastList){
// 피신청 이름
String PrpplNm = "";
// n명
String etcStr = "";
// 피신청인 1명 이름 추출
for(AdjReqMgrPastVO adjRppl : adjRpplVO.getAdjReqMgrVoList())
{
if("20".equals(adjRppl.getRpplTy()))
{
if("20".equals(adjRppl.getRpplTy()))
{
PrpplNm = adjRppl.getRpplNm();
break;
}
// 신청인 이름 추출
else if("10".equals(adjRppl.getRpplTy()))
{
adjRpplVO.setRpplNm(egovCryptoUtil.decrypt(adjRppl.getRpplNm()));
break;
}
PrpplNm = adjRppl.getRpplNm();
break;
}
// 피신청인이 1명보다 많으면 "외 n명" 구하기
if(adjRpplVO.getpRpplCnt() > 1)
{
int cnt = (int) (adjRpplVO.getpRpplCnt()-1);
etcStr = ""+cnt+"";
}
adjRpplVO.setPrpplNm(egovCryptoUtil.decrypt(PrpplNm) + etcStr);
}
// 신청인 이름 추출
for(AdjReqMgrPastVO adjRppl : adjRpplVO.getAdjReqMgrVoList())
{
if("10".equals(adjRppl.getRpplTy()))
{
adjRpplVO.setRpplNm(egovCryptoUtil.decrypt(adjRppl.getRpplNm()));
break;
}
}
// 피신청인이 1명보다 많으면 "외 n명" 구하기
if(adjRpplVO.getpRpplCnt() > 1)
{
int cnt = (int) (adjRpplVO.getpRpplCnt()-1);
etcStr = ""+cnt+"";
}
adjRpplVO.setPrpplNm(egovCryptoUtil.decrypt(PrpplNm) + etcStr);
}
/*
* 조정결과 상태값 select
* code -> text 변환
* */
try {
adjReqMgrPastList.stream()
.forEach(t-> {
if(StringUtils.isNotEmpty(t.getAssPstUsrNm()))
t.setAssPstUsrNm(MagicDBAPIUtil.decryptOnlyOneString(t.getAssPstUsrNm()));
});
} catch (Exception e) {
e.printStackTrace();
}

View File

@ -2,6 +2,7 @@ package kcc.kccadr.adjReqMgrPast.web;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Properties;
@ -12,6 +13,7 @@ import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.env.SystemEnvironmentPropertySource;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
@ -22,9 +24,12 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.dreamsecurity.magicline.util.Log;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.service.AdrInnorixFileVO;
import kcc.com.cmm.service.EgovCmmUseService;
import kcc.com.cmm.service.EgovFileMngService;
import kcc.com.cmm.service.EgovFileMngUtil;
@ -117,7 +122,6 @@ public class AdjReqMgrPastController {
@RequestMapping("/kccadr/adjReqMgOff/adjReqMgrPastBasicRegist.do")
public String adjReqMgrPastBasicRegist(@ModelAttribute("searchVO") AdjReqMgrPastVO adjReqMgrPastVO, ModelMap model) throws Exception {
//TODO TEST
// adjReqMgrPastVO.setAdrSeq("ADR_0000000000002920");
@ -646,13 +650,7 @@ public class AdjReqMgrPastController {
//사용자 유니크 아이디 받아오기
adjReqMgrPastVO.setFrstRegisterId(userId);
if("".equals(adjReqMgrPastVO.getFrstRegistPnttm())) {
adjReqMgrPastVO.setFrstRegistPnttm(null);
}
adjReqMgrPastVO.setLastUpdusrId(userId);
if("".equals(adjReqMgrPastVO.getLastUpdtPnttm())) {
adjReqMgrPastVO.setLastUpdtPnttm(null);
}
//조정신청, 대리인, 신청인 등록 처리
return adjReqMgrPastService.insertAdjReqMgrRpplReq(adjReqMgrPastVO);
}

View File

@ -318,8 +318,6 @@ public class AdjstConciliatorVO extends ComDefaultVO implements Serializable {
private String openYn; //공개여부
private String prtclCn; //조서내용
private String nextSbmtId;
public String getAdrSeq() {
return adrSeq;
@ -1875,15 +1873,6 @@ public class AdjstConciliatorVO extends ComDefaultVO implements Serializable {
this.cmntOftenFlag = cmntOftenFlag;
}
public String getNextSbmtId() {
return nextSbmtId;
}
public void setNextSbmtId(String nextSbmtId) {
this.nextSbmtId = nextSbmtId;
}

View File

@ -1,12 +1,10 @@
package kcc.kccadr.adjcclt.web;
import java.text.SimpleDateFormat;
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.TextStyle;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@ -61,7 +59,6 @@ import kcc.kccadr.cmm.RestResponse;
import kcc.kccadr.kccadrCom.service.KccadrMgrUdtService;
import kcc.kccadr.ojct.service.OjctService;
import kcc.kccadr.ojct.service.OjctVO;
import kcc.kccadr.sch.service.SchduleManageService;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
/**
@ -129,8 +126,6 @@ public class AdjstConciliatorController {
@Resource(name="adrHstryMgrService")
private AdrHstryMgrService adrHstryMgrService;
@Resource(name = "schduleManageService")
private SchduleManageService schduleManageService;
/**
* 조정위원 대시보드 화면
*/
@ -1043,58 +1038,6 @@ public class AdjstConciliatorController {
return "/web/kccadr/adjcclt/popup/adjstOjctDetail";
}
@RequestMapping("/kccadr/adjcclt/ai/insertschMgrAjax.do")
public ModelAndView insertschMgrAjax( @ModelAttribute("adjstConciliatorVO") AdjstConciliatorVO adjstConciliatorVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
String tilte = adjstConciliatorVO.getAdrNo()+" "+adjstConciliatorVO.getAdrSn()+"차 기일";
String id = adjstConciliatorVO.getAdrAdmId();
String dntDay = adjstConciliatorVO.getAppDe();
dntDay = dntDay.replaceAll("/", "-");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date formatDate = simpleDateFormat.parse(dntDay);
dntDay = simpleDateFormat.format(formatDate);
schduleManageService.insertSchManageByDnt(tilte, dntDay, id);
} catch (Exception e) {
System.out.println(e.getMessage());
}
modelAndView.addObject("result", "SUCCESS");
return modelAndView;
}
@RequestMapping("/kccadr/adjcclt/ai/insertschMgrChgAjax.do")
public ModelAndView insertschMgrChgAjax( @ModelAttribute("adjstConciliatorVO") AdjstConciliatorVO adjstConciliatorVO) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
try {
String tilte = adjstConciliatorVO.getAdrNo()+" "+adjstConciliatorVO.getAdrSn()+"차 기일 변경";
String id = adjstConciliatorVO.getAdrAdmId();
String dntDay = adjstConciliatorVO.getAppDe();
dntDay = dntDay.replaceAll("/", "-");
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date formatDate = simpleDateFormat.parse(dntDay);
dntDay = simpleDateFormat.format(formatDate);
schduleManageService.insertSchManageByDnt(tilte, dntDay, id);
} catch (Exception e) {
System.out.println(e.getMessage());
}
modelAndView.addObject("result", "SUCCESS");
return modelAndView;
}
public void decryptInfomation(List<AdjstConciliatorVO> list, AdjstConciliatorVO info) {
if (CollectionUtils.isNotEmpty(list)) {
for (AdjstConciliatorVO model : list) {

View File

@ -34,7 +34,6 @@ import egovframework.rte.fdl.string.EgovStringUtil;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.util.StringUtil;
import kcc.com.cmm.util.StringUtil2;
import kcc.kccadr.accdnt.ars.service.AdjstReqStatusService;
import kcc.kccadr.accdnt.ars.service.AdjstReqStatusVO;
import kcc.kccadr.adjPgrMgr.cmm.service.PgrCmmService;
@ -129,34 +128,6 @@ public class AdjClsMgrController {
log.debug("commandMap : {}", commandMap);
log.debug("commandMap.isEmpty() : {}", commandMap.isEmpty());
//조정조사관, 조정팀장일 조정조사관 조회 구분 추가
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated() ? (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser() : null;
String userId = loginVO == null ? "" : loginVO.getUniqId().toString().trim();
// commandMap.put("searchLoginId", userId);
//
// if(("".equals(commandMap.get("searchEachAdrAdminYn")) || commandMap.get("searchEachAdrAdminYn") == null)&& "ROLE_ADR_ADMIN".equals(loginVO.getAuthority()) && ("10".equals(loginVO.getOfcpsNm()) || "20".equals(loginVO.getOfcpsNm()))) {
// commandMap.put("searchEachAdrAdminYn", "Y");
// }
//
// if("ROLE_ADR_ADMIN".equals(loginVO.getAuthority()) && ("10".equals(loginVO.getOfcpsNm()) || "20".equals(loginVO.getOfcpsNm()))) {
// commandMap.put("searchEachAdrAdminBtnYn", "Y");
// }
//담당사건만 보기 여부 - 기본 : 전체 조회 / ROLE_ADR_ADMIN 권한에 조정조사관 or 조정팀장은 기본 : 담당사건만 조회
// -> 2023.10.12 전체가 초기값으로 조회가 되도록 수정요청
if(StringUtil2.isEmpty((String)commandMap.get("searchLoginId"))) {
commandMap.put("searchLoginId", "all");
/*if("ROLE_ADR_ADMIN".equals(loginVO.getAuthority()) && ("10".equals(loginVO.getOfcpsNm()) || "20".equals(loginVO.getOfcpsNm()))) {
commandMap.put("searchEachAdrAdminYn", "Y");
commandMap.put("searchLoginId", userId);
}*/
}else {
if(!"all".equals((String)commandMap.get("searchLoginId"))){
commandMap.put("searchEachAdrAdminYn", "Y");
}
}
//기본값설정
commandMap.put("rangeView", "kcc_adr_advc");
String searchWrd = (String) commandMap.get("q");
@ -220,8 +191,6 @@ public class AdjClsMgrController {
model.addAttribute("commandMap", commandMap);
model.addAttribute("totalRecordCount", totalRecordCount);
//조정조사관 리스트
model.addAttribute("adrAdminList", cmmService.selectPgrCmmAdrAdminList());
}catch(Exception ex) {
ex.printStackTrace();
}

View File

@ -41,7 +41,7 @@ public class AdjReqMgrVO extends ComDefaultVO implements Serializable{
private String statCd = ""; // 조정사건상태
private String reqOlCd = ""; // 온_오프라인_신청구분
private String reqCn1 = ""; // 신청취지
private String reqCn2 = ""; // 신청이유
private String reqCn2 = ""; // 신청원인
private String reqTy = ""; // 신청유형
private String ccTy = ""; // 저작물종류
private String sbmtYn = ""; // 제출여부
@ -149,8 +149,6 @@ public class AdjReqMgrVO extends ComDefaultVO implements Serializable{
private String rpplUsrTyNm;
private String rpplUsrDivNm;
private String edtSn;
private String edtTy;
@ -258,64 +256,7 @@ public class AdjReqMgrVO extends ComDefaultVO implements Serializable{
private String userId;
private String smsSendTypeCd; // 발송유형 - CC052
private String certNum; // 인증번호
private String[] phoneList; //수신번호 리스트
//저작위 email 발송
/*
* emailTy ( 확인필요 )
* 000 - 관리자발송
* 001 - 보완요청
* 002 - 수수료납부요청
* 003 - 조정접수
* 004 - 기일통지서승인
* 005 - 기일조서 결재완료
* 006 - 조정조서 결재완료
* 007 - 직권조정결정서 확인완료
* 008 - 없음
* 009 - 조정불성립
*
* */
private String[] emailList; // 수신이메일 리스트
private String emailTitle; // 이메일 제목
private String emailContent; // 이메일 내용
private String emailTy; // 이메일 발송 유형
private String emailTo; // 이메일 발송 수신자
private String emailFrom; // 이메일 발송 발신자
private String emailSendContent; // 이메일 발송내용
private String adminPhone; //관리자 전화번호
public String getEmailSendContent() {
return emailSendContent;
}
public void setEmailSendContent(String emailSendContent) {
this.emailSendContent = emailSendContent;
}
public String getEmailTitle() {
return emailTitle;
}
public void setEmailTitle(String emailTitle) {
this.emailTitle = emailTitle;
}
public String getEmailContent() {
return emailContent;
}
public void setEmailContent(String emailContent) {
this.emailContent = emailContent;
}
public String[] getEmailList() {
return emailList;
}
public void setEmailList(String[] emailList) {
this.emailList = emailList;
}
public String[] getPhoneList() {
return phoneList;
}
public void setPhoneList(String[] phoneList) {
this.phoneList = phoneList;
}
public AdjReqMgrVO getAdrVO() {
return adrVO;
}
@ -865,14 +806,6 @@ public class AdjReqMgrVO extends ComDefaultVO implements Serializable{
this.rpplUsrTyNm = rpplUsrTyNm;
}
public String getRpplUsrDivNm() {
return rpplUsrDivNm;
}
public void setRpplUsrDivNm(String rpplUsrDivNm) {
this.rpplUsrDivNm = rpplUsrDivNm;
}
public String getEdtSn() {
return edtSn;
}
@ -1288,31 +1221,6 @@ public class AdjReqMgrVO extends ComDefaultVO implements Serializable{
public void setCertNum(String certNum) {
this.certNum = certNum;
}
public String getEmailTy() {
return emailTy;
}
public void setEmailTy(String emailTy) {
this.emailTy = emailTy;
}
public String getEmailTo() {
return emailTo;
}
public void setEmailTo(String emailTo) {
this.emailTo = emailTo;
}
public String getEmailFrom() {
return emailFrom;
}
public void setEmailFrom(String emailFrom) {
this.emailFrom = emailFrom;
}
public String getAdminPhone() {
return adminPhone;
}
public void setAdminPhone(String adminPhone) {
this.adminPhone = adminPhone;
}
}

View File

@ -148,7 +148,7 @@ public class AdjReqMgrDAO extends EgovAbstractDAO {
update("adjReqMgrDAO.updateAdrMgrMasterDetailApprCn", adjReqMgrVO);
}
// 조정알림SMS - SMS전송 요청 LOG 등록
// 조정알림SMS - SMS전송 요청 LOG 등록
public int insertAdrSmsCustomSend(AdjReqMgrVO adjReqMgrVO) throws Exception{
return update("AdjReqMgrDAO.insertAdrSmsCustomSend", adjReqMgrVO);
}

View File

@ -765,11 +765,114 @@ public class AdjReqMgrController {
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
//System.out.println("adjstReqVO.getAdrSeq()");
//System.out.println(adjstReqVO.getAdrSeq());
//String userId = "123";
AdjstReqVO adjstMsrMasterVO = new AdjstReqVO();
//adjstMsrMasterVO.setAdrSeq("ADR_0000000000000381");
adjstMsrMasterVO.setAdrSeq(adjstReqVO.getAdrSeq());
/*
JSONObject jsMaster = new JSONObject();
JSONObject jsDepInfo = new JSONObject();
JSONObject jsReqInfo = new JSONObject();
JSONArray jsRespInfo = new JSONArray();
JSONArray jsAtchFileInfo = new JSONArray();
if(!userId.equals("")) {
//임시 저장중인 데이터가 있는지 확인
//조정사건 번호 조회하기
AdjstReqVO adjMsrMaster = adjstReqService.selectAdjsMgrMasterByAdrSeq(adjstMsrMasterVO);
jsMaster = parseJsonData(adjMsrMaster);
//첨부파일이 있는경우 파일 이름 처리해주기
if(adjMsrMaster.getAtchFileId() != null || adjMsrMaster.getAtchFileId().equals("")) {
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(adjMsrMaster.getAtchFileId());
List<FileVO> fileList = fileService.selectFileInfs(fileVO);
JSONObject jsFile = new JSONObject();
for(int i=0; i< fileList.size(); i++) {
JSONObject oj = new JSONObject();
String fileNm = fileList.get(i).getOrignlFileNm();
oj.put("atchFile", fileNm);
jsAtchFileInfo.add(oj);
}
}
if(adjMsrMaster != null) {
// 조정사건번호 입력해주기
adjstReqVO.setAdrSeq(adjMsrMaster.getAdrSeq());
//임시저장중인 대리인, 신청인, 피신청인 정보 리스트로 불러오기
List<AdjstReqVO> adjstReqUserList = adjstReqService.selectAdjsReqUserListByadjSeq(adjMsrMaster);
if(adjstReqUserList.size() > 0) { //신청인 정보가 있는 경우 실행
//신청 대리인이 포함되어 있는지 확인 - 리스트 정렬을 rpplTy desc 정렬을 해서 첫번째 리스트가 대리인이 있는지 확인
String rpplTy = adjstReqUserList.get(0).getRpplTy();
int listCnt = adjstReqUserList.size();
AdjstReqVO adjReqDepInfo = new AdjstReqVO(); //대리인 정보
AdjstReqVO adjReqInfo = new AdjstReqVO(); //신청인 정보
AdjstReqVO adjReqRespInfo = new AdjstReqVO(); //피신청인 정보
for(int i=0; i < listCnt; i++) {
AdjstReqVO temp = new AdjstReqVO();
String rpplTy1 = adjstReqUserList.get(i).getRpplTy();
if(rpplTy1.equals("30")) { //대리인 정보 담기
//신청 대리인 정보 추가해주기
temp = adjstReqUserList.get(i);
adjReqDepInfo.getAdjstReqVoList().add(decryptAdjReqMgrReturn(temp));
jsDepInfo = parseJsonData(temp);
}else if(rpplTy1.equals("10")) { //신청인 정보 담기
//신청인 정보 추가해주기
temp = adjstReqUserList.get(i);
adjReqInfo.getAdjstReqVoList().add(decryptAdjReqMgrReturn(temp));
jsReqInfo = parseJsonData(temp);
}else if(rpplTy1.equals("20")) {
//피신청인 정보 추가해주기
temp = adjstReqUserList.get(i);
adjReqRespInfo.getAdjstReqVoList().add(decryptAdjReqMgrReturn(temp));
JSONObject jsTemp = new JSONObject();
jsTemp = parseJsonData(temp);
jsRespInfo.add(jsTemp);
}
}
}
}
}
JSONObject jsObjData = new JSONObject();
jsObjData.put("jsMaster", jsMaster);
jsObjData.put("jsDepInfo", jsDepInfo);
jsObjData.put("jsReqInfo", jsReqInfo);
jsObjData.put("jsRespInfo", jsRespInfo);
jsObjData.put("jsAtchFileInfo", jsAtchFileInfo);
*/
OzSchdExportUtil ozSchd = new OzSchdExportUtil();
JSONObject jsObjData = ozSchd.makeReqReport(
@ -807,9 +910,6 @@ public class AdjReqMgrController {
//오즈리포트 서버별 주소 셋팅해주기
String serverName = req.getServerName();
System.out.println("++++++++++++++++++++++++++++++++++++++++++ serverName : "+ serverName);
String ozServerNm = IpUtil.getOzServerName(serverName);
model.addAttribute("ozServerNm", ozServerNm);
@ -835,6 +935,115 @@ public class AdjReqMgrController {
, devServerCheckString
);
/*
private String ozDevServerIp;
//개발, local oz 스케쥴러 서버 IP + port
@Value("#{globalSettings['Globals.oz.devSchedulerIp']}")
private String ozDevSchedulerIp;
//개발, local oz to pdf 저장 경로
@Value("#{globalSettings['Globals.oz.devPath']}")
private String ozDevPath;
//real oz 서버 IP + port
@Value("#{globalSettings['Globals.oz.realServerIp']}")
private String ozRealServerIp;
//real oz 스케쥴러 서버 IP + port
@Value("#{globalSettings['Globals.oz.realSchedulerIp']}")
private String ozRealSchedulerIp;
//real oz to pdf 저장 경로
@Value("#{globalSettings['Globals.oz.realPath']}")
private String ozRealPath;
* */
//checkOzEnvNMakePDF
/*
//로컬, 개발 서버
if("local".equals(islocal)) {
System.out.println(islocal + "환경입니다.");
String ozrFilePath = "/adjReqReport.ozr";
//이준호 오즈리포트 export 경로 앞에 "/"추가 테스트_220310
*String savePath = adjstReqVO.getAdrSeq() + "/adjReqReport.pdf";*
String savePath = "/" + adjstReqVO.getAdrSeq() + "/adjReqReport.pdf";
savePath = "/usr/local/tomcat/webapps/data"+savePath;
savePath = ozDevPath + adjstReqVO.getAdrSeq() + "/adjReqReport.pdf";
String jsonData = jsObjData.toJSONString();
jsonData = jsonData.replace("\\\\r\\\\n", "\\r\\n"); //리포트 내용에 줄바꿈 문자 변환 - pdf에서는 \\r\\n으로 넘겨야 줄바꿈이 정상 처리됨
ozSchd.ozschdFileExport(ozrFilePath, jsonData, savePath, req);
}
//실서버
else {
System.out.println("#################################" + islocal + "환경입니다.");
//이준호 오즈리포트 export 추가 ozFile폴더에도 생성
String ozrFilePath2 = "/adjReqReport.ozr";
//이준호 오즈리포트 export_0406_nas에 파일 저장 성공
String savePath2 = "\\\\192.168.39.130\\data\\out\\" + adjstReqVO.getAdrSeq() + "\\ozFile\\adjReqReport.pdf";
String jsonData2 = jsObjData.toJSONString();
jsonData2 = jsonData2.replace("\\\\r\\\\n", "\\r\\n"); //리포트 내용에 줄바꿈 문자 변환 - pdf에서는 \\r\\n으로 넘겨야 줄바꿈이 정상 처리됨
ozSchd.ozschdFileExport(ozrFilePath2, jsonData2, savePath2, req);
*/
//=============================================테스트 소스 시작=====================================================================
/*//이준호 오즈리포트 export 추가 ozFile폴더에도 생성
String ozrFilePath2 = "/adjReqReport.ozr";
//이준호 오즈리포트 export 경로 앞에 "/"추가 테스트_220310
String savePath2 = "\\\\192.168.39.130\\data\\out\\adjReqReport2.pdf";
System.out.println("@@@@@@@@@@@@@@@@@@adjstReqVO.getAdrSeq() :: @@@@@ =" + adjstReqVO.getAdrSeq());
System.out.println("@@@@@@@@@@@@@@@@@@ savePath2 :: @@@@@ = " + savePath2);
String jsonData2 = jsObjData.toJSONString();
jsonData2 = jsonData2.replace("\\\\r\\\\n", "\\r\\n"); //리포트 내용에 줄바꿈 문자 변환 - pdf에서는 \\r\\n으로 넘겨야 줄바꿈이 정상 처리됨
ozSchd.ozschdFileExport(ozrFilePath2, jsonData2, savePath2, req);
//이준호 오즈리포트 export 추가 ozFile폴더에도 생성
String ozrFilePath3 = "/adjReqReport.ozr";
//이준호 오즈리포트 export 경로 앞에 "/"추가 테스트_220310
String savePath3 = "adjReqReport3.pdf";
System.out.println("@@@@@@@@@@@@@@@@@@ savePath3 :: @@@@@ = " + savePath3);
String jsonData3 = jsObjData.toJSONString();
jsonData3 = jsonData3.replace("\\\\r\\\\n", "\\r\\n"); //리포트 내용에 줄바꿈 문자 변환 - pdf에서는 \\r\\n으로 넘겨야 줄바꿈이 정상 처리됨
ozSchd.ozschdFileExport(ozrFilePath3, jsonData3, savePath3, req);
//이준호 오즈리포트 export 추가 ozFile폴더에도 생성
String ozrFilePath4 = "/adjReqReport.ozr";
//이준호 오즈리포트 export 경로 앞에 "/"추가 테스트_220310
String savePath4 = "\\\\192.168.39.125\\data3\\out/adjReqReport4.pdf";
System.out.println("@@@@@@@@@@@@@@@@@@ savePath4 :: @@@@@ = " + savePath4);
String jsonData4 = jsObjData.toJSONString();
jsonData4 = jsonData4.replace("\\\\r\\\\n", "\\r\\n"); //리포트 내용에 줄바꿈 문자 변환 - pdf에서는 \\r\\n으로 넘겨야 줄바꿈이 정상 처리됨
ozSchd.ozschdFileExport(ozrFilePath4, jsonData4, savePath4, req);
//=============================================테스트 소스 =====================================================================
*/
/*
}
*/
//adr_hstry_mgr에 넣기 - 시작
adrHstryMgrService.insert4Func(adjstReqVO.getAdrSeq(), "신청서출력-관리자"
, adjstReqVO.getStatCd()
@ -881,7 +1090,7 @@ public class AdjReqMgrController {
//조정 신청 정보 불러오기.
AdjReqMgrOffLineVO resultAdjReqMgrOffLine = adjReqMgrOffLineService.selectAdjReqMgrOffLineInfo(adjReqMgrOffLineVO);
System.out.println("==========================");
FileVO fileVO = new FileVO();
if(resultAdjReqMgrOffLine.getAdjReqMgrVoList().get(0).getAtchFileId() != null){
@ -908,8 +1117,6 @@ public class AdjReqMgrController {
List<?> codeResult = cmmUseService.selectCmmCodeDetail("CC001");
model.addAttribute("CC001", codeResult);
model.addAttribute("CC007", cmmUseService.selectCmmCodeDetail("CC007"));
System.out.println("resultAdjReqMgrOffLine :: "+ resultAdjReqMgrOffLine.getAdjReqMgrVoList().get(2));
model.addAttribute("adrVO", resultAdjReqMgrOffLine);
@ -1041,42 +1248,6 @@ public class AdjReqMgrController {
return modelAndView;
}
/**
* 조정신청 보완요청 수정 Ajax
*
*/
@RequestMapping(value = {"/kccadr/adjReqMgr/adjReqMgrStateUpdateAjax.do"})
public ModelAndView adjReqMgrStateUpdateAjax(
@ModelAttribute("adjReqMgrOffLineVO") AdjReqMgrOffLineVO adjReqMgrOffLineVO
, HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 권한정보 불러오기
LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null;
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
if(userId.equals("")) {
modelAndView.addObject("adjStatus", "loginFail");
return modelAndView;
}
adjReqMgrOffLineVO.getEdtSn();
adjReqMgrOffLineVO.getAdrSeq();
adjReqMgrOffLineVO.setFrstRegisterId(userId);
adjReqMgrOffLineVO.setLastUpdusrId(userId);
int resultCnt = adjReqMgrOffLineService.updateAdjReqMgrState(adjReqMgrOffLineVO);
if(resultCnt > 0) {
modelAndView.addObject("result", KccadrConstants.SUCCESS); // 성공메세지
}else {
modelAndView.addObject("result", KccadrConstants.FAIL); // 실패메세지
}
return modelAndView;
}
@SuppressWarnings("unchecked")
public JSONObject parseJsonData(AdjstReqVO adjReqVO) throws Exception{
@ -1094,46 +1265,46 @@ public class AdjReqMgrController {
String adrNo = adjReqVO.getAdrNo(); //조정사건번호
//엔터문자 변경해주기 - \n\r -> \\n\\r로 json 데이터 전달해야한다고 (오즈리포트)
String reqCn1 = adjReqVO.getReqCn1().replaceAll("\r\n", "\\\\r\\\\n"); //신청취지
String reqCn2 = adjReqVO.getReqCn2().replaceAll("\r\n", "\\\\r\\\\n"); //신청이유
String reqCn2 = adjReqVO.getReqCn2().replaceAll("\r\n", "\\\\r\\\\n"); //신청원인
if(StringUtil.isNotEmpty(rpplNm)) {
if(!rpplNm.equals("")) {
oj.put("rpplNm", rpplNm);
}
if(StringUtil.isNotEmpty(rpplPost)) {
if(!rpplPost.equals("")) {
oj.put("rpplPost", rpplPost);
}
if(StringUtil.isNotEmpty(rpplPhone)) {
if(!rpplPhone.equals("")) {
oj.put("rpplPhone", rpplPhone);
}
if(StringUtil.isNotEmpty(rpplAddr) && !" ".equals(rpplAddr)) {
if(!rpplAddr.equals("") && !rpplAddr.equals(" ")) {
oj.put("rpplAddr", rpplAddr);
}
if(StringUtil.isNotEmpty(rpplEmail)) {
if(!rpplEmail.equals("")) {
oj.put("rpplEmail", rpplEmail);
}
if(StringUtil.isNotEmpty(reqCn1)) {
if(!reqCn1.equals("")) {
oj.put("reqCn1", reqCn1);
}
if(StringUtil.isNotEmpty(reqCn2)) {
if(!reqCn2.equals("")) {
oj.put("reqCn2", reqCn2);

View File

@ -45,7 +45,7 @@ public class AdjstReqVO extends ComDefaultVO implements Serializable {
private String statNm = ""; // 조정사건상태명
private String reqOlCd = ""; // 온_오프라인_신청구분
private String reqCn1 = ""; // 신청취지
private String reqCn2 = ""; // 신청이유
private String reqCn2 = ""; // 신청원인
private String reqTy = ""; // 신청유형
private String ccTy = ""; // 저작물종류
private String sbmtYn = ""; // 제출여부
@ -72,7 +72,6 @@ public class AdjstReqVO extends ComDefaultVO implements Serializable {
private String rpplTy = ""; // 관리인구분
private String agntYn = ""; // 조정기일대리여부
private String rpplUsrTy = ""; // 관리인분류
private String rpplUsrDiv = ""; // 관리인구분 (01:한국인, 02:외국인)
private String adrOlYn = ""; // 전자조정진행여부
private String rpplId = ""; // 조정사건관리인ID
private String rpplNm = ""; // 이름_대표자
@ -174,8 +173,6 @@ public class AdjstReqVO extends ComDefaultVO implements Serializable {
private String codeId;
private String loginNextUrl;
private String countryCode;
public String getSrchYear() {
@ -406,12 +403,6 @@ public class AdjstReqVO extends ComDefaultVO implements Serializable {
public void setRpplUsrTy(String rpplUsrTy) {
this.rpplUsrTy = rpplUsrTy;
}
public String getRpplUsrDiv() {
return rpplUsrDiv;
}
public void setRpplUsrDiv(String rpplUsrDiv) {
this.rpplUsrDiv = rpplUsrDiv;
}
public String getAdrOlYn() {
return adrOlYn;
}
@ -897,12 +888,6 @@ public class AdjstReqVO extends ComDefaultVO implements Serializable {
public void setExmpMgrId(String exmpMgrId) {
this.exmpMgrId = exmpMgrId;
}
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
}

View File

@ -48,9 +48,6 @@ public class PayVO extends ComDefaultVO implements Serializable {
private String lastUpdusrId = "" ; //수정자
private String merchantData = ""; //고객사 임의데이터
private String prcsnStatCd = ""; //고객사 임의데이터
public String getPaySeq() {
return paySeq;
@ -274,12 +271,6 @@ public class PayVO extends ComDefaultVO implements Serializable {
public void setMerchantData(String merchantData) {
this.merchantData = merchantData;
}
public String getPrcsnStatCd() {
return prcsnStatCd;
}
public void setPrcsnStatCd(String prcsnStatCd) {
this.prcsnStatCd = prcsnStatCd;
}

View File

@ -599,7 +599,6 @@ public class AdjstReqServiceImpl extends EgovAbstractServiceImpl implements Adj
adjstReqVO.setRpplRealPost(rpplRealPost);
adjstReqVO.setRpplRealAddr(rpplRealAddr);
adjstReqVO.setRpplRealAddrDtl(rpplRealAddrDtl);
System.out.println("adjstReqVO.getRpplUsrDiv() :: "+ adjstReqVO.getRpplUsrDiv());
//디비에 수정해 주기
int resultCnt = adjstReqDAO.updateAdrRppl(adjstReqVO);
@ -919,13 +918,6 @@ public class AdjstReqServiceImpl extends EgovAbstractServiceImpl implements Adj
if(CollectionUtils.isNotEmpty(adjstReqVO.getAdjstRpplList())){
for(AdjstReqVO model : adjstReqVO.getAdjstRpplList()){
if(StringUtils.isNotEmpty(model.getCountryCode())) {
model.setRpplPost("["+model.getCountryCode() + "] " +model.getRpplPost());
}
System.out.println(" model.getRpplPost() :: "+ model.getRpplPost());
model.setAdrSeq(adjstReqVO.getAdrSeq());
// 관련인 생성
model.setRpplSeq(rpplIdgenService.getNextStringId());
@ -981,13 +973,6 @@ public class AdjstReqServiceImpl extends EgovAbstractServiceImpl implements Adj
int rs = 0;
if(CollectionUtils.isNotEmpty(adjstReqVO.getAdjstRpplList())){
for(AdjstReqVO model : adjstReqVO.getAdjstRpplList()){
if(StringUtils.isNotEmpty(model.getCountryCode())) {
model.setRpplPost("["+model.getCountryCode() + "] " +model.getRpplPost());
}
System.out.println("model.getRpplPost() ::" + model.getRpplPost());
model.setAdrSeq(adjstReqVO.getAdrSeq());
// 최초등록자
model.setFrstRegisterId(adjstReqVO.getFrstRegisterId());

View File

@ -7,8 +7,6 @@ import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@ -375,29 +373,6 @@ public class AdjstReqWebController {
req.setRpplTy(KccadrConstants.ADR_RPPL_TY_REQ);
list.add(req);
}
int cnt = 0;
for(AdjstReqVO adj : list) {
if("10".equals(adj.getRpplTy())
&& "02".equals(adj.getRpplUsrDiv())) {
Pattern pattern = Pattern.compile("\\[(.*?)\\]");
Matcher matcher = pattern.matcher(adj.getRpplPost());
if (matcher.find()) {
String extracted = matcher.group(1);
// list.get(cnt).setCountryCode(extracted);
adj.setCountryCode(extracted);
System.out.println(" :: adj.getCountryCode() :: "+adj.getCountryCode());
}
// list.get(cnt).setRpplPost(adj.getRpplPost().replaceAll("\\[.*?\\]", ""));
adj.setRpplPost(adj.getRpplPost().replaceAll("\\[.*?\\]", "").trim());
}
cnt++;
}
model.addAttribute("editInfo", adjstReqService.checkAdjsReqEditStatus(adjstReqVO));
model.addAttribute("master", adjMsrMaster);
}else{
@ -1710,8 +1685,7 @@ public class AdjstReqWebController {
JSONObject oj = new JSONObject();
String rpplNm = "02".equals(adjReqVO.getRpplUsrTy()) ? adjReqVO.getRpplBizNm() : adjReqVO.getRpplNm(); //이름
// String rpplNm = adjReqVO.getRpplNm(); //이름
String rpplNm = adjReqVO.getRpplNm(); //이름
String rpplPost = adjReqVO.getRpplPost(); //우편번호
String rpplPhone = stUtil.addDash(adjReqVO.getRpplPhone()); //핸드폰 번호 '-' 문자 추가해 주기
String rpplAddr = adjReqVO.getRpplAddr() + " " + adjReqVO.getRpplAddrDtl(); //주소 + 상세주소 합치기
@ -1734,7 +1708,7 @@ public class AdjstReqWebController {
String adrNo = adjReqVO.getAdrNo(); //조정사건번호
//엔터문자 변경해주기 - \n\r -> \\n\\r로 json 데이터 전달해야한다고 (오즈리포트)
String reqCn1 = adjReqVO.getReqCn1().replaceAll("\r\n", "\\\\r\\\\n"); //신청취지
String reqCn2 = adjReqVO.getReqCn2().replaceAll("\r\n", "\\\\r\\\\n"); //신청이유
String reqCn2 = adjReqVO.getReqCn2().replaceAll("\r\n", "\\\\r\\\\n"); //신청원인
// 조정신청 3step 미리보기 신청 취지/원인에 데이터가 없으면 'null data' 찍혀서 공백을 띄어쓰기 한칸으로 넣기_이준호_221226
if("".equals(reqCn1)) {
@ -1745,44 +1719,44 @@ public class AdjstReqWebController {
reqCn2 = " ";
}
System.out.println("rpplNm :"+ rpplNm);
if(StringUtil.isNotEmpty(rpplNm)) {
if(!rpplNm.equals("")) {
oj.put("rpplNm", rpplNm);
}
if(StringUtil.isNotEmpty(rpplPost)) {
if(!rpplPost.equals("")) {
oj.put("rpplPost", rpplPost);
}
if(StringUtil.isNotEmpty(rpplPhone)) {
if(!rpplPhone.equals("")) {
oj.put("rpplPhone", rpplPhone);
}
if(StringUtil.isNotEmpty(rpplAddr) && !" ".equals(rpplAddr)) {
if(!rpplAddr.equals("") && !rpplAddr.equals(" ")) {
oj.put("rpplAddr", rpplAddr);
}
if(StringUtil.isNotEmpty(rpplEmail)) {
if(!rpplEmail.equals("")) {
oj.put("rpplEmail", rpplEmail);
}
if(StringUtil.isNotEmpty(reqCn1)) {
if(!reqCn1.equals("")) {
oj.put("reqCn1", reqCn1);
}
if(StringUtil.isNotEmpty(reqCn2)) {
if(!reqCn2.equals("")) {
oj.put("reqCn2", reqCn2);
@ -1796,7 +1770,7 @@ public class AdjstReqWebController {
}
if(StringUtil.isNotEmpty(appDeDate)) {
if(!appDeDate.equals("")) {
oj.put("apprDe", appDeDate);
@ -1814,13 +1788,4 @@ public class AdjstReqWebController {
return "/web/kccadr/adjst/adjstReqRegistTutorial";
}
/**
나의 조정사건 목록 - 튜토리얼
*/
@RequestMapping("/web/kccadr/adjst/adjstProgressTutorial.do")
public String adjstProgressTutorial() throws Exception {
return "/web/kccadr/adjst/adjstProgressTutorial";
}
}

View File

@ -6,7 +6,6 @@ import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.collections.CollectionUtils;
@ -108,18 +107,13 @@ public class AdjstExpController {
* 체험하기 로그인 페이지
*/
@RequestMapping("/web/kccadr/adjstExp/SsoLoginUsr.do")
public String SsoLoginUsr(@ModelAttribute("adjstReqVO") AdjstReqVO adjstReqVO, HttpServletRequest request, ModelMap model, HttpServletResponse response) throws Exception {
public String SsoLoginUsr(@ModelAttribute("adjstReqVO") AdjstReqVO adjstReqVO, HttpServletRequest request, ModelMap model) throws Exception {
System.out.println("adjstReqVO.getStep() :: " + adjstReqVO.getStep());
model.addAttribute("loginNextUrl", adjstReqVO.getLoginNextUrl());
model.addAttribute("step", adjstReqVO.getStep());
model.addAttribute("searchStatus", adjstReqVO.getSearchStatus());
response.setHeader("Cache-Control", "no-cache");
response.setDateHeader("Expires", 0);
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Max-Age", 0);
return "/web/kccadr/adjstExp/SsoLoginUsr";
}

View File

@ -1,21 +0,0 @@
package kcc.kccadr.adrpr.service;
import java.util.List;
public interface AdrPrsctLinkService {
AdrPrsctLinkVO selectAdrPrsctLinkDetail(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception;
List<AdrPrsctLinkVO> selectAdrPrsctLinkList(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception;
Integer selectAdrPrsctLinkListCount(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception;
void adrPrsctLinkInsert(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception;
void adrPrsctLinkListInsert(List<AdrPrsctLinkVO> adrPrsctLinkList) throws Exception;
int adrPrsctLinkUpdate(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception;
int adrPrsctLinkDelete(AdrPrsctLinkVO aprvlLineMgrVO) throws Exception;
}

View File

@ -1,224 +0,0 @@
package kcc.kccadr.adrpr.service;
import kcc.com.cmm.ComDefaultVO;
public class AdrPrsctLinkVO extends ComDefaultVO{
private static final long serialVersionUID = 1L;
private String prsctSeq; // 검찰연계 일련번호
private String prsctNo; // 접수번호
private String prsctDvddDate; // 접수일자
private String rfrlOfic; // 회부청
private String prsctPb; // 담당검사
private String plntfNm; // 고소인 이름
private String plntfDeNm; // 고소인 대리인 이름
private String dfndnNm; // 피고소인 이름
private String dfndnDeNm; // 피고소인 대리인 이름
private String ccTyNm; // 저작물 유형명
private String prsctCn; // 분쟁 내용
private String memDeptNm; // 조정부
private String assDateFrst; // 1차 조정기일
private String assDateScd; // 2차 조정기일
private String assSmtmPrgrs; // 기일동시진행
private String rpplHead; // 부장
private String rpplCmtFrst; // 위원1
private String rpplCmtScd; // 위원2
private String rpplCmtChg; // 위원변경
private String prsctRslt; // 조정결과
private String prsctEndDate; // 종결일
private String prsctRsltCn; // 성립 내역
private String prsctMoney; // 합의금액()
private String rpplCmtRplc; // 위원교체
private String assCnt; // 기일수
private String plntfTerm; // 조정기간
private String frstRegisterId; // 등록자
private String frstRegistPnttm; // 등록일시
private String lastUpdusrId; // 수정자
private String lastUpdtPnttm; // 수정일시
public String getPrsctSeq() {
return prsctSeq;
}
public void setPrsctSeq(String prsctSeq) {
this.prsctSeq = prsctSeq;
}
public String getPrsctNo() {
return prsctNo;
}
public void setPrsctNo(String prsctNo) {
this.prsctNo = prsctNo;
}
public String getPrsctDvddDate() {
return prsctDvddDate;
}
public void setPrsctDvddDate(String prsctDvddDate) {
this.prsctDvddDate = prsctDvddDate;
}
public String getRfrlOfic() {
return rfrlOfic;
}
public void setRfrlOfic(String rfrlOfic) {
this.rfrlOfic = rfrlOfic;
}
public String getPrsctPb() {
return prsctPb;
}
public void setPrsctPb(String prsctPb) {
this.prsctPb = prsctPb;
}
public String getPlntfNm() {
return plntfNm;
}
public void setPlntfNm(String plntfNm) {
this.plntfNm = plntfNm;
}
public String getPlntfDeNm() {
return plntfDeNm;
}
public void setPlntfDeNm(String plntfDeNm) {
this.plntfDeNm = plntfDeNm;
}
public String getDfndnNm() {
return dfndnNm;
}
public void setDfndnNm(String dfndnNm) {
this.dfndnNm = dfndnNm;
}
public String getDfndnDeNm() {
return dfndnDeNm;
}
public void setDfndnDeNm(String dfndnDeNm) {
this.dfndnDeNm = dfndnDeNm;
}
public String getCcTyNm() {
return ccTyNm;
}
public void setCcTyNm(String ccTyNm) {
this.ccTyNm = ccTyNm;
}
public String getPrsctCn() {
return prsctCn;
}
public void setPrsctCn(String prsctCn) {
this.prsctCn = prsctCn;
}
public String getMemDeptNm() {
return memDeptNm;
}
public void setMemDeptNm(String memDeptNm) {
this.memDeptNm = memDeptNm;
}
public String getAssDateFrst() {
return assDateFrst;
}
public void setAssDateFrst(String assDateFrst) {
this.assDateFrst = assDateFrst;
}
public String getAssDateScd() {
return assDateScd;
}
public void setAssDateScd(String assDateScd) {
this.assDateScd = assDateScd;
}
public String getAssSmtmPrgrs() {
return assSmtmPrgrs;
}
public void setAssSmtmPrgrs(String assSmtmPrgrs) {
this.assSmtmPrgrs = assSmtmPrgrs;
}
public String getRpplHead() {
return rpplHead;
}
public void setRpplHead(String rpplHead) {
this.rpplHead = rpplHead;
}
public String getRpplCmtFrst() {
return rpplCmtFrst;
}
public void setRpplCmtFrst(String rpplCmtFrst) {
this.rpplCmtFrst = rpplCmtFrst;
}
public String getRpplCmtScd() {
return rpplCmtScd;
}
public void setRpplCmtScd(String rpplCmtScd) {
this.rpplCmtScd = rpplCmtScd;
}
public String getRpplCmtChg() {
return rpplCmtChg;
}
public void setRpplCmtChg(String rpplCmtChg) {
this.rpplCmtChg = rpplCmtChg;
}
public String getPrsctRslt() {
return prsctRslt;
}
public void setPrsctRslt(String prsctRslt) {
this.prsctRslt = prsctRslt;
}
public String getPrsctEndDate() {
return prsctEndDate;
}
public void setPrsctEndDate(String prsctEndDate) {
this.prsctEndDate = prsctEndDate;
}
public String getPrsctRsltCn() {
return prsctRsltCn;
}
public void setPrsctRsltCn(String prsctRsltCn) {
this.prsctRsltCn = prsctRsltCn;
}
public String getPrsctMoney() {
return prsctMoney;
}
public void setPrsctMoney(String prsctMoney) {
this.prsctMoney = prsctMoney;
}
public String getRpplCmtRplc() {
return rpplCmtRplc;
}
public void setRpplCmtRplc(String rpplCmtRplc) {
this.rpplCmtRplc = rpplCmtRplc;
}
public String getAssCnt() {
return assCnt;
}
public void setAssCnt(String assCnt) {
this.assCnt = assCnt;
}
public String getPlntfTerm() {
return plntfTerm;
}
public void setPlntfTerm(String plntfTerm) {
this.plntfTerm = plntfTerm;
}
public String getFrstRegisterId() {
return frstRegisterId;
}
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
}
public void setFrstRegistPnttm(String frstRegistPnttm) {
this.frstRegistPnttm = frstRegistPnttm;
}
public String getLastUpdusrId() {
return lastUpdusrId;
}
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
public String getLastUpdtPnttm() {
return lastUpdtPnttm;
}
public void setLastUpdtPnttm(String lastUpdtPnttm) {
this.lastUpdtPnttm = lastUpdtPnttm;
}
}

View File

@ -1,73 +0,0 @@
package kcc.kccadr.adrpr.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.kccadr.adrpr.service.AdrPrsctLinkVO;
@Repository("adrPrsctLinkDAO")
public class AdrPrsctLinkDAO extends EgovAbstractDAO {
/**
* 검찰연계 상세보기
* @param adrPrsctLinkVO
* @return
* @throws Exception
*/
public AdrPrsctLinkVO selectAdrPrsctLinkDetail(AdrPrsctLinkVO aprvlLineMgrVO) throws Exception {
return (AdrPrsctLinkVO) select("AdrPrsctLinkDAO.selectAdrPrsctLinkDetail", aprvlLineMgrVO);
}
/**
* 검찰연계 목록
* @param adrPrsctLinkVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<AdrPrsctLinkVO> selectAdrPrsctLinkList(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception {
return (List<AdrPrsctLinkVO>) list("AdrPrsctLinkDAO.selectAdrPrsctLinkList", adrPrsctLinkVO);
}
/**
* 검찰연계 목록(토털카운트)
* @param adrPrsctLinkVO
* @return
* @throws Exception
*/
public Integer selectAdrPrsctLinkListCount(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception {
return (Integer) select("AdrPrsctLinkDAO.selectAdrPrsctLinkListCount", adrPrsctLinkVO);
}
/**
* 검찰연계 등록
* @param adrPrsctLinkVO
* @throws Exception
*/
public void adrPrsctLinkInsert(AdrPrsctLinkVO aprvlLineMgrVO) throws Exception {
insert("AdrPrsctLinkDAO.adrPrsctLinkInsert", aprvlLineMgrVO);
}
/**
* 검찰연계 수정
* @param adrPrsctLinkVO
* @return
* @throws Exception
*/
public int adrPrsctLinkUpdate(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception {
return update("AdrPrsctLinkDAO.adrPrsctLinkUpdate", adrPrsctLinkVO);
}
/**
* 검찰연계 삭제
* @param adrPrsctLinkVO
* @return
* @throws Exception
*/
public int adrPrsctLinkDelete(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception {
return delete("AdrPrsctLinkDAO.adrPrsctLinkDelete", adrPrsctLinkVO);
}
}

View File

@ -1,62 +0,0 @@
package kcc.kccadr.adrpr.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.kccadr.adrpr.service.AdrPrsctLinkService;
import kcc.kccadr.adrpr.service.AdrPrsctLinkVO;
@Service("adrPrsctLinkService")
public class AdrPrsctLinkServiceImpl extends EgovAbstractServiceImpl implements AdrPrsctLinkService {
@Resource(name = "adrPrsctLinkDAO")
private AdrPrsctLinkDAO adrPrsctLinkDAO;
// PRSCT_SEQ
@Resource(name="adrPrsctLinkIdgenService")
private EgovIdGnrService adrPrsctLinkIdgenService;
public AdrPrsctLinkVO selectAdrPrsctLinkDetail(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception {
return adrPrsctLinkDAO.selectAdrPrsctLinkDetail(adrPrsctLinkVO);
}
public List<AdrPrsctLinkVO> selectAdrPrsctLinkList(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception {
return adrPrsctLinkDAO.selectAdrPrsctLinkList(adrPrsctLinkVO);
}
@Override
public Integer selectAdrPrsctLinkListCount(AdrPrsctLinkVO aprvlLineMgrVO) throws Exception {
return adrPrsctLinkDAO.selectAdrPrsctLinkListCount(aprvlLineMgrVO);
}
//저장
public void adrPrsctLinkInsert(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception {
adrPrsctLinkDAO.adrPrsctLinkInsert(adrPrsctLinkVO);
}
//엑셀업로드 멀티저장
public void adrPrsctLinkListInsert(List<AdrPrsctLinkVO> adrPrsctLinkList) throws Exception {
for(AdrPrsctLinkVO adrPrsctLinkVO : adrPrsctLinkList) {
// 인서트
String nextId = adrPrsctLinkIdgenService.getNextStringId();
adrPrsctLinkVO.setPrsctSeq(nextId);
adrPrsctLinkInsert(adrPrsctLinkVO);
}
}
//업데이트
public int adrPrsctLinkUpdate(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception{
return adrPrsctLinkDAO.adrPrsctLinkUpdate(adrPrsctLinkVO);
}
//삭제
public int adrPrsctLinkDelete(AdrPrsctLinkVO adrPrsctLinkVO) throws Exception{
return adrPrsctLinkDAO.adrPrsctLinkDelete(adrPrsctLinkVO);
}
}

View File

@ -1,625 +0,0 @@
package kcc.kccadr.adrpr.web;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.JsonResult;
import kcc.com.cmm.LoginVO;
import kcc.com.cmm.spring.data.util.ExcelUtil;
import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.kccadr.adrpr.service.AdrPrsctLinkService;
import kcc.kccadr.adrpr.service.AdrPrsctLinkVO;
@Controller
public class AdrPrsctLinkController {
//로그인 체크 util
@Resource(name = "checkLoginUtil")
private CheckLoginUtil checkLoginUtil;
// 검찰연계
@Resource(name = "adrPrsctLinkService")
private AdrPrsctLinkService adrPrsctLinkService;
// PRSCT_SEQ
@Resource(name="adrPrsctLinkIdgenService")
private EgovIdGnrService adrPrsctLinkIdgenService;
/**
* 검찰연계 목록 화면
* date : 2023.10.23
*/
@RequestMapping("/kccadr/adrpr/adrPrsctLinkList.do")
public String adrPrsctLinkList(@ModelAttribute("adrPrsctLinkVO") AdrPrsctLinkVO adrPrsctLinkVO
, ModelMap model) throws Exception {
if(adrPrsctLinkVO.getPageUnit() != 10) {
adrPrsctLinkVO.setPageUnit(adrPrsctLinkVO.getPageUnit());
}
if("".equals(adrPrsctLinkVO.getSearchSortCnd())){
adrPrsctLinkVO.setSearchSortCnd("prsctSeq");
adrPrsctLinkVO.setSearchSortOrd("desc");
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(adrPrsctLinkVO.getPageIndex());
paginationInfo.setRecordCountPerPage(adrPrsctLinkVO.getPageUnit());
paginationInfo.setPageSize(adrPrsctLinkVO.getPageSize());
adrPrsctLinkVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
adrPrsctLinkVO.setLastIndex(paginationInfo.getLastRecordIndex());
adrPrsctLinkVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
paginationInfo.setTotalRecordCount(adrPrsctLinkService.selectAdrPrsctLinkListCount(adrPrsctLinkVO));
model.addAttribute("paginationInfo", paginationInfo);
List<AdrPrsctLinkVO> list = adrPrsctLinkService.selectAdrPrsctLinkList(adrPrsctLinkVO);
model.addAttribute("list", list);
return "kccadr/adrpr/adrPrsctLinkList";
}
/**
* 조정진행목록 목록 Excel
*
* @param apmVO
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings("rawtypes")
@RequestMapping(value = "/kccadr/adrpr/adrPrsctLinkExcel.do")
public ModelAndView excel(@ModelAttribute("adrPrsctLinkVO") AdrPrsctLinkVO adrPrsctLinkVO
, ModelMap model) throws Exception {
adrPrsctLinkVO.setExcelYn("Y");
List list = adrPrsctLinkService.selectAdrPrsctLinkList(adrPrsctLinkVO);
// 세팅값
String title = "검찰연계목록리스트";
int[] width = {4000, 8000, 8000, 5000, 5000, 5000, 4000}; // 너비
String[] header = {"사건번호", "조정사건번호", "원고(대리인) 이름", "원고(대리인) 연락처", "피고(대리인) 이름", "피고(대리인) 연락처", "배당일"}; // 헤더에 들어갈 이름
String[] order = {"PrsctNo", "PrsctAdrNo", "PlntfNm", "PlntfPhone", "DfndnNm", "DfndnPhone", "DividendDate"}; // vo 내부의 필드 이름 (첫글자 대문자, 낙타체 사용)
// 호출
SXSSFWorkbook workbook = ExcelUtil.makeSimpleFruitExcelWorkbook(list, header, order, width, title);
model.addAttribute("locale", Locale.KOREA);
model.addAttribute("workbook", workbook);
model.addAttribute("workbookName", title);
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("excelDownloadView");
modelAndView.addObject(model);
return modelAndView;
}
/**
* 검찰연계 엑셀등록 화면
* date : 2023.10.23
*/
@RequestMapping(value = "/kccadr/adrpr/popup/adrPrsctLinkExcelRegistPop.do")
public String adjstReqOpenExamplePop(@ModelAttribute("adrPrsctLinkVO") AdrPrsctLinkVO adrPrsctLinkVO
, ModelMap model) throws Exception {
return "kccadr/adrpr/popup/adrPrsctLinkExcelRegistPop";
}
/**
* 검찰연계 등록 화면
* date : 2023.10.23
*/
@RequestMapping("/kccadr/adrpr/adrPrsctLinkRegist.do")
public String adrPrsctLinkRegist(@ModelAttribute("adrPrsctLinkVO") AdrPrsctLinkVO adrPrsctLinkVO
, ModelMap model) throws Exception {
return "kccadr/adrpr/adrPrsctLinkRegist";
}
// 검찰연계 저장
@RequestMapping(value="/kccadr/adrpr/adrPrsctLinkSaveAjax.do")
public ModelAndView adrPrsctLinkSaveAjax(@ModelAttribute("adrPrsctLinkVO") AdrPrsctLinkVO adrPrsctLinkVO
, HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
try {
//로그인 정보 획득 - ssoLoginVO 사용
LoginVO loginVO = checkLoginUtil.getLoginVO();
if (loginVO != null) {
adrPrsctLinkVO.setFrstRegisterId(loginVO.getUniqId());
adrPrsctLinkVO.setLastUpdusrId(loginVO.getUniqId());
// 저장
if (StringUtil.isEmpty(adrPrsctLinkVO.getPrsctSeq())) {
// 인서트
String nextId = adrPrsctLinkIdgenService.getNextStringId();
adrPrsctLinkVO.setPrsctSeq(nextId);
adrPrsctLinkService.adrPrsctLinkInsert(adrPrsctLinkVO);
}
else {
// 업데이트
adrPrsctLinkService.adrPrsctLinkUpdate(adrPrsctLinkVO);
}
}
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
return modelAndView;
}
// 검찰연계 상세정보
@RequestMapping(value="/kccadr/adrpr/adrPrsctLinkDetailAjax.do")
public ModelAndView adrPrsctLinkDetailAjax(@ModelAttribute("adrPrsctLinkVO") AdrPrsctLinkVO adrPrsctLinkVO
, HttpServletRequest request) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
boolean isSuccess = true;
String msg = "";
AdrPrsctLinkVO result = new AdrPrsctLinkVO();
try {
//로그인 정보 획득 - ssoLoginVO 사용
LoginVO loginVO = checkLoginUtil.getLoginVO();
adrPrsctLinkVO.setFrstRegisterId(loginVO.getUniqId());
adrPrsctLinkVO.setLastUpdusrId(loginVO.getUniqId());
result = adrPrsctLinkService.selectAdrPrsctLinkDetail(adrPrsctLinkVO);
}
catch(Exception e) {
isSuccess = false;
msg = e.getMessage();
}
modelAndView.addObject("isSuccess", isSuccess);
modelAndView.addObject("msg", msg);
modelAndView.addObject("result", result);
return modelAndView;
}
/**
* 문자 발송 - 엑셀파일 불러오기
* @param body
* @param uploadFile
* @param search
* @param result
* @param model
* @param request
* @return
* @throws Exception
*/
@SuppressWarnings("deprecation")
@RequestMapping(value = "/kccadr/adrpr/adrPrsctLinkSendExelAjax.do")
@ResponseBody
public Object adrPrsctLinkSendExelAjax(final MultipartHttpServletRequest multiRequest) throws Exception {
//로그인 정보 획득 - ssoLoginVO 사용
LoginVO loginVO = checkLoginUtil.getLoginVO();
JsonResult jr = new JsonResult();
jr.setSuccess(false);
jr.setMessage("엑셀 파일만 업로드할 수 있습니다.");
try {
if (loginVO != null) {
List<MultipartFile> files = (List<MultipartFile>) multiRequest.getFiles("file0");
// 파일명에 . 있을경우 오류 => Ex) 테스트6.20.xlsx
int fileNameSplitCnt = 0;
if(!files.isEmpty()) {
fileNameSplitCnt = files.get(0).getOriginalFilename().split("[.]").length;
if (files.get(0).getSize() > 0
&& (files.get(0).getContentType().indexOf("spreadsheetml") > -1)
|| files.get(0).getContentType().indexOf("ms-excel") > -1
|| files.get(0).getOriginalFilename().split("[.]")[fileNameSplitCnt-1].indexOf("xlsx") > -1
|| files.get(0).getOriginalFilename().split("[.]")[fileNameSplitCnt-1].indexOf("xls") > -1) {
// 엑셀 파일 용량 3MB이상 10만건 이상으로 서버가 다운되는 증상 발생
long fileSize = multiRequest.getFile("file0").getSize();
if(fileSize > 3374653) {
jr.setMessage("엑셀 파일은 3MB를 넘을수 없습니다.");
return jr;
}
String Ext = files.get(0).getOriginalFilename().split("[.]")[1];
String errMessage = "";
String cellValue = "";
int errItemCnt = 0;
String errItemLine = "";
List<HashMap<String, String>> hashMapList = new ArrayList<HashMap<String, String>>();
//엑셀 확장자에 따른 처리 로직 분리
if(Ext.equals("xls")) {
HSSFWorkbook workbook = new HSSFWorkbook(files.get(0).getInputStream());
HSSFSheet sheet = workbook.getSheetAt(0);
if(sheet.getLastRowNum() > 20001) { //
errMessage = "20000건 이상의 업로드는 데이터 부하로 업로드 할수 없습니다.";
jr.setSuccess(false);
jr.setMessage(errMessage);
return jr;
}
for(int i=1; i< sheet.getLastRowNum() + 2; i++){ //먼저 밸리데이션 체크(1줄은 생략)
HSSFRow row = sheet.getRow(i); //열읽기
if(null == row) {
continue;
}
HashMap<String, String> hashMap = new HashMap<>();
// 행의 두번째 (이름부터 받아오기)
HSSFCell cell = null;
boolean errSts = true;
for(int j = 0 ; j < 25; j++){ //행읽기(6행까지나 2행까지만 필요)
cellValue = "";
cell = row.getCell(j);
if(null == cell || "".equals(cell.toString().trim())) { //셀에 값이 없으면
if(j == 1) {
if (sheet.getLastRowNum() == i) {
continue;
}
break;
}
}
if(null != cell){
switch(cell.getCellType()){ //숫자타임을 문자로 변환
case Cell.CELL_TYPE_NUMERIC:
if(HSSFDateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
cellValue = new SimpleDateFormat("yyyy-MM-dd").format(date);
}else {
cell.setCellType(Cell.CELL_TYPE_STRING);
cellValue = StringUtil.getString(cell.getStringCellValue().trim()) ;
}
break;
case Cell.CELL_TYPE_FORMULA:
cell.setCellType(Cell.CELL_TYPE_STRING);
cellValue = StringUtil.getString(cell.getStringCellValue().trim()) ;
break;
default:
cellValue = StringUtil.getString(cell.getStringCellValue().trim()) ;
break;
}
/* cellValue = StringUtil.getString(cell.getStringCellValue().trim()) ; */
}
// 항목 체크 Start
if(!cellMake("prsctNo", "접수번호", i, j, 0, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctDvddDate", "접수일자", i, j, 1, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("rfrlOfic", "회부청", i, j, 2, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctPb", "담당검사", i, j, 3, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("plntfNm", "고소인 이름", i, j, 4, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("plntfDeNm", "고소인 대리인 이름", i, j, 5, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("dfndnNm", "피고소인 이름", i, j, 6, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("dfndnDeNm", "피고소인 대리인 이름", i, j, 7, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("ccTyNm", "저작물 유형명", i, j, 8, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctCn", "분쟁 내용", i, j, 9, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("memDeptNm", "조정부 명", i, j, 10, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("assDateFrst", "1차 조정기일", i, j, 11, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("assDateScd", "2차 조정기일", i, j, 12, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("assSmtmPrgrs", "기일동시진행", i, j, 13, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("rpplHead", "부장", i, j, 14, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("rpplCmtFrst", "위원1", i, j, 15, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("rpplCmtScd", "위원2", i, j, 16, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("rpplCmtChg", "위원변경", i, j, 17, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctRslt", "조정결과", i, j, 18, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctEndDate", "종결일", i, j, 19, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctRsltCn", "성립 내역", i, j, 20, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctMoney", "합의금액(원)", i, j, 21, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("rpplCmtRplc", "위원교체", i, j, 22, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("assCnt", "기일수", i, j, 23, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("plntfTerm", "조정기간", i, j, 24, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
// 항목 체크 End
}
if(errSts) {
hashMapList.add(hashMap);
}
}
//jr.setData(hashMapList);
jr.setSuccess(true);
}
else {
//확장자가 xlsx
OPCPackage opcPackage = OPCPackage.open(files.get(0).getInputStream());
XSSFWorkbook workbook = new XSSFWorkbook(opcPackage);
XSSFSheet sheet = workbook.getSheetAt(0); // 첫번째 시트 불러오기
opcPackage.close();
int totRowDataCnt = 0;
for(int r=1; r<sheet.getPhysicalNumberOfRows(); r++) {
XSSFRow tmpRow = sheet.getRow(r);
XSSFCell cell = null;
if(tmpRow.getCell(1) != null) {
cell = tmpRow.getCell(1); //이름/핸드폰/변환1/변환2/변환3/변환4/변환5
if(cell != null && !cell.toString().trim().equals("")) {
totRowDataCnt++;
}
}
}
if(totRowDataCnt > 20001) {
errMessage = "20000건 이상의 업로드는 데이터 부하로 업로드 할수 없습니다.";
jr.setSuccess(false);
jr.setMessage(errMessage);
return jr;
}
for(int i=1; i< sheet.getLastRowNum() + 2; i++){ //먼저 밸리데이션 체크(1줄은 생략)
XSSFRow row = sheet.getRow(i); //열읽기
if(null == row) {
continue;
}
HashMap<String, String> hashMap = new HashMap<>();
// 행의 두번째 (이름부터 받아오기)
XSSFCell cell = null;
boolean errSts = true;
for(int j = 0 ; j < 25; j++){ //행읽기(6행까지나 2행까지만 필요)
cellValue = "";
cell = row.getCell(j); //이름/핸드폰/변환1/변환2/변환3/변환4/변환5
if(null == cell || "".equals(cell.toString().trim())) { //셀에 값이 없으면
if(j == 1) {
if (sheet.getLastRowNum() == i) {
continue;
}
break;
}
}
if(null != cell){
switch(cell.getCellType()){ //숫자타임을 문자로 변환
case Cell.CELL_TYPE_NUMERIC:
if(HSSFDateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
cellValue = new SimpleDateFormat("yyyy-MM-dd").format(date);
}else {
cell.setCellType(Cell.CELL_TYPE_STRING);
cellValue = StringUtil.getString(cell.getStringCellValue().trim()) ;
}
break;
case Cell.CELL_TYPE_FORMULA:
cell.setCellType(Cell.CELL_TYPE_STRING);
cellValue = StringUtil.getString(cell.getStringCellValue().trim()) ;
break;
default:
cellValue = StringUtil.getString(cell.getStringCellValue().trim()) ;
break;
}
/* cellValue = StringUtil.getString(cell.getStringCellValue().trim()) ; */
}
// 항목 체크 Start
if(!cellMake("prsctNo", "접수번호", i, j, 0, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctDvddDate", "접수일자", i, j, 1, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("rfrlOfic", "회부청", i, j, 2, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctPb", "담당검사", i, j, 3, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("plntfNm", "고소인 이름", i, j, 4, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("plntfDeNm", "고소인 대리인 이름", i, j, 5, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("dfndnNm", "피고소인 이름", i, j, 6, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("dfndnDeNm", "피고소인 대리인 이름", i, j, 7, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("ccTyNm", "저작물 유형명", i, j, 8, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctCn", "분쟁 내용", i, j, 9, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("memDeptNm", "조정부 명", i, j, 10, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("assDateFrst", "1차 조정기일", i, j, 11, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("assDateScd", "2차 조정기일", i, j, 12, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("assSmtmPrgrs", "기일동시진행", i, j, 13, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("rpplHead", "부장", i, j, 14, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("rpplCmtFrst", "위원1", i, j, 15, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("rpplCmtScd", "위원2", i, j, 16, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("rpplCmtChg", "위원변경", i, j, 17, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctRslt", "조정결과", i, j, 18, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctEndDate", "종결일", i, j, 19, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctRsltCn", "성립 내역", i, j, 20, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("prsctMoney", "합의금액(원)", i, j, 21, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("rpplCmtRplc", "위원교체", i, j, 22, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("assCnt", "기일수", i, j, 23, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
if(!cellMake("plntfTerm", "조정기간", i, j, 24, cellValue, errSts, hashMap, errItemCnt, errItemLine)) break;
// 항목 체크 End
}
if(errSts) {
hashMapList.add(hashMap);
}
}
//jr.setData(hashMapList);
jr.setSuccess(true);
} //xlsx 처리
// 데이터 저장 START
if(errItemCnt > 0) {
jr.setMessage("유효하지 않은 형식의 데이터가 " + errItemCnt +"건입니다.\n" + errItemLine.trim());
}else {
jr.setMessage("");
//Step1. 데이터 변환
List<AdrPrsctLinkVO> adrPrsctLinkList = new ArrayList<AdrPrsctLinkVO>();
// List foreach
for (HashMap<String, String> item : hashMapList) {
AdrPrsctLinkVO adrPrsctLinkVO = new AdrPrsctLinkVO();
adrPrsctLinkVO.setPrsctNo(item.get("prsctNo"));
adrPrsctLinkVO.setPrsctDvddDate(item.get("prsctDvddDate"));
adrPrsctLinkVO.setRfrlOfic(item.get("rfrlOfic"));
adrPrsctLinkVO.setPrsctPb(item.get("prsctPb"));
adrPrsctLinkVO.setPlntfNm(item.get("plntfNm"));
adrPrsctLinkVO.setPlntfDeNm(item.get("plntfDeNm"));
adrPrsctLinkVO.setDfndnNm(item.get("dfndnNm"));
adrPrsctLinkVO.setDfndnDeNm(item.get("dfndnDeNm"));
adrPrsctLinkVO.setCcTyNm(item.get("ccTyNm"));
adrPrsctLinkVO.setPrsctCn(item.get("prsctCn"));
adrPrsctLinkVO.setMemDeptNm(item.get("memDeptNm"));
adrPrsctLinkVO.setAssDateFrst(item.get("assDateFrst"));
adrPrsctLinkVO.setAssDateScd(item.get("assDateScd"));
adrPrsctLinkVO.setAssSmtmPrgrs(item.get("assSmtmPrgrs"));
adrPrsctLinkVO.setRpplHead(item.get("rpplHead"));
adrPrsctLinkVO.setRpplCmtFrst(item.get("rpplCmtFrst"));
adrPrsctLinkVO.setRpplCmtScd(item.get("rpplCmtScd"));
adrPrsctLinkVO.setRpplCmtChg(item.get("rpplCmtChg"));
adrPrsctLinkVO.setPrsctRslt(item.get("prsctRslt"));
adrPrsctLinkVO.setPrsctEndDate(item.get("prsctEndDate"));
adrPrsctLinkVO.setPrsctRsltCn(item.get("prsctRsltCn"));
adrPrsctLinkVO.setPrsctMoney(item.get("prsctMoney"));
adrPrsctLinkVO.setRpplCmtRplc(item.get("rpplCmtRplc"));
adrPrsctLinkVO.setAssCnt(item.get("assCnt"));
adrPrsctLinkVO.setPlntfTerm(item.get("plntfTerm"));
//List Add
adrPrsctLinkList.add(adrPrsctLinkVO);
}
adrPrsctLinkList.stream().sorted(Comparator.comparing(AdrPrsctLinkVO::getPrsctNo));
//Step2. 데이터 저장
adrPrsctLinkService.adrPrsctLinkListInsert(adrPrsctLinkList);
}
// 데이터 저장 END
}
}
}
else {
jr.setSuccess(false);
jr.setMessage("로그인후 이용해주세요.");
}
return jr;
} catch (Exception e) {
// TODO: handle exception
System.out.println("+++++++++++++++++ adrPrsctLinkSendExelAjax Controller Error !!! " + e.getMessage());
jr.setSuccess(false);
jr.setMessage("엑셀 데이터에 오류가 있습니다. 엑셀 데이터를 확인해 주세요.");
return jr;
}
}
// 엑셀 항목 체크
public boolean getItemChk(String type, String value) {
boolean rtnVal = true;
String dateRegExp = "^(19|20)[\\d]{2}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$";
String phoneRegExp = "^(050[234567]{1}|01[016789]{1})-[0-9]{3,4}-[0-9]{4}$";
try {
if(type.equals("dividendDate")) {
//배당일
if(!value.matches(dateRegExp)) {
rtnVal = false;
}
}
else if(type.equals("plntfPhone")) {
//원고 연락처
if(!value.matches(phoneRegExp)) {
rtnVal = false;
}
}
else if(type.equals("dfndnPhone")) {
//피고 연락처
if(!value.matches(phoneRegExp)) {
rtnVal = false;
}
}
}
catch(Exception e) {
rtnVal = false;
System.out.println("엑셀 항목 체크");
System.out.println("type : " + type);
System.out.println("value : " + value);
System.out.println("getItemChk : " + e.getMessage());
}
return rtnVal;
}
private Boolean cellMake(
String info
, String itemNm
, int i
, int j
, int cnt
, String cellValue
, boolean errSts
, HashMap<String, String> hashMap
, int errItemCnt
, String errItemLine
) {
Boolean result = true;
if(j == cnt) {
if(getItemChk(info, cellValue) && errSts) {
hashMap.put(info, cellValue);
}else {
errItemCnt++;
errItemLine += (i+1) + "행("+itemNm+") ";
errSts = false;
// break;
result = false;
}
}
return result;
}
}

View File

@ -40,11 +40,4 @@ public interface AdrRecordReadingService {
// 결제완료 처리
int updatePrcsnStatCd(PayVO payVO) throws Exception;
AdrRecordReadingVO selectStatCdAndStatTxt(AdrRecordReadingVO adrRecordReadingVO);
void updateExpense(AdrRecordReadingVO adrRecordReadingVO);
void insertRecordReadingHist(AdrRecordReadingVO adrRecordReadingVO);
}

View File

@ -1,7 +1,6 @@
package kcc.kccadr.advcRecord.service;
import java.io.Serializable;
import java.util.List;
import kcc.com.cmm.ComDefaultVO;
@ -27,13 +26,6 @@ public class AdrRecordReadingVO extends ComDefaultVO implements Serializable {
private String recordReadingHstrySeq; //기록열람이력 일련번호
private String cn; //내용-승인번호, 결재 정보 등등
private String phone;
private String post;
private String addr;
private String addrDtl;
private String searchFrstRegisterId;
private String searchDocReqCd;
@ -42,34 +34,6 @@ public class AdrRecordReadingVO extends ComDefaultVO implements Serializable {
private String adrNo;
private String appliCantNm;
private String reqDate;
private String reqHours;
private String reqMinutes;
private String reqDetails;
private String payEndDay; // 결제 날짜
private String statCd; //
private String statTxt; //
private String mberNm; //
private String expense; // 검색조건 발급종류
private List<String> readList; // 검색조건 발급종류
private List<String> ckStsList; // 검색조건 발급상태
private String whereRead; // 검색조건 발급종류
private String readListAll; // 검색조건 발급종류
private String whereCkSts; // 검색조건 발급상태
private String ckStsListAll; // 검색조건 발급상태
private String searchRecordReadingFlag;
public String getRecordReadingSeq() {
@ -156,30 +120,6 @@ public class AdrRecordReadingVO extends ComDefaultVO implements Serializable {
public void setCn(String cn) {
this.cn = cn;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getPost() {
return post;
}
public void setPost(String post) {
this.post = post;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
public String getAddrDtl() {
return addrDtl;
}
public void setAddrDtl(String addrDtl) {
this.addrDtl = addrDtl;
}
public String getSearchFrstRegisterId() {
return searchFrstRegisterId;
}
@ -216,103 +156,4 @@ public class AdrRecordReadingVO extends ComDefaultVO implements Serializable {
public void setRecordReadingFlag(String recordReadingFlag) {
this.recordReadingFlag = recordReadingFlag;
}
public String getReqDate() {
return reqDate;
}
public void setReqDate(String reqDate) {
this.reqDate = reqDate;
}
public String getReqHours() {
return reqHours;
}
public void setReqHours(String reqHours) {
this.reqHours = reqHours;
}
public String getReqMinutes() {
return reqMinutes;
}
public void setReqMinutes(String reqMinutes) {
this.reqMinutes = reqMinutes;
}
public String getReqDetails() {
return reqDetails;
}
public void setReqDetails(String reqDetails) {
this.reqDetails = reqDetails;
}
public String getPayEndDay() {
return payEndDay;
}
public void setPayEndDay(String payEndDay) {
this.payEndDay = payEndDay;
}
public String getStatCd() {
return statCd;
}
public void setStatCd(String statCd) {
this.statCd = statCd;
}
public String getStatTxt() {
return statTxt;
}
public void setStatTxt(String statTxt) {
this.statTxt = statTxt;
}
public String getMberNm() {
return mberNm;
}
public void setMberNm(String mberNm) {
this.mberNm = mberNm;
}
public String getExpense() {
return expense;
}
public void setExpense(String expense) {
this.expense = expense;
}
public List<String> getReadList() {
return readList;
}
public void setReadList(List<String> readList) {
this.readList = readList;
}
public List<String> getCkStsList() {
return ckStsList;
}
public void setCkStsList(List<String> ckStsList) {
this.ckStsList = ckStsList;
}
public String getWhereRead() {
return whereRead;
}
public void setWhereRead(String whereRead) {
this.whereRead = whereRead;
}
public String getWhereCkSts() {
return whereCkSts;
}
public void setWhereCkSts(String whereCkSts) {
this.whereCkSts = whereCkSts;
}
public String getReadListAll() {
return readListAll;
}
public void setReadListAll(String readListAll) {
this.readListAll = readListAll;
}
public String getCkStsListAll() {
return ckStsListAll;
}
public void setCkStsListAll(String ckStsListAll) {
this.ckStsListAll = ckStsListAll;
}
public String getSearchRecordReadingFlag() {
return searchRecordReadingFlag;
}
public void setSearchRecordReadingFlag(String searchRecordReadingFlag) {
this.searchRecordReadingFlag = searchRecordReadingFlag;
}
}

View File

@ -192,17 +192,4 @@ public class AdrRecordReadingDAO extends EgovAbstractDAO {
return update("adrRecordReadingDAO.updatePrcsnStatCd", payVO);
}
public AdrRecordReadingVO selectStatCdAndStatTxt(AdrRecordReadingVO adrRecordReadingVO) {
return (AdrRecordReadingVO) select("AdrRecordReadingDAO.selectStatCdAndStatTxt", adrRecordReadingVO);
}
public void updateExpense(AdrRecordReadingVO adrRecordReadingVO) {
update("AdrRecordReadingDAO.updateExpense", adrRecordReadingVO);
}
public void insertRecordReadingHist(AdrRecordReadingVO adrRecordReadingVO) {
insert("AdrRecordReadingHstryDAO.insert", adrRecordReadingVO);
}
}

View File

@ -24,8 +24,23 @@ public class AdrRecordReadingServiceImpl implements AdrRecordReadingService {
@Resource(name="recordReadingGnrService")
private EgovIdGnrService idgenService;
@Resource(name="recordReadingHstryGnrService")
private EgovIdGnrService recordReadingHstryGnrService;
//이력 상세
//@Resource(name="adrRecordReadingDetailDAO")
//private adrRecordReadingDetailDAO adrRecordReadingDetailDAO;
//이력 상세
//@Resource(name="KccadrMgrUdtService")
//private KccadrMgrUdtService kccadrMgrUdtService;
/*
String insert4Func(
String p_adrSeq
, String p_menuNm
, String p_menuId
, String p_frstRegisterId
) throws Exception;
*/
//C
public String insert4Func(
@ -96,22 +111,8 @@ public class AdrRecordReadingServiceImpl implements AdrRecordReadingService {
String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getUniqId());
payVO.setLastUpdusrId(userId);
return adrRecordReadingDAO.updatePrcsnStatCd(payVO);
}
@Override
public AdrRecordReadingVO selectStatCdAndStatTxt(AdrRecordReadingVO adrRecordReadingVO) {
return adrRecordReadingDAO.selectStatCdAndStatTxt(adrRecordReadingVO);
}
@Override
public void updateExpense(AdrRecordReadingVO adrRecordReadingVO) {
adrRecordReadingDAO.updateExpense(adrRecordReadingVO);
}
@Override
public void insertRecordReadingHist(AdrRecordReadingVO adrRecordReadingVO) {
adrRecordReadingDAO.insertRecordReadingHist(adrRecordReadingVO);
}
}

View File

@ -129,6 +129,28 @@ public class AprvlMgrServiceImpl extends EgovAbstractServiceImpl implements Apr
, adrSbmtLineMgrUsrVO.getSbmtId1()
);
/*
_insertAdrSbmtMgrHstry
adrSbmtLineMgrUsrVO.setAdrSeq(aprvlMgrVO.getAdrSeq());
adrSbmtLineMgrUsrVO.setAdrSn(aprvlMgrVO.getAdrSn());
adrSbmtLineMgrUsrVO.setSbmtSeq(aprvlMgrVO.getSbmtSeq());
adrSbmtLineMgrUsrVO.setSbmtSbsttSeq(sbmtSbsttSeq);
adrSbmtLineMgrUsrVO.setAgntSbmtId("ID1");
adrSbmtLineMgrUsrVO.setSbmtIdSbstt(adrSbmtLineMgrUsrVO.getSbsttSbmtId1());
adrSbmtLineMgrUsrVO.setSbmtIdBef(adrSbmtLineMgrUsrVO.getSbmtId1());
adrSbmtLineMgrUsrVO.setFrstRegisterId(aprvlMgrVO.getFrstRegisterId());
//저장
adrSbmtMgrHstryService.insert(adrSbmtLineMgrUsrVO
, "관리자>>결재선>대결등록" //String p_code_desc - CC199
, "A002" //String p_stat_cd
, ""
);
//AdrSbmtLineMgrUsrVO
*/
}else if (adrSbmtLineMgrUsrVO.getSbmtId1()!=null && !"".equals(adrSbmtLineMgrUsrVO.getSbmtId1())) { aprvlMgrVOtmp.setSbmtId1(adrSbmtLineMgrUsrVO.getSbmtId1());
}
}

View File

@ -307,9 +307,6 @@ public class KccadrConstants {
public static final String ADR_RPPL_USR_TY2 = "02"; // 법인
public static final String ADR_RPPL_USR_TY3 = "03"; // 개인사업자
public static final String ADR_RPPL_USR_DIV_01 = "01"; // 한국인
public static final String ADR_RPPL_USR_DIV_02 = "02"; // 외국인
//ADR_RCD_RDNG : 조정사건기록열람
//신청인구분
public static final String ADR_RCD_RDNG_REQ_TY_01 = "01"; // 신청자
@ -321,13 +318,9 @@ public class KccadrConstants {
public static final String ADR_RCD_RDNG_DOCU_TY_10 = "10"; // 기일조서
public static final String ADR_RCD_RDNG_DOCU_TY_20 = "20"; // 조정조서
//처리상태
public static final String ADR_RCD_RDNG_PRCSN_STAT_CD_10 = "10"; // 신청
public static final String ADR_RCD_RDNG_PRCSN_STAT_CD_20 = "20"; // 비용납부
public static final String ADR_RCD_RDNG_PRCSN_STAT_CD_30 = "30"; // 승인
public static final String ADR_RCD_RDNG_PRCSN_STAT_CD_40 = "40"; // 반려
public static final String ADR_RCD_RDNG_PRCSN_STAT_CD_50 = "50"; // 발급완료
public static final String ADR_RCD_RDNG_PRCSN_STAT_CD_90 = "90"; // 취소
public static final String ADR_RCD_RDNG_PRCSN_STAT_CD_10 = "10"; // 신청완료
public static final String ADR_RCD_RDNG_PRCSN_STAT_CD_20 = "20"; // 결제완료
public static final String ADR_RCD_RDNG_PRCSN_STAT_CD_30 = "30"; // 출력완료
public static final String ADR_RCD_RDNG_PRCSN_STAT_CD_90 = "90"; // 삭제
}

View File

@ -1,25 +0,0 @@
package kcc.kccadr.cmm;
public class KccadrCourtConstants {
//법원연계 진행 상태
public static final String CRT_REG = "101000"; // 사건접수
public static final String CRT_APRVL = "101010"; // 결재요청
public static final String CRT_APRVL_OK = "101050"; // 결재승인
public static final String CRT_APRVL_END_REQ = "201010"; // 종결결재요청
public static final String CRT_APRVL_END = "300000"; // 사건종결
//법원연계 사건문서 종류
public static final String CRT_FILE_RETURN = "10"; // 회부문건
public static final String CRT_FILE_ADD = "20"; // 추가문건
public static final String CRT_FILE_APP = "30"; // 기일문건
public static final String CRT_FILE_ACTION = "40"; // 사무수행보고서
//법원연계 조정위원 OfcpsNm
public static final String CRT_DEPT_GENERAL = "90";
public static final String CRT_DEPT_ORDINARY = "80";
}

View File

@ -6,7 +6,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import javax.annotation.Resource;

View File

@ -65,14 +65,4 @@ public class SMSOracleDAO extends EgovAbstractDAO {
insert("SMSOracleDAO.insertMmsCustomSend", adjReqMgrVO);
}
// MMS 작성 메세지 전송 등록
public void insertMmsSendMgr(AdjReqMgrVO adjReqMgrVO) throws Exception{
insert("SMSOracleDAO.insertMmsSendMgr", adjReqMgrVO);
}
// SMS 작성 메세지 전송 등록
public void insertSmsSendMgr(AdjReqMgrVO adjReqMgrVO) throws Exception{
insert("SMSOracleDAO.insertSmsSendMgr", adjReqMgrVO);
}
}

View File

@ -62,10 +62,6 @@ public class SMSOracleServiceImpl extends EgovAbstractServiceImpl implements SM
@Value("#{globalSettings['Globals.SMSDB.TrId']}")
private String trId; // 시스템 구분자
@Value("#{globalSettings['Globals.prod.islocal']}")
private String islocal; // 시스템 구분자
// SMS전송(SMS전송서버-오라클DB)
@Resource(name = "SMSOracleDAO")
private SMSOracleDAO sMSOracleDAO;
@ -707,14 +703,10 @@ public class SMSOracleServiceImpl extends EgovAbstractServiceImpl implements SM
int bytes = adjReqMgrVO.getSendMsg().getBytes("euc-kr").length; // 발송메시지 바이트수
if (bytes > 90) {
if(!islocal.equals("local")) {
sMSOracleDAO.insertMmsCustomSend(adjReqMgrVO); // SMS 등록 장문 > SMS DB(오라클)
}
sMSOracleDAO.insertMmsCustomSend(adjReqMgrVO); // SMS 등록 장문 > SMS DB(오라클)
adjReqMgrDAO.insertAdrMmsCustomSend(adjReqMgrVO); // SMS 이력 등록 장문 > 전자조정
} else {
if(!islocal.equals("local")) {
sMSOracleDAO.insertSmsCustomSend(adjReqMgrVO); // SMS 등록 단문 > SMS DB(오라클)
}
sMSOracleDAO.insertSmsCustomSend(adjReqMgrVO); // SMS 등록 단문 > SMS DB(오라클)
adjReqMgrDAO.insertAdrSmsCustomSend(adjReqMgrVO); // SMS 이력 등록 단문 > 전자조정
}
//sms 발송 관리 테이블에 저장

View File

@ -1,19 +0,0 @@
package kcc.kccadr.glossary.service;
import java.util.List;
public interface GlossaryService {
public int insertGlossary(GlossaryVO glossaryVO) throws Exception;
public List<GlossaryVO> selectGlossaryList(GlossaryVO glossaryVO) throws Exception;
public GlossaryVO selectGlossaryDetail(GlossaryVO glossaryVO) throws Exception;
public void updateGlossaryModify(GlossaryVO glossaryVO) throws Exception;
public void deleteGlossary(GlossaryVO glossaryVO) throws Exception;
public List<GlossaryVO> selectGlossaryListForWeb(GlossaryVO glossaryVO) throws Exception;
}

View File

@ -1,85 +0,0 @@
package kcc.kccadr.glossary.service;
import java.io.Serializable;
import kcc.com.cmm.ComDefaultVO;
public class GlossaryVO extends ComDefaultVO implements Serializable{
private static final long serialVersionUID = 1L;
private String glssrSeq;
private String glssrSubject;
private String glssrCn;
private String frstRegisterId;
private String frstRegistPnttm;
private String lastUpdusrId;
private String lastUpdtPnttm;
private String useYn;
private int cnt;
private String searchKeywordSearch;
public String getGlssrSeq() {
return glssrSeq;
}
public void setGlssrSeq(String glssrSeq) {
this.glssrSeq = glssrSeq;
}
public String getGlssrSubject() {
return glssrSubject;
}
public void setGlssrSubject(String glssrSubject) {
this.glssrSubject = glssrSubject;
}
public String getGlssrCn() {
return glssrCn;
}
public void setGlssrCn(String glssrCn) {
this.glssrCn = glssrCn;
}
public String getFrstRegisterId() {
return frstRegisterId;
}
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
}
public void setFrstRegistPnttm(String frstRegistPnttm) {
this.frstRegistPnttm = frstRegistPnttm;
}
public String getLastUpdusrId() {
return lastUpdusrId;
}
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
public String getLastUpdtPnttm() {
return lastUpdtPnttm;
}
public void setLastUpdtPnttm(String lastUpdtPnttm) {
this.lastUpdtPnttm = lastUpdtPnttm;
}
public String getUseYn() {
return useYn;
}
public void setUseYn(String useYn) {
this.useYn = useYn;
}
public int getCnt() {
return cnt;
}
public void setCnt(int cnt) {
this.cnt = cnt;
}
public String getSearchKeywordSearch() {
return searchKeywordSearch;
}
public void setSearchKeywordSearch(String searchKeywordSearch) {
this.searchKeywordSearch = searchKeywordSearch;
}
}

View File

@ -1,45 +0,0 @@
package kcc.kccadr.glossary.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
import kcc.kccadr.glossary.service.GlossaryVO;
import kcc.kccadr.textsense.service.TextSenseVO;
@Repository("GlossaryDAO")
public class GlossaryDAO extends EgovAbstractDAO{
public int insertGlossary(GlossaryVO glossaryVO) throws Exception {
return (int) update("glossaryDAO.insertGlossary", glossaryVO);
}
@SuppressWarnings("unchecked")
public List<GlossaryVO> selectGlossaryList(GlossaryVO glossaryVO) throws Exception {
return (List<GlossaryVO>) list("glossaryDAO.selectGlossaryList", glossaryVO);
}
public GlossaryVO selectGlossaryDetail(GlossaryVO glossaryVO) throws Exception {
return (GlossaryVO) select("glossaryDAO.selectGlossaryDetail", glossaryVO);
}
public void updateGlossaryModify(GlossaryVO glossaryVO) throws Exception {
update("glossaryDAO.updateGlossaryModify", glossaryVO);
}
public void deleteGlossary(GlossaryVO glossaryVO) throws Exception {
update("glossaryDAO.deleteGlossary", glossaryVO);
}
@SuppressWarnings("unchecked")
public List<GlossaryVO> selectGlossaryListForWeb(GlossaryVO glossaryVO) throws Exception {
return (List<GlossaryVO>) list("glossaryDAO.selectGlossaryListForWeb", glossaryVO);
}
}

View File

@ -1,58 +0,0 @@
package kcc.kccadr.glossary.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import kcc.kccadr.glossary.service.GlossaryService;
import kcc.kccadr.glossary.service.GlossaryVO;
@Service("GlossaryService")
public class GlossaryServiceImpl implements GlossaryService{
/** ID Generation */
@Resource(name="glssrIdgenService")
private EgovIdGnrService glssrIdgenService;
@Resource(name = "GlossaryDAO")
private GlossaryDAO glossaryDAO;
@Override
public int insertGlossary(GlossaryVO glossaryVO) throws Exception {
glossaryVO.setGlssrSeq(glssrIdgenService.getNextStringId());
return glossaryDAO.insertGlossary(glossaryVO);
}
@Override
public List<GlossaryVO> selectGlossaryList(GlossaryVO glossaryVO) throws Exception {
return glossaryDAO.selectGlossaryList(glossaryVO);
}
@Override
public GlossaryVO selectGlossaryDetail(GlossaryVO glossaryVO) throws Exception {
return glossaryDAO.selectGlossaryDetail(glossaryVO);
}
@Override
public void updateGlossaryModify(GlossaryVO glossaryVO) throws Exception {
glossaryDAO.updateGlossaryModify(glossaryVO);
}
@Override
public void deleteGlossary(GlossaryVO glossaryVO) throws Exception {
glossaryDAO.deleteGlossary(glossaryVO);
}
@Override
public List<GlossaryVO> selectGlossaryListForWeb(GlossaryVO glossaryVO) throws Exception {
return glossaryDAO.selectGlossaryListForWeb(glossaryVO);
}
}

View File

@ -1,659 +0,0 @@
package kcc.kccadr.glossary.web;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import egovframework.rte.fdl.security.userdetails.util.EgovUserDetailsHelper;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kcc.com.cmm.LoginVO;
import kcc.kccadr.glossary.service.GlossaryService;
import kcc.kccadr.glossary.service.GlossaryVO;
import kcc.let.uss.ion.sat.service.EgovSatManageService;
@Controller
public class GlossaryController {
@Resource(name = "GlossaryService")
private GlossaryService glossaryService;
@Resource(name = "egovSatManageService")
private EgovSatManageService egovSatManageService;
/**
* @methodName : selectTextSenseList
* @author : JunHo Lee
* @date : 2023.11.03
* @description : 용어해설 목록
* @param glossaryVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping(value="/kccadr/glossary/glossaryList.do")
public String glossaryList(@ModelAttribute("searchVO") GlossaryVO glossaryVO, ModelMap model) throws Exception{
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if(user == null) {
return "redirect:/uat/uia/EgovLoginUsr.do";
}
if(glossaryVO.getPageUnit() != 10) {
glossaryVO.setPageUnit(glossaryVO.getPageUnit());
}
if("".equals(glossaryVO.getSearchSortCnd())){
glossaryVO.setSearchSortCnd("frstRegistPnttm");
glossaryVO.setSearchSortOrd("desc");
}
/** paging */
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(glossaryVO.getPageIndex());
paginationInfo.setRecordCountPerPage(glossaryVO.getPageUnit());
paginationInfo.setPageSize(glossaryVO.getPageSize());
glossaryVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
glossaryVO.setLastIndex(paginationInfo.getLastRecordIndex());
glossaryVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
glossaryVO.setFrstRegisterId(user.getUniqId());
model.addAttribute("paginationInfo", paginationInfo);
List<GlossaryVO> list = glossaryService.selectGlossaryList(glossaryVO);
if(list.size() > 0) {
paginationInfo.setTotalRecordCount(list.get(0).getCnt());
}
model.addAttribute("list", list);
try {
// System.out.println(egovSatManageService.selectQuickGlossaryYn());
} catch (Exception e) {
System.out.println(e.getMessage());
}
return "kccadr/glossary/glossaryList";
}
@RequestMapping(value="/kccadr/glossary/glossaryRegist.do")
public String glossaryRegist(@ModelAttribute("searchVO") GlossaryVO glossaryVO, ModelMap model) throws Exception{
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if(user == null) {
return "redirect:/uat/uia/EgovLoginUsr.do";
}
return "kccadr/glossary/glossaryRegist";
}
@SuppressWarnings("unused")
@RequestMapping(value="/kccadr/glossary/glossaryRegistAjax.do")
public ModelAndView glossaryRegistAjax(GlossaryVO glossaryVO) throws Exception{
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
glossaryVO.setFrstRegisterId(user.getUniqId());
if(user == null) {
modelAndView.addObject("result", "FAIL");
modelAndView.addObject("message", "다시 로그인 해주세요.");
return modelAndView;
}
try {
glossaryService.insertGlossary(glossaryVO);
modelAndView.addObject("result", "SUCCESS");
modelAndView.addObject("message", "저장되었습니다.");
} catch (Exception e) {
modelAndView.addObject("result", "FAIL");
modelAndView.addObject("message", "저장에 실패했습니다.");
}
return modelAndView;
}
@RequestMapping(value="/kccadr/glossary/gossaryDetail.do")
public String gossaryDetail(@ModelAttribute("searchVO") GlossaryVO glossaryVO, ModelMap model) throws Exception{
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if(user == null) {
return "redirect:/uat/uia/EgovLoginUsr.do";
}
GlossaryVO detailVO = glossaryService.selectGlossaryDetail(glossaryVO);
model.addAttribute("glossaryVO", detailVO);
if("N".equals(detailVO.getUseYn())) {
return "redirect:/kccadr/glossary/glossaryList.do";
}
return "kccadr/glossary/glossaryDetail";
}
@SuppressWarnings("unused")
@RequestMapping(value="/kccadr/glossary/glossaryModifyAjax.do")
public ModelAndView glossaryModifyAjax(GlossaryVO glossaryVO) throws Exception{
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
glossaryVO.setLastUpdusrId(user.getUniqId());
if(user == null) {
modelAndView.addObject("result", "FAIL");
modelAndView.addObject("message", "다시 로그인 해주세요.");
return modelAndView;
}
try {
glossaryService.updateGlossaryModify(glossaryVO);
modelAndView.addObject("result", "SUCCESS");
modelAndView.addObject("message", "저장되었습니다.");
} catch (Exception e) {
modelAndView.addObject("result", "FAIL");
modelAndView.addObject("message", "저장에 실패했습니다.");
}
return modelAndView;
}
@SuppressWarnings("unused")
@RequestMapping(value="/kccadr/glossary/glossaryDeleteAjax.do")
public ModelAndView glossaryDeleteAjax(GlossaryVO glossaryVO) throws Exception{
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
glossaryVO.setLastUpdusrId(user.getUniqId());
if(user == null) {
modelAndView.addObject("result", "FAIL");
modelAndView.addObject("message", "다시 로그인 해주세요.");
return modelAndView;
}
try {
glossaryService.deleteGlossary(glossaryVO);
modelAndView.addObject("result", "SUCCESS");
modelAndView.addObject("message", "저장되었습니다.");
} catch (Exception e) {
modelAndView.addObject("result", "FAIL");
modelAndView.addObject("message", "저장에 실패했습니다.");
}
return modelAndView;
}
// @SuppressWarnings("unused")
// @RequestMapping(value="/kccadr/glossary/glossaryUploadAjax.do")
// public ModelAndView glossaryUploadAjax() throws Exception{
//
// ModelAndView modelAndView = new ModelAndView();
// modelAndView.setViewName("jsonView");
//
// LoginVO user = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
//
// String frstRegisterId = user.getUniqId();
//
// if(user == null) {
// modelAndView.addObject("result", "FAIL");
// modelAndView.addObject("message", "다시 로그인 해주세요.");
// return modelAndView;
//
// }
// try {
// insertDB(frstRegisterId, glossaryService,"가상 제작(Virtual Manufacturing)","컴퓨터에 가상의 생산 시스템을 구축하고 생산 시뮬레이션에 의해 생산량, 납기 및 설비가동 상황 등을 평가하는 것을 말한다.\r\n\r\n유연 생산 체계(FMS)등과 같이 생산 관리가 어려운 시스템을 평가하는데 특히 효율적이다. 생산 라인에 있는 로봇 배치 설계나 제어 계통 설계를 시뮬레이션으로 평가・설계하는 로봇 시뮬레이터의 생산 라인에 배치하여 생산 라인에 대한 부품공급 등을 시뮬레이션 할 수 있는 라인 시뮬레이터 등 제품이 판매되고 있다.");
// insertDB(frstRegisterId, glossaryService,"가상현실 / VR (Virtual Reality)","인간의 상상에 따른 공간과 사물을 컴퓨터에서 가상으로 만들어 시각, 청각, 촉각을 비롯한 인간 오감을 활용한 작용으로 현실 세계에서는 직접 경험하지 못하는 상황을 간접으로 체험할 수 있도록 하는 기술을 말한다.\r\n\r\n가상 현실은 사용자에게 참여, 경험, 몰입을 통하여 소통하게하며 현실 세계에서 경험하기 힘든 여러 상황들을 실제와 같이 경험할 수 있다는 장점 때문에 엔터테인먼트, 게임, 교육, 국방, 의료 분야에서 사용될 수 있다. 가상현실 콘텐츠에 대한 저작권 보호가 주목을 받고 있다.");
// insertDB(frstRegisterId, glossaryService,"가상현실(VR) 콘텐츠 (Virtual Reality Content)","정보통신산업계의 커다란 주목을 받고 있는 가상현실(VR)은 헤드 마운트 디스플레이(HMD)를 착용하고 체험할 수 있는 새로운 멀티미디어 공간을 제공한다. \r\n\r\n가상현실 콘텐츠는 이용자와 상호작용이 가능하며 360° 앵글을 구현할 수 있으며 엔터테인먼트, 가상 스포츠 체험, 교육용, 여행 체험용 콘텐츠가 개발되고 있다. 가상현실 콘텐츠의 불법 유출이나 복제를 방지하고 보호하기 위하여 개발한 보안 기술도 등장하고 있다.");
// insertDB(frstRegisterId, glossaryService,"강인한 워터마킹 (Robust Watermarking)","저작권 정보가 포함된 워터마크를 삽입한 이미지, 오디오, 동영상 등에 다양한 워터마킹 공격에도 삽입된 워터마크가 보존되어 저작물에 대한 저작권 정보를 확인할 수 있는 기술이다.");
// insertDB(frstRegisterId, glossaryService,"개방형 디지털 권리 표현 언어 / ODRL (Open Digital Right Language)","저작권 관리(DRM) 서비스 간의 상호 운용성을 실현할 프레임워크 구축을 목표로 호주의 IPR System에서 개발한 것이다. XrML에 비해 크기가 작게 구성되어 모바일에 적합한 형태를 갖고 있는 ODRL은 OMA(Open Mobile Alliance)에서 모바일용 REL 표준으로 채택된 언어이다.");
// insertDB(frstRegisterId, glossaryService,"개인용 영상 녹화기 / PVR (Personal Video Recorder)","TV를 보면서 동영상을 실시간으로 저장하고 예약 녹화까지 할 수 있는 장치이다. 제조사나 매체에 따라서 디지털 녹화기(DVR), 개인용 TV 수신기(PTR), 개인용 비디오 스테이션(PVS), 하드디스크 녹화기(HDR) 등이 있다.");
// insertDB(frstRegisterId, glossaryService,"검색어 기반 필터링 (Keyword Filtering)","검색어 기반 필터링은 ➀ 파일명이나 게시물 제목을 구성하는 단어(words)를 기반으로 하는 ‘제목 필터링’, ➁ 어구(phrase)를 기반으로 하는 ‘문자열 비교 필터링’, ➂ ‘특정 유형의 파일 필터링’ 등이다. \r\n\r\n➀과 ➁는 게시물 제목이나 파일명 및 파일의 확장자명에 보호하려는 문자열 조합의 존재 여부를 비교하여 콘텐츠를 인식한 이후에 차단하는 필터링 방법이다. \r\n\r\n저작권자의 요청에 따라서 특수한 유형의 온라인 서비스제공자가 저작권 있는 콘텐츠의 목록을 필터링 시스템에 입력하는 방식으로 활용되고 있다. 검색어 기반 필터링은 기술적 난이도가 낮아서, 의도적으로 게시물 제목이나 파일명 등을 변경하면 인식이 어렵다는 단점이 있다.");
// insertDB(frstRegisterId, glossaryService,"경쟁 업그레이드 라이선스(Competitive Upgrade License)","시장에서 경쟁 관계에 있는 소프트웨어를 사용하지 못하도록 유도하기 위해 허용하는 업그레이드를 위한 라이선스를 의미한다.\r\n\r\n※ 예: 사용자가 A사의 오피스 프로그램을 사용하고 있다는 점을 증명하면 B사는 자신의 소프트웨어에 대한 활용성을 높이기 위해서 업그레이드 라이선스를 허용해 주기도 한다.");
// insertDB(frstRegisterId, glossaryService,"고대역폭 디지털 콘텐츠 전송 보호 / HDCP (High Bandwidth Digital Content Protection)","HDCP는 개인용 컴퓨터와 같은 영상 재생 기기로부터 디스플레이 등의 표시장치에 디지털 신호를 송수신하는 경로에서 콘텐츠를 암호화하여 전송함으로써 정보가 부정하게 복사되는 것을 방지하는 저작권 보호 기술이다. \r\n\r\n아날로그 영상은 복사를 하여도 영상이 열화되어 큰 문제가 없으나 디지털 영상 신호는 완전한 복제가 가능하여 이를 보호할 필요가 있다. HDCP는 디지털 콘텐츠를 송신하는 기기가 HDCP 보안기술을 지원하는 수신 기기에만 신호를 암호화하여 전송한다.");
// insertDB(frstRegisterId, glossaryService,"고효율 비디오 코딩 / HEVC (High Efficiency Video Coding)","기존 H.265/MPEG-4 AVC(Advanced Video Coding) 기술과 비교하여 약 2배 높은 압축률을 가지면서도 동일한 비디오 품질을 제공하는 고효율 비디오 코딩(압축) 표준이다. \r\n\r\nH.265라고도 불리는 이 코딩 기술은 PEG(Moving Picture Experts Group)와 ITU-T의 VCEG(VideoCoding Experts Group)가 공동으로 설립한 JCT-VC(JointCollaborative Team on Video Coding)팀을 통해 표준화가 진행되어 2013년 4월 ITU-T에 의해 최종 승인되었다.");
// insertDB(frstRegisterId, glossaryService,"공개키 (Public Key)","공개키 암호 방식은 암호 방식의 한 종류로 사전에 비밀키를 나눠가지지 않은 사용자들이 안전하게 통신할 수 있다. \r\n\r\n공개키 암호 방식은 공개키와 비밀키가 따로 존재하며, 공개키는 누구나 알 수 있지만 그에 대응하는 비밀키는 키의 소유자만이 알 수 있어야 한다. 공개키 암호를 구성하는 알고리즘은 기존의 대칭키 암호 방식과 비교하여 비대칭 암호라고도 부른다.");
// insertDB(frstRegisterId, glossaryService,"공동개발 및 배포 라이선스 / CDDL (Common Development and Distribution License)","CDDL 라이선스는 오픈소스 라이선스의 일종으로서 모질라 공중 라이선스(Mozilla Public License)를 기초로 하며 썬 마이크로시스템즈가 주요 라이선스 조항을 수정하면서 CDDL이라는 명칭을 부여했다. \r\n\r\n원본 및 수정코드를 CDDL 라이선스에 의해서 배포하여야 하며 배포시 CDDL 라이선스 사본을 첨부해야 한다. 수정코드에 대한 소스코드를 합리적 방식으로 제공해야 한다. 저작권 권리관련 사항, 라이선스관련 사항 등의 공지사항을 제거하거나 변경할 수 없다. 썬 마이크로시스템즈가 개발한 운영체제 오픈 솔라리스(OpenSolaris)에 적용되었다.");
// insertDB(frstRegisterId, glossaryService,"공모공격 (Collusion Attack)","다수가 저작물을 비교하여 핑거프린팅이 삽입된 위치를 파악한 다음 핑거프린팅을 지우거나 새로운 프린팅을 삽입하여 다시 다수의 잠재적 사용자들에게 배포하는 공격방법이다. 공모공격에 의한 집단적 저작권 침해 방식을 말한다.");
// insertDB(frstRegisterId, glossaryService,"공용 공중 라이선스 / CPAL (Common Public Attribution License)","IBM이 제작한 오픈소스 라이선스의 일종으로서 OSI와 FSF가 승인했다. CPL은 다수의 협업을 통해 오픈소스 소프트웨어를 개발하는 환경에 적용된다.");
// insertDB(frstRegisterId, glossaryService,"공유마당 (Share Yard)","저작권 권리 처리가 된 공유저작물을 누구나 자유롭게 이용할 수 있는 공간으로 콘텐츠를 만들고(Create), 나누고(Share), 다시 쓰는(Remake) 자유로운 생태계, 열린마당을 말한다.");
// insertDB(frstRegisterId, glossaryService,"공인 웹 사이트 (Authorized Websites)","콘텐츠 인식 기술에서 국가 공인 인증기관으로 선정된 웹 접근성 품질 인증기관인 웹워치(WebWatch)를 통해 웹 접근성 품질인증을 획득한 사이트를 말한다.");
// insertDB(frstRegisterId, glossaryService,"공중 오픈 모니터링 (The Public Open Monitoring)","대중에게 온라인 저작권 침해여부에 대한 모니터링을 공개적으로 요청하여 자발적으로 참여하는 신고 제도이다.");
// insertDB(frstRegisterId, glossaryService,"통 스크램블링 알고리즘 (Common Scrambling Algorithm)","DVB(Digital Video Broadcasting) 방식의 방송 서비스의 제한 수신 시스템에서 MPEG-2 비디오 스트림 보호를 위해 표준화한 공통 암호화 알고리즘 기술. ver.1.0이 1994년 유럽정보통신표준화기구(ETSI)에 의해 표준화되고 DVB 컨소시엄에 의해 채택된 이후 사용되고 있다. 현재는 AES(Advanced Encryption Standard) 128비트 암호화 알고리즘을 기반으로 하는 ver.3.0까지 표준화되었다.");
// insertDB(frstRegisterId, glossaryService,"공통 암호화된 파일 포맷 (Common Encrypted File Format)","저작권 관리(DRM) 기술 별로 다른 암호화 방식을 이용하지 않고 공통 암호화 방식을 이용하여 파일을 보호하되 그 파일을 복호화할 수 있도록 필요한 정보(키 식별자를 포함한 공통 암호화 정보, DRM의 특유한 정보 등)를 다른 저작권 관리 기술의 파일 내에 포함시킬 수 있도록 허용한 포맷이다.");
// insertDB(frstRegisterId, glossaryService,"구텐베르크 프로젝트 (Project Gutenberg)","금속 활자를 이용한 인쇄술을 발명하여 지식을 널리 확산시켰던 요하네스 구텐베르크의 이름에서 따온 전자책 제공 프로젝트. 많은 발룬티어들의 자발적인 참여를 통해 운영되는 온라인 협업 프로젝트로서 책의 종류별 분류, 작가별 분류를 제공한다(www.gutenberg.org).\r\n\r\n이미 저작권이 만료된 책들을 전자화된 문서(e-text)로 모아서 누구든지 온라인에서 무료로 읽을 수 있는 도서관을 구축했다. 다양한 형식의 파일(html, ePub, Kindle, Plain Text UTF-8)을 무료로 다운로드 받을 수 있다.");
// insertDB(frstRegisterId, glossaryService,"국제 DOI 재단 / IDF (International DOI Foundation)","과학, 기술, 의학, 전자저널 식별과 유통을 위해 미국출판협회(AAP)가 제안하여 1997년 미국 델러웨어주에 등록된 비영리 단체이다. DOI(디지털콘텐츠식별자) 시스템 등록기관(Registration Authority)이며 DOI 시스템을 운영하는 조직이다. \r\n\r\n주요한 역할은 DOI 등록기관에 대한 일반적 관리, DOI 시스템의 외부 표준화 절차뿐만 아니라 내부 정책 및 절차에 관리, 사용자의 요구에 따른 DOI 시스템의 기술 인프라 및 데이터 유지, DOI 이름의 할당, 등록, 유지 보수 및 보급에 관한 가이드라인 제작 등이다");
// insertDB(frstRegisterId, glossaryService,"국제 디지털 출판 포럼 / IDPF (International Digital Publishing Forum)","전 세계 120개 디지털 출판 기업들과 단체들이 결성한 전자책(e-Book) 표준화 단체.\r\n\r\nOBAG, OEBF가 추진하던 기술 표준의 맥을 이어 전자책(e-Book) 표준화를 주도하고 있으며, 2007년 제정된 전자책 기술 표준 ePub 3.0은 사실상의 국제 표준이다.");
// insertDB(frstRegisterId, glossaryService,"국제인터넷표준화기구 / IETF (Internet Engineering Task Force)","인터넷의 운영, 관리, 개발에 대해 협의하고 프로토콜과 구조적인 사안들을 분석하는 사실상(de facto) 표준화 기구. \r\n\r\n국제인터넷표준화기구의 의사결정 방식은 다음과 같다. 워킹그룹에서 제안한 표준을 평가하는 라스트 콜(last call)은 제안된 표준에 문제가 될 만한 사항이 있는지를 확인하기 위해 메일링 리스트를 통해 2주간 진행된다. 라스트 콜을 거쳐서 워킹 그룹 대다수가 찬성하는 대략적 합의(rough consensus)로 승인되면 그 제안된 표준은 인터넷 엔지니어링 스티어링 그룹(IESG, Internet Engineering Steering Group)의 승인을 거치게 된다.\r\n\r\nIESG의 라스트 콜은 IETF 전체 메일링 리스트로 보내지므로 워킹 그룹에 참여하지 않은 사람들도 의견을 개진할 수 있다. IETF에서는 만장일치에 가까운 합의로 표준을 택하는것이 아니라 ‘다수의 찬성’에 의한 ‘대략적 합의’를 통해 표준이 채택된다. 회원 제도가 없으므로 투표도 불가능하다. 대략적 합의를 통해 결정한 표준이 진정한 표준으로서 완전하게 인정되려면 실질적으로 코드의 ‘계속적인 작동’이 이루어져야 한다.");
// insertDB(frstRegisterId, glossaryService,"국제저작자작곡자단체연맹 / CISAC (Confédération Internationale des Sociétés d'Auteurs et Compositeurs)","국제적으로 음악, 시청각 영상물 작품 정보, 창작자 정보 및 합의 정보들의 상호 협력 네트워크 제공과 저작권료 징수 및 분배를 목적으로 설립된 저작권 관리 기구. 국제표준 시청각 자료번호(ISWC) 등록기관으로 음악 작품의 등록 업무를 수행한다. \r\n\r\nCIS-Net(www.fasttrackdcn.net/our-products/cis-net/)을 통해 저작권료 징수 및 분배 업무를 처리한다.");
// insertDB(frstRegisterId, glossaryService,"국제표준 녹음코드 / ISRC (International Standard Recording Code)","ISO 3901:2001 표준에 따라 개별 음원과 뮤직비디오를 대상으로 음악 저작권(작사, 작곡, 편곡, 연주)과 저작 인접권(연주, 공연)의 실체를 구분하기 위한 용도로 사용되는 국제표준식별체계. \r\n\r\n등록된 ISRC 코드는 음원 및 뮤직비디오의 유통사, 온라인 음원 서비스 사업자, 음악 라이선싱 업체에 제공된다. 아이튠스(iTunes), 아마존닷컴(Amazon) 등 해외 주요 온라인 음원 서비스 업체들이 ISRC를 음원 판매현황에 대한 파악과 수익의 분배에 활용하고 있다. 각 트랙이나 녹음물에 12개의 문자 및 숫자로 국가명-등록자-기준연도-목적코드가 표시된다. 국제표준화기구(ISO)가 1996년에 “ISO 3910 Information and Documentation-International Standard Recording Code” 표준으로 제정했고 국제 음반 산업 협회(IFPI)가 등록기관으로 지정되었다(http://isrc.ifpi.org). \r\n\r\n특정 녹음물 자체를 식별하기 위한 코드로서 편집물, 리믹스 버전에도 각각 ISRC 코드가 존재한다.");
// insertDB(frstRegisterId, glossaryService,"국제표준 도서 번호 / ISBN (International Standard Book Number)","전 세계에서 간행되는 각종의 단행본 도서에 고유번호를 주어 개별화시킴으로써 문헌정보와 서지유통의 효율화를 기하는 제도이다. ISBN은 출판물을 국제적으로 유일하게 식별하는 13자리로 구성된 표준코드로 서지적이며 기술적인 복잡하고 긴 기록들을 대신한다.\r\n\r\n1969년 “ISO 2108 Information and Documentation - International Standard Book Number” 표준으로 제정되었다.");
// insertDB(frstRegisterId, glossaryService,"국제표준 명칭 식별자 / ISNI (International Standard Name Identifier)","저작물 창작과 유통에 관련된 작가, 공연자, 연구자, 출판사를 식별하는 국제표준이자 관리단체(www.isni.org).\r\n\r\nISNI는 저작물의 창작, 공연, 제작, 관리, 유통에 관련된 자연인과 법인(기업, 단체), 배역, 작품 등장인물 등에게 고유 식별번호를 부여하므로 검색을 통해 저작권 관리, 유통 및 수익 분배에 관련된 당사자를 신속, 정확하게 식별할 수 있다. 미디어 콘텐츠 창작자들에게 부여한 16자리 숫자의 식별자로서 2012년 국제표준(ISO 27729)으로 지정되었다.");
// insertDB(frstRegisterId, glossaryService,"국제표준 시청각 자료 번호 / ISAN (International Standard Audiovisual Number)","영화, 다큐멘터리, 텔레비전 프로그램, 스포츠 이벤트, 광고와 관련된 모든 시청각 작품에 부여하는 고유 식별자이자 관리단체(www.isan.org). 2002년 국제표준화기구(ISO)의 46기술분과(Technical Committee 46) 산하의 소분과 SC9(9th Steering Committee)가 제정한 표준으로 방송사, 스튜디오, 인터넷 서비스 제공자, 비디오 게임 제공자 등이 출시하는 모든 저작물에 부여하는 국제적 고유번호이다. \r\n\r\nISAN Korea는 국제표준(ISO TC46/SC9) 기반의 영상물 식별체계를 등록하는 시스템으로서 영상 콘텐츠의 체계적인 관리를 위하여 영상 작품에 ISAN 코드를 부여한다 (https://www.isankorea.or.kr).");
// insertDB(frstRegisterId, glossaryService,"국제표준 시청각 자료번호 버전 식별자 V-ISAN (International Standard Audiovisual Number version identifier)","시청각 자료의 특정 버전을 고유하게 식별하는 국제표준. ISAN을 보완하여 언어, 자막, 포맷의 변화와 편집상태 등에 따른 버전별로 시청각 자료를 식별하는데 사용된다.");
// insertDB(frstRegisterId, glossaryService,"국제표준 연속간행물 번호 / ISSN (International Standard Serial Number)","전 세계에서 생산되는 연속 간행물의 식별을 위하여 부여하는 8자리 표준화 고유번호(ISO 3297의 국제표준). 연속간행물을 식별할 목적으로 고안되었고 유네스코(UNESCO)와 국제학술연합회의 초록부(ICSU/AB)에 의해 만들어졌다.");
// insertDB(frstRegisterId, glossaryService,"국제표준 음악 작품 코드 / ISWC (International Standard Musical Work Code)","음원 또는 악보로 출판되기 이전의 음악 창작물을 대상으로 하는 국제표준 식별체계로서 음악작품의 저작권 관리에 사용된다. ISWC는 음악작품의 출판여부, 신규 창작여부 및 저작권 상태와 무관하게 등록할 수 있다. ISWC-Net을 통하면 온라인을 통해 1천 8백만 건의 음악 창작물 데이터베이스를 접속할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"국제표준화기구 문헌정보 기술분과 (ISO / TC46)","문헌정보 분야의 표준을 다루는 국제표준화기구(ISO)의 문헌정보 기술분과위원회(TC46).\r\n\r\nTC46은 ISO에서 가장 오래된 표준화 위원회로 1947년에 설립되었다. 우리나라는 정회원으로서 활동 중이며, 기술표준원이 국가 대표기구, 국립중앙도서관이 간사를 맡고 있다.");
// insertDB(frstRegisterId, glossaryService,"국제표준화기구 문헌정보 기술분과의 9 소분과 (ISO / TC46 SC9)","국제표준화기구(ISO)에 소속된 문헌정보 기술분과 TC46 산하에 운영되는 9번째 소분과(Steering Committee)로서 콘텐츠 식별 및 문서화(Identification and Documentation)에 관련된 사항들을 관장한다. SC9의 표준화 범위는 국제 표준번호나 코드(즉, 정보식별자와 기술방법)를 대상으로 하며, 도서, 연속간행물 등의 종이매체는 물론이고 전자자료, 음악작품, 시청각작품 등도 대상 표준으로 발전하고 있다.");
// insertDB(frstRegisterId, glossaryService,"권리 데이터 사전 / RDD (Rights Data Dictionary)","디지털 저작물 사용에 관련한 권리를 표현하는 모든 영역에서 필요한 데이터 사전. 표준화된 구문을 명확히 표현하며 지적재산권을 포함한 모든 사용자 권리를 기술한다. 대표적예로 MPEG-21 RDD 등이 있다.");
// insertDB(frstRegisterId, glossaryService,"균일화 (Equalization)","오디오의 특정 주파수 범위대의 신호를 강하거나 약하게 조정하여 오디오 신호를 균일화하거나 왜곡시키는 오디오 변환기법이다.");
// insertDB(frstRegisterId, glossaryService,"그리드 / Grid (Global Release Identifier)","MI3P(Music Industry Integrated Identifiers Project)의 일환으로 국제음반산업협회(IFPI)와 미국레코드공업협회(RIAA)에 의해서 개발된 표준으로, 인터넷 환경에서 유통되는 디지털 음원, 앨범, 멀티미디어 및 기타 디지털 자원을 배포 단위별로 식별하기 위한 목적으로 개발되었다.");
// insertDB(frstRegisterId, glossaryService,"글로벌 레퍼토리 데이터베이스 / GRD (Global Repertoire Database)","전 세계 음악 저작물의 권리 및 정보를 하나로 모아서 종합적인 데이터베이스를 만들어 관리하려는 프로젝트. 음악 메타데이터는 관련 단체들이 개별적으로 수집하고 보관하므로 라이선스를 위한 정보를 찾기 어렵다. 음악 저작권자들은 사용료를 받기 위해 자신의 음악을 다수의 저작권 관리 단체에 등록해야 하므로 중복적으로 수수료를 지불해야 한다. 그러나 단일 데이터베이스를 통해 음악 저작물의 권리자들을 확인할 수 있다면 음악 저작물 라이선싱 체결 과정의 비용을 줄이고 효과적 관리 및 로열티 지급이 가능하다. \r\n\r\nGRD는 음악 저작권 라이선싱을 위한 원스톱숍(one-stopshop)을 구축하여 저작권자와 라이선스 이용자 모두에게 이익이 되도록 한다는 목표로 2013년에 출범하였고 본부를 영국 런던에, 운영 센터를 독일 베를린에 마련하였다. 그러나 2014년에 공식적으로 실패를 선언하였다.");
// insertDB(frstRegisterId, glossaryService,"기술 보증 업그레이드 라이선스 (Technology Guarantee Upgrade License)","새로운 기술을 보강한 소프트웨어를 출시하는 경우에 소프트웨어 제조업체가 현재 버전을 구매한 사용자들에게 무상으로 제공하는 라이선스이다.");
// insertDB(frstRegisterId, glossaryService,"기술적 조치 (Technology Measures)","서비스 제공자가 저작물의 불법적인 복제 및 전송을 차단하기 위해 적용해야하는 기술로서, 기술적 조치에 의하여 인지한 저작물의 불법적인 복제・송신을 차단하기 위한 검색 및 송신제한조치와 경고 문구의 발송을 포함한다. \r\n\r\n저작권법에서는 특수한 유형의 온라인 서비스 제공자(OSP)에게 ‘권리자의 요청이 있는 경우 해당 저작물 등의 불법적인 전송을 차단하는 기술적인 조치 등 필요한 조치’를 취하도록 하고 있다. 2011년 헌법재판소는 저작권법 제104조 등 위헌소원 결정(2009헌바56)에서 특수한 유형의 온라인 서비스 제공자로 하여금 권리자의 요청이 있는 경우 당해 저작물 등의 불법적인 전송을 차단하는 기술적인 조치 등 필요한 조치를 하도록 한 저작권법 제104조 제1항 및 이에 위반한 경우 과태료를 부과하는 저작권 법 제142조 제1항, 제2항에 대하여, 재판관 전원일치의 의견으로 포괄위임입법금지의 원칙에 위반되지 아니하고, 과잉금지원칙에 위배하여 직업수행의 자유를 침해하지 않는다고 판단하였다.");
// insertDB(frstRegisterId, glossaryService,"기업 콘텐츠 관리도구 / ECM (Enterprise Content Management)","다양한 콘텐츠를 통합 관리하고 프로세스를 체계적으로 관리함으로써 시스템의 유지 및 운영 비용을 절감할 수 있는 시스템 관리 도구이다.");
// insertDB(frstRegisterId, glossaryService,"네트워크 개인용 녹화기 / 네트워크 PVR (Network Personal Video Recorder, nPVR)","NDVR 또는 원격 저장 디지털 비디오 레코더(RS-DVR)은 네트워크 기반의 DVR로서 콘텐츠 제공자의 중앙 저장장치에 저장되며 소비자의 가정용 디지털 기기에 저장되지 않는다. 기존의 개인용 녹화기(Personal Video Recorder) 방식은 인터렉티브 TV(interactive TV)의 녹화 기기로서 셋톱박스의 핵심을 구성했다. \r\n\r\n기존의 PVR이 방송 콘텐츠를 하드디스크에 저장했다가 원하는 시간에 볼 수 있었던 것과는 달리, 네트워크 PVR은 네트워크 사업자의 서버를 저장장치로 활용한다는 특징이 있다. 예약 녹화나 타임 시프트(time shift) 등 기능면에서 셋톱박스를 사용하는 로컬 PVR과 차이가 없지만, 로컬 PVR의 단점인 기기의 보급과 유지에 소요되는 비용을 줄일 수 있다. 중앙 서버에 콘텐츠가 저장되므로 복제 방지에도 유용하다.");
// insertDB(frstRegisterId, glossaryService,"노-CD 크랙 / 노-DVD 크랙 (No-CD Crack / No-DVD Crack)","사용자들이 소프트웨어를 실행할 때마다 컴퓨터에 연결된 CD-ROM이나 DVD-ROM에 CD나 DVD를 삽입해서 소프트웨어를 실행해야 하는 불편을 덜기 위해 합법적 소프트웨어의 백업이나 인터넷 이용이 가능하도록 변경된 실행 파일이다.");
// insertDB(frstRegisterId, glossaryService,"녹화 미디어에 대한 콘텐츠 보호기술 / CPRM (Content Protection for Recordable Media)","IBM, Intel, Matsushita Electric, Toshiba 등 4개 업체가 설립한 표준화 단체 4C Entities가 1998년 개발된 기술로 저작권으로 보호되는 콘텐츠를 DVD 등 옵티컬 디스크에 저장할 때 다른매체에 무단 복제되지 않도록 방지한다. 일본에서는 방송 콘텐츠를 녹화 할 때 CPRM 기술이 적용된 DVD 녹화기에만 녹화가 가능하다.");
// insertDB(frstRegisterId, glossaryService,"논-블라인드 워터마킹(Non-Blind Watermarking)","이미지, 음악, 동영상 등에 저작권자 정보인 워터마크를 삽입하고 향후 저작권자의 정보를 확인할 때 워터마크를 추출하기 위하여 원본이 필요한 워터마킹 기술이다.");
// insertDB(frstRegisterId, glossaryService,"다운로드를 통한 제한적 방송수신 시스템 / DCAS (Downloadable Conditional Access System)","가입자의 수신장치(Set-top Box)에 제한수신 시스템(CAS) 클라이언트 모듈을 설치하지 않고 방송 사업자 네트워크에 연결하여 소프트웨어로 구성된 제한적 수신 시스템(CAS) 클 라이언트 모듈을 DCAS 서버로부터 안전하게 다운로드하여 셋톱박스의 보안 모듈(Secure Micro)에 설치하고 콘텐츠 보호 모듈이 운용될 수 있도록 하는 시스템. \r\n\r\n기존 CAS 기술을 STB에 안전하게 다운로드하여 실행하도록 하는 기술이다. 국내에서는 DCAS 개념을 발전시켜 디지털케이블에 적용되는 XCAX(eXchangeable CAS) 기술 및 IPTV에서 적용되는 iCAS(Interchangeable CAS) 기술로 규격화되었다. 현재 ‘셋톱박스와 보안 모듈의 분리’ 의무의 해결 방안으로 사업자가 도입하여 사용하고 있다.");
// insertDB(frstRegisterId, glossaryService,"다이내믹 적응형 스트리밍 / DASH (Dynamic Adaptive Streaming over HTTP)","MPEG(Moving Picture Experts Group)에서 표준화한 HTTP 기반의 스트리밍 프로토콜로, 네트워크 상태에 따라 적절한 화질로 스트리밍을 해주는 기술이다. \r\n\r\n이 기술은 MPEG-4 또는 MPEG-2 TS(Transport Stream) 패킷으로 구성된 다양한 품질의 비디오 데이터를 일정한 조각으로 잘라 세그먼트 파일로 구성하고 이 세그먼트 파일에 접근하기 위한 주소 정보가 포함되어 있는 MPD(Media Presentation Description) 파일을 사용자의 플레이어에 전달한다.");
// insertDB(frstRegisterId, glossaryService,"다중 워터마킹 (Multiple Watermarking)","이미지, 오디오, 비디오 등의 콘텐츠에 서로 다른 저작권 정보인 워터마크를 중복하여 삽입하는 행위이다. 여러 개의 워터마크를 반복적으로 삽입하여 유통경로를 추적하거나 저작권 변경 이력 등을 확인할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"다채널방송사업자 / MVPD (Multichannel Video Program Distribution)","지상파 방송을 제외한 케이블 TV, 위성방송, VOD, 다중채널 다지점 분배서비스(MMDS), 무선케이블TV(LMDS), IP-TV 등 다채널 영상미디어를 제공하는 사업자들을 가리킨다. \r\n\r\n지상파 방송 이외에 영상 콘텐츠를 제공하는 사업자들의 비중이 크게 증가하자 미국 연방통신위원회(FCC)는 MVPD 개념을 도입하고 지상파 방송 사업자와 구분하여 규제를 적용했다. MVPD가 되면 경쟁 MVPD 자회사 채널을 동일한 가격에 제공받을 수 있어 콘텐츠 확보가 용이하지만 지상파 의무재송신 부담은 지게 된다. 전체 MVPD가입자 수의 30% 이상을 점유하지 못하는 제한 규정도 지켜야 한다. 연방통신위원회는 인터넷을 통하여서 선형 프로그램(linear programming)을 제공하는 OTT(Over-the-Top) 사업자들도 MVPD로 분류하였다. 그 결과 인터넷 TV 제공 사업자들도 미국 저작권법에 규정된 법정이용허락을 통해 지상파 콘텐츠의 재송신이 가능해졌다.");
// insertDB(frstRegisterId, glossaryService,"다크넷 (Darknet)","인터넷에 연결된 불특정 다수의 동료들(peers) 간에 디지털 파일을 공유하기 위한 폐쇄형사설 분산 P2P(Peer-to-peer) 네트워크. F2F(friend-to-friend)라고도 불린다. 표준 프로토콜과 포트를 사용하지 않으며 IP 주소가 익명이므로 저작권 침해 행위가 있어도 정부와 법집행 기관의 개입을 피할 수 있다는 점에서 일반 P2P와 구별된다.");
// insertDB(frstRegisterId, glossaryService,"닥시스 / DOCSIS (Data Over Cable Service Interface Specifications)","DOCSIS는 케이블TV 운영업체와 TV 간의 데이터 입출력을 처리하는 케이블 모뎀 표준 인터페이스.\r\n \r\n“CableLabs 인증 케이블 모뎀”으로도 불린다. DOCSIS 표준은 케이블 모뎀 제작사의 제품을 보증하기 위해 사용되기도 한다. DOCSIS가 새로운 버전으로 진화하므로, 기존 모뎀 사용자들은 케이블 모뎀 내 EEPROM 메모리 프로그램을 업그레이드할 수 있다. DOCSIS 케이블 모뎀은 TV용 셋톱박스에 통합되는 추세이다. 셋톱박스 자체는 OpenCable표준을 따른다. 닥시스3.0 기술을 채택하여 광동축 하이브리드망(HFC) 네트워크를 통해 파일 다운로드 속도를 800Mbps를 제공하는 기가급 케이블 모뎀이 개발되었다.");
// insertDB(frstRegisterId, glossaryService,"대역 필터링 (Band-Pass Filtering)","대역(帶域) 필터링 또는 밴드 패스 필터링 기술은 오디오의 특정한 주파수 대역의 신호만을 활용하는 필터링 방식이다. \r\n\r\n오디오 콘텐츠의 특정 주파수를 기준으로 일정 범위의 신호만 통과시키고 그 이외의 신호는 제거하는 방식으로 식별한다. 음원이 보유하는 신호 가운데 필요하지 않은 주파수 대역을 제외하여 오디오가 가지는 특징정보(오디오 DNA)의 크기를 줄일 수 있고 콘텐츠 인식 속도도 개선 할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"대조효과 변환 공격 (Contrast Change Attack)","대조효과 변환은 동영상 화면에서 물체와 배경을 구별할 수 있게 만들어 주는 시각적인 특성의 차이로 물체의 색과 밝기의 차이를 변환하는 공격 유형이다. \r\n\r\n대조효과 변환 공격은 콘텐츠 필터링의 ‘식별’을 방해하는 공격 방식이며, 모자이크 공격은 콘텐츠 자체를 조각낸 다음 다시 합쳐서 원본과 동일한 콘텐츠를 얻는 방식이다.");
// insertDB(frstRegisterId, glossaryService,"더블린 코어 (Dublin Core)","Dublin Core Metadata Element Set의 약어로, 인터넷의 다양한 디지털 자원을 효율적으로 검색 및 관리하기 위한 메타데이터의 집합이다. 메타데이터에 사용되는 실행방식들을 국제표준화기구(ISO)에서 표준화하여 검색과 처리를 쉽게 한다. \r\n\r\n더블린 코어는 비디오, 오디오, 이미지, 텍스트, 웹 페이지 등 디지털 매체에 사용된다. 확장가능한 표시 언어(XML)와 자원 서술 프레임워크(RDF)를 통해 구현되며 데이터의 형식과 구조를 단순화한 결과 원문의 저자나 발행자가 메타데이터를 직접 작성할 수 있다. 더블린 코어는 단순한 구조 시스템 개발, 교환용 및 통합용 메타데이터의 개발, 응용 프로파일의 개발 과정에 유용하게 사용된다.");
// insertDB(frstRegisterId, glossaryService,"더블린 코어 메타데이터 이니셔티브 / DCMI (Dublin Core Metadata Initiative)","광범위한 목적과 비즈니스 모델을 지원하는 상호호환성 있는 더블린 코어 관련 메타데이터에 대한 표준을 개발하는 조직이다. 국내의 DCMI는 국립중앙도서관에서 운영하고 있으며 아키텍처와 모델링, DCMI 커뮤니티 내부에서의 토론과 협력, 메타데이터 표준과 실행의 광범위한 사용을 장려한다.");
// insertDB(frstRegisterId, glossaryService,"데이터 스니핑 (Data Sniffing)","스니퍼(sniffer)는 “컴퓨터 네트워크상에 흘러다니는 트래픽을 엿듣는 도청장치”이고 “스니핑”은 스니퍼를 이용하여 네트워크상의 데이터를 도청하는 행위를 말한다. \r\n\r\n스니핑 공격은 웹호스팅, 인터넷데이터센터(IDC) 등과 같이 여러 업체가 같은 네트워크를 공유하는 환경에서 위협적 공격이다. 하나의 시스템이 공격당하게 되면 그 시스템을 이용하여 네트워크를 도청하게 되고, 다른 시스템의 User ID/Passwd를 알아내게 된다. 비록 스위칭 환경의 네트워크를 구축하여 스니핑을 어렵게 할 수는 있지만 이를 우회할 수 있는 많은 공격방법이 존재한다.");
// insertDB(frstRegisterId, glossaryService,"도메인 관리 기술 (Domain Management Technology)","도메인을 구성하는 디바이스 간의 상호 인증처리 기술과 도메인 내의 콘텐츠 권리정보관리 기술을 포함하여 구성되며, 기존의 DRM 기술이 개별 사용자별로 혹은 개별 단말기별로 인증하고 권한을 부여했던 것에 반해, 도메인 관리 기술을 지원하는 DRM 기술은 특정 사용자가 소유한 다수의 단말기 또는 다수 가정 구성원의 단말기에서도 인증과 권한 부여를 수행할 수 있다. 도메인은 디지털 콘텐츠 소비의 기본 단위인 사용자 또는 단말기로 구성된 집합적 개념이다.");
// insertDB(frstRegisterId, glossaryService,"동시 사용 라이선스 (Concurrent Usage License)","동시 사용자의 수를 제한하여 사용 권한을 부여하는 소프트웨어 라이선스이다");
// insertDB(frstRegisterId, glossaryService,"동적 버스마킹 (Dynamic Birthmarking)","실행시간에 추출된 정보를 버스마크로 사용하는 기법으로 제어 흐름 추적, API 호출 추적, 빈도수와 순서, 런타임의 Java API Call의 시퀀스 등을 사용한다.");
// insertDB(frstRegisterId, glossaryService,"디지털 객체 식별자 / DOI (Digital Object Identifier)","인터넷 주소가 변경되더라도 사용자가 그 문서의 새로운 주소로 다시 찾을 수 있도록, 웹 파일이나 인터넷 문서에 영구적으로 부여된 고유 식별번호. DOI에는 디지털콘텐츠 소유자와 제공자를 비롯하여 데이터에 관한 정보가 입력되므로, 콘텐츠의 유통 경로를 추적하면 불법 복제를 막을 수 있다. \r\n\r\nDOI는 1997년 전자저널 식별과 유통을 위해 미국출판협회(AAP)가 제안하였고 1998년 IDF(International DOI Foundation)이 결성되었다. 국제표준화기구(ISO) TC46에서는 DOI를 국제표준으로 지정했다(ISO 26324). DOI는 Prefix와 Suffix로 구성된다. Prefix는 등록기관 식별코드이며, Suffix는 등록기관이 자체적으로 부여하는 콘텐츠 식별코드이다. (예, doi:10.1198/302682) 그러나 DOI에는 등록기관(RA)에 대한 정보는 없다.");
// insertDB(frstRegisterId, glossaryService,"디지털 광원 처리 / DLP (Digital Light Processing)","디지털 시네마 환경을 구현하기 위해 프로젝터와 영상 프로젝터에 사용하는 기술로서, 디지털 마스터링 된 상영용 파일(DCP)을 극장에서 상영하기 위해서 필요하다.");
// insertDB(frstRegisterId, glossaryService,"디지털 데이터 교환 / DDEX (Digital Data Exchange)","2006년 5월 레코드 회사, 저작권 관련 단체, 디지털/테크놀로지 서비스 제공사 등이 온라인 음원 유통 정보 교환에 필요한 확장가능한 표시 언어(XML) 메시지의 표준화를 위해 발족한 국제적 개방형 비영리 단체. 온라인 음원 유통에 관한 메타데이터의 교환 규격 표준화 및 자동화를 목표로 하고 있다.");
// insertDB(frstRegisterId, glossaryService,"디지털 메시 (Digital Mesh)","차량, 카메라, 가전제품, 스마트폰, 착용 컴퓨터(웨어러블 기기) 등 많은 다양한 기기들이 상호 연결되어 촘촘한 그물망 같은 형태를 가리키는 것. \r\n\r\n디지털 메시에는 컴퓨터, 스마트폰뿐만 아니라 착용 컴퓨터(웨어러블 기기), 가상 현실 기기, 사물 인터넷(IoT) 센서 등 여러 스마트 기기들이 포함되며, 정보 수집, 사람들과의 소통, 비즈니스 등에 활용된다. ‘디지털 메시’는 가트너(Gartner)의 2016년 핵심 전략 기술 중 하나이다.");
// insertDB(frstRegisterId, glossaryService,"디지털 시네마 이니셔티브 / DCI (Digital Cinema Initiative)","할리우드의 영화 제작 스튜디오들이 참여하여 디지털 시네마 시스템 표준을 개발하였다. 2005년 발표한 디지털 시네마 시스템 규격 v1.0은 디지털 시네마 기술 표준 SMPTE DE28 의 바탕이 되었다(www.dcimovies.com).");
// insertDB(frstRegisterId, glossaryService,"디지털 시네마 패키지 / DCP (Digital Cinema Package)","극장에서 디지털 영화 상영을 위해 배포되는 디지털 시네마용 파일 형식으로 저작권 보호를 위해 영상, 음향, 자막 등의 정보들을 암호화된 형태로 저장할 수 있다.\r\n\r\n디지털 시네마는 디지털 카메라로 촬영한 영화를 디지털 파일 형태로 가공처리하고 포장해서 하드디스크, 위성, 네트워크 등을 통해 전달한다. 종래에는 필름 프린트를 캔에 담아서 극장 영사실까지 운반했지만 디지털 시네마에서는 디지털 마스터링 된 상영용 파일(DCP)을 극장의 디지털 상영시스템의 서버로 전송하거나 저장 매체에 담아서 운송한다.");
// insertDB(frstRegisterId, glossaryService,"디지털 싱글마켓 (Digital Single Market)","디지털 경제의 시대에 주목는 디지털 싱글마켓은 지리적 국경에 의한 차이와 제도적 장벽을 허물어 단일 플랫폼에서 전자상거래 및 디지털 저작물의 이용허락이 가능하게 만든다는 구상이다. \r\n\r\n2015년 유럽연합은 회원국들 간의 이질적인 디지털 규제 통합을 통해 자유로운 디지털 교역을 구현하고자 ‘디지털 싱글마켓’ 전략을 발표했으며 한국, 중국, 일본 간의 디지털 싱글마켓도 논의되고 있다. 디지털 싱글마켓이 구현되면 상품의 구매뿐만 아니라 영화, 음원의 이용도 늘어나게 된다. 디지털 싱글마켓을 위해서 소비자보호, 활용가능한 전자화폐, 부가가치세 등 과세방식, 결제시스템, 저작권 규제 등이 통일될 필요가 있다.");
// insertDB(frstRegisterId, glossaryService,"디지털 엔터테인먼트 콘텐츠 생태계 / DECE (Digital Entertainment Content Ecosystem)","다양한 단말기에서 차세대 디지털 미디어 환경을 개발하기 위해 구성된 컨소시엄. 주요 할리우드 영화 제작사, 가전제품 제조사, 소매업자, 네트워크 장비 제조사, DRM 기술 공급자가 참여하였다. 2010년 UltraViolet 콘텐츠 클라우드 시스템을 시작하여 운영하고 있다.");
// insertDB(frstRegisterId, glossaryService,"디지털 음악 보호 협회 / SDMI (Secure Digital Music Initiative)","디지털 멀티미디어에 대한 표준화 단체이다. 디지털 음악의 재생, 저장, 유통 과정에서음악 저작권을 보호하기 위한 보호 기술 규격을 개발하는 표준 단체.\r\n\r\n음악파일 포맷개발과 판매방식 개선 등 디지털 음악파일과 관련한 업계 기술표준화를 추진하고자 미국 음반산업협회(RIAA) 주도로 구성되었다 AT&T, 미츠비시, 마이크로소프트 등 200여 정보통신, 소비자 가전, 보안기술 업체, 음반업체들이 참여하고 있다.");
// insertDB(frstRegisterId, glossaryService,"디지털 자산관리 / DAM (Digital Asset Management)","단체나 기업이 보유하는 디지털화 형태의 모든 멀티미디어 콘텐츠를 자산화하여 관리하는 기술을 의미한다.\r\n\r\n예를 들면, 기업에서 작성된 문서 또는 수행할 서비스를 위해 촬영한 사진 이미지, 기업 홍보를 위해 제작된 각종 동영상 등 컴퓨터 또는 저장매체에 저장된 파일 등 기업 가치를 높이는 모든 디지털 파일을 의미한다. 디지털 자산을 관리하는 요소 기술들은 디지털 자산의 분류 기술, 식별 기술, 아카이빙 자동화 기술, 검색・조회 기술, 배포 기술 등이 있다.");
// insertDB(frstRegisterId, glossaryService,"디지털 저작권 거래소 / KDCE (Korea Digital Copyright Exchange)","한국저작권위원회가 운영하는 디지털 저작권 거래소는 저작물의 복잡한 권리정보를 체계적으로 수집, 제공하고 이를 활용하여 합법적 저작권 거래를 지원한다. 저작권 이용허락계약 서비스(Service Use Agreement Online Copyright)는 저작물 이용에 필요한 저작권 정보를 체계적으로 통합 관리하고 권리자와 이용자가 쉽게 라이선스 계약을 체결하도록 돕는 역할을 한다. \r\n\r\n디지털 저작권 거래소는 음악, 어문, 뉴스 3가지 분야별 시스템이 운영되고 있다(www.kdce.or.kr). 디지털 저작권 거래소는 저작권 이용을 위한 원스톱 서비스를 추구하며 이를 위해서 저작권자는 ICN(통합저작권관리번호)을 등록해야 한다. ICN 발급을 통해서 저작물 이용을 원하는 사용자에게 저작물과 관련된 저작권 정보, 저작물 정보, 이용조건, 소재정보를 제공할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"디지털 저작권 관리 / DRM (Digital Rights Management)","다양한 디지털 형태의 저작물에 대한 접근을 통제하여 저작권자의 이익을 보호하고 관리하는 기술로 영화, 도서, 음원, 디지털 방송, 교육용 서비스 등에 적용된다.\r\n\r\n정당한 방법으로 저작권자의 라이선스를 얻는 사용자만이 콘텐츠에 대한 접근과 이용이 가능하도록 허용하는 기술이다. 많은 업체들이 디지털 저작권 관리 기술을 제공하지만 인터트러스트(InterTrust), 마이크로소프트, IBM, 콘텐츠가드(ContentGuard)가 대표적 업체들로 여겨진다.");
// insertDB(frstRegisterId, glossaryService,"디지털 저작권 아시안 네트워크 / DCAN (Digital Copyright Asian Network)","저작권 보호, 이용 활성화, 저작권 정보 및 기술의 표준화 등 저작권 산업 내 다양한 이슈를 논의하고 해결 방안을 모색하기 위한 국제 협력 프로그램으로 2009년부터 문화체육관광부와 한국저작권위원회의 지원을 받아 운영되고 있다. DCAN의 주요 활동은 국내 저작권기술 업체 지원과 국내외 저작권 산업 전문가들의 네트워크 구축이다.");
// insertDB(frstRegisterId, glossaryService,"디지털 저작권 포렌식 (Digital Copyrights Forensics)","저작권 침해 범죄에 대한 디지털 증거 자료가 법적 증거력을 갖출 수 있도록 논리적으로 표준화된 절차와 방법에 따라 수집・이송・분석・보고하는 과학수사 기술이다. 전자적 증거물 등을 사법기관에 제출하기 위해 데이터를 수집, 분석, 보고서를 작성하는 일련의 작업을 말한다. 과거에 얻을 수 없었던 증거나 단서들을 제공해 준다.");
// insertDB(frstRegisterId, glossaryService,"디지털 전송 콘텐츠 보호 / DTCP (Digital Transmission Content Protection)","디지털 홈 네트워크 내에서 저작권 관리(DRM) 기술에 의해서 보호된 콘텐츠를 전송하기 위한 기술. 디지털 전송 콘텐츠 보호 기술은 콘텐츠를 암호화하여 IP 네트워크에 송신하므로 패킷 도청에 의한 콘텐츠 불법 복제를 방지할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"디지털 클리어링 하우스 (Digital Clearing House)","클리어링 하우스는 디지털 저작권 라이선싱을 중개하고 라이선스 발급을 수행하는 정산소(精算所)로서 라이선서(licensor)와 라이선시(licensee)가 아닌 제3의 운영주체가 운영한다. \r\n\r\n저작재산권이 양도되는 경로에 대한 관련정보를 생성하고 관리하고 디지털 저작물 이용 내역을 근거로 신뢰할 수 있는 저작권료 정산 및 분배가 이루어지도록 한다. 모니터링 서비스를 지원하여 디지털 저작물의 이용 내역을 근거로 신뢰할 수 있는 저작권료의 정산 및 분배가 이루어진다.");
// insertDB(frstRegisterId, glossaryService,"디지털리빙 네크워크연합 / DLNA (Digital Living Network Alliance)","2003년 소니가 설립한 네트워크로서 245여개 소비자 전자가전 업체들이 참여하고 있다. \r\n\r\nDLNA는 공개된 기술표준에 기반하여 상호 호환이 가능한 홈네트워크 플랫폼을 구축했으며 기기 간 미디어 전송과 제어를 위한 네트워크 기술 표준을 채택하고 있다. 25,000가지에 이르는 DLNA 인증을 받은 TV, 뮤직 플레이어, 블루레이 플레이어, 게임용 스테이션(PS3, Xbox) 등 디지털 기기들은 와이파이, 이더넷, 블루투스 네트워크 환경에서 HTTP, RTP/RSTP등 프로토콜을 이용하여 이미지, 음악, 동영상 콘텐츠를 공유할 수 있다. \r\n\r\n콘텐츠 불법 복제방지를 위한 DLNA 가이드라인은 Link Protection 기술을 제시하였고 콘텐츠 보호를 위해 암호화 기술 및 DLNA 인증된 기기들을 식별한다. Link Protection을 위한 필수적 기술로는 DTCP-IP(Digital Transmission Content Protection over IP), 선택 기술로 마이크로소프트의 WMDRM-ND를 택하였다. DLNA 콘텐츠 보호 위원회는 콘텐츠 보호기술의 상호연동을 위한 솔루션으로 DRM Interoperability Solutions(DIS)를 발표했다.");
// insertDB(frstRegisterId, glossaryService,"라 카르테 방식 (A-La-Carte)","기존의 여러 방송용 채널들을 묶어 하나의 서비스로 시청자들에게 제공하는 방식을 탈피해 원하는 각 채널을 분리하여 개별적으로 시청료를 지불하는 방식이다. 방송 콘텐츠를 시청자가 원하는 형태로 제공하고 그에 근거한 과금 체계를 말한다.");
// insertDB(frstRegisterId, glossaryService,"라이브 포렌식 (Live Forensic)","전원이 켜져 있는 시스템을 대상으로 포렌식을 수행한다. 디스크 포렌식 등으로 수집이 불가능한 경우(예를 들면, 대상 컴퓨터를 끌 수 없거나 프로세스 정보 등 실시간 휘발성 데이터가 포렌식 대상인 경우)에 수행하는 포렌식 기술을 의미한다.");
// insertDB(frstRegisterId, glossaryService,"라이선스 (License)","저작자나 저작인접권자가 일정한 방법과 조건에 따라 라이선시(licensee)에게 저작물의 사용을 허락하는 의사표시. \r\n\r\n라이선스 계약은 저작물의 매매나 저작권 자체의 이전과는 구분된다. 저작재산권 양도가 아니며 사용허락 범위에 따른 제한을 받는다. 비배타적 라이선싱도 가능하므로 저작권자가 비배타적 이용허락을 한 이후 제3자에게 유사한 허락을 하더라도 적법하다. \r\n\r\n라이선시(licensee)도 이용을 허락받은 범위 내에서 다른 제3자에게 사용을 허용할 수 있다. 라이선스를 허용할 것인지 여부는 저작권자의 자유이지만, 베른협약(Berne Convention) 및 각국 저작권법은 일정한 경우 허락 없이도 법정허락을 허용하는 규정을 두고 있다.");
// insertDB(frstRegisterId, glossaryService,"루팅 (Rooting)","안드로이드 운영체제에서 디지털 기기에 대한 최상위의 관리자 권한을 획득하는 것. 원래의 디지털 기기는 정보 보호 등의 목적으로 잠겨있으나 루팅에 성공하면 모든 파일, 프로그램 및 숨겨진 시스템 영역에 접근 권한을 확보하게 된다.");
// insertDB(frstRegisterId, glossaryService,"리디움 개발툴킷 / 리디움 SDK (Readium Software Development Kit, Readium SDK)","ePub 3.0을 지원하는 전자책 어플리케이션의 개발을 돕기 위해 리디움 프로젝트의 일부로서 개발되었으며, 웹 및 스마트 앱 등에 최적화된 ePub 3.0 랜더링 엔진을 제공한다. Readium SDK는 클로스 플랫폼을 지원하고자 C++ 언어로 개발되었으며 자바스크립트, 자바, 시샵(C#) 등과 함께 사용이 가능하다.");
// insertDB(frstRegisterId, glossaryService,"리디움 경량화 콘텐츠 보호 기술 / 리디움 LCP (Readium Lightweight Content Protection, Readium LCP)","리디움 재단이 만든 전자책 보호 기술. 일반적 디지털 저작권 관리(DRM) 기술이 엄격한 보안 정책으로 사용자의 편의성을 떨어뜨린다는 점에서 리디움 프로젝트가 출발하였다. 사용자가 설정한 비밀번호를 사용하여 전자책을 암호화하므로 비밀번호를 아는 사용자라면 전자책을 이용할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"리디움 재단 (Readium Foundation)","전자출판의 국제 표준을 주도하고 있는 국제디지털출판포럼(IDPF)에서 2013년 2월에 설립한 단체로, 전자책 기술 표준ePub 3.0의 확산을 가속화하고자 Readium Web, Readium SDK 등 공개 소프트웨어 기반 프로젝트를 진행하고 있다.");
// insertDB(frstRegisterId, glossaryService,"리디움 콘텐츠 보호기술 / 리디움 SCP (Readium Secure Content Protection, Readium SCP)","일반 상용 디지털 저작권 관리(DRM) 기술에서 제공되는 수준의 보안성을 제공하면서 전자책 기술표준 ePub 3.0 보안 가이드를 따르는 디지털 저작권 관리(DRM) 기술 간 상호 운용성을 보장하는 전자책 보호 기술이다.");
// insertDB(frstRegisterId, glossaryService,"리캡차 (ReCAPTCHA)","캡차는 기계가 아니라 사람이 로그인 한다는 점을 확인하기 위해 사용됐지만, 리챕차는 수많은 사람들이 캡차에 입력하는 정보가 방대하다는 점을 이용하여 기계적 독해로는 불가능한 고문서적의 일부를 사람들이 인식하고 입력하도록 유도한다. \r\n\r\nreCAPTCHA(리캡차)는 두개의 단어들로 조합되어 있다. 하나는 인증을 위한 단어이며, 다른 하나는 미국도서관에서 오래된 종이 문서를 판독하여 디지털 형태로 문서화(digital archive)에 사용되는 OCR(광학판독) 프로그램에서 발생하는 오류를 바로 잡는데 사용된다.");
// insertDB(frstRegisterId, glossaryService,"리핑 (Ripping)","CD/DVD에 저장된 오디오, 비디오, 게임 등을 컴퓨터로 처리할 수 있도록 파일 형태로 추출하는 것을 말한다.\r\n\r\n일반적으로 사적 이용을 위해 리핑을 통한 콘텐츠 복제는 허용되지만 대가를 목적으로 타인에게 리핑된 파일을 공유하거나 P2P, 웹하드 등을 통해 불특정 다수에게 배포하는 행위는 불법이다.");
// insertDB(frstRegisterId, glossaryService,"링크 보호 (Link Protection)","저작권 있는 창작물을 디지털 기기 사이에 전송할 때 복제되지 않도록 막는 기술로 링크 암호화(Link Encrypter)와 링크 복호화(Link Decrypter)로 구성된다.\r\n\r\n링크 암호화는 링크 복호화기와 상호 인증 과정과 공유키 생성 과정을 통해 디지털 신호를 암호화해서 전송하는 기능을 제공하며, 링크 복호화는 전송된 신호를 복호화한다. 디지털 콘텐츠 전송 과정에서 불법복제 방지를 위해 다양한 저작권 보호기술에서 사용되고 있으며, DLNA의 DTCP-IP, DCI의 Link Encryption/Link Decryption 기술, HDCP 등이 대표적 사례라고 할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"링크 콘텐츠 연합 / LCC (Linked Content Coalition)","전 세계적으로 형성된 식별자 네트워크(Identifier Network)를 통해 저작권자 식별을 용이하게 하여 저작물 보호와 관리를 효과적으로 향상시키려는 목적에서 2012년 시작된 비영리 단체(www.linkedcontentcoalition.org/). 링크 콘텐츠 연합은 권리데이터 유통망 내에서 상호 운용성이 있는 식별자와 메타데이터를 활용하여 권리 정보에 대한 데이터 관리의 효율성을 높였다. 저작권자와 사용자 간의 자동화된 커뮤니케이션을 위해 다양한 권리를 컴퓨터가 인식 가능한 데이터로 표현할 수 있도록 자원을 제공하고, 이 데이터를 상호 연동하는 솔루션을 개발하고 있다.");
// insertDB(frstRegisterId, glossaryService,"말린 저작권 관리기술 (Marlin DRM)","말린 개발자 커뮤니티(Marlin Developer Community)에 의해 개발된 저작권 관리(DRM) 기술로서, 구매한 저작권 있는 콘텐츠를 다양한 단말기들에서 공유하여 사용할 수 있도록 도메인 기술을 지원하고 있다");
// insertDB(frstRegisterId, glossaryService,"말린 개발자 커뮤니티 / MDC (Marlin Developer Community)","Intertrust, Panasonic, Philips, Samsung, Sony가 차세대 디지털 저작권 관리기술을 위한 오픈 표준을 개발하고자 2006년에 만들어진 커뮤니티를 말한다.");
// insertDB(frstRegisterId, glossaryService,"말린 트러스트 관리기구 / MTMO (Marlin Trust Management Organization)","말린이 개발한 디지털 저작권 관리(Marlin DRM) 기술 등을 서비스하기 위한 조직(www.marlin-trust.com). ① 지식재산권(비특허)으로 보호되는 말린 기술을 이용하기 위한 상업용 라이선스를 제공 ② 말린 제품과 서비스를 위한 키 관리 및 인증 서비스를 제공 ③ 말린 제품 및 서비스의 이용과 관련한 준수의무(compliance)와 강건성(robustness)을 위한 규칙을 집행하며 ④ 말린 생태계를 위한 보안인증의 갱신(renewability) 서비스를 수행한다.");
// insertDB(frstRegisterId, glossaryService,"매쉬업 (Meshup)","정보와 서비스를 융합하여 새로운 소프트웨어나 서비스, 데이터베이스 등을 제공하는 것. 구글이나 야후, 마이크로소프트 등이 제공하는 지도 서비스, 인터넷 서점 아마존이 제공하는 상품 정보 등, 자사의 기술을 웹서비스로서 API를 공개하는 경우가 늘고 있다.");
// insertDB(frstRegisterId, glossaryService,"매쉬업 응용 프로그램 인터페이스 (Meshup API)","두 개 이상 디바이스 응용 프로그램 인터페이스(API)를 조합하여 매쉬업 서비스를 제공하는 개방형 응용 프로그램 인터페이스(Open API). 매쉬업 플랫폼 (http://open-mashup.com)에서 생성할 수 있으며, 개별적인 생성도 가능하다. 디바이스 플랫폼(Device Platform)으로부터 수집된 두 개 이상의 데이터를 매쉬업 플랫폼에서 조합하는 방식이다.");
// insertDB(frstRegisterId, glossaryService,"매직게이트 (MagicGate)","일본 소니가 개발한 멀티미디어 데이터 저작권 보호 기술. 메모리 스틱 제품이나 플레이 스테이션(Play station) 2에 쓰는 메모리 카드 등에 도입되고 있다. \r\n\r\n매직 게이트에는 저작권이 보호된 음악 등의 데이터는 암호화되어, 인증에 의해 정품이라고 인정된 기기 또는 기기간에만 데이터의 재생이나 이동이 가능하다. 매직 게이트는 IBM이 개발한 전자 미디어 관리시스템(EMMS, Electronic Media Management System)과의 상호 운용이 가능하다");
// insertDB(frstRegisterId, glossaryService,"맵리듀스 (MapReduce)","페타바이트(Petabyte) 이상의 대량 데이터를 분산 병렬 컴퓨팅에서 수행하기 위한 소프트웨어 프레임워크. 맵(Map) 단계는 흩어져 있는 데이터를 데이터끼리 묶어 임시 데이터 집합으로 변형하며, 리듀스(Reduce) 단계는 맵 작업으로 생성된 임시 데이터에서 중복 데이터를 제거하여 데이터를 추출한다. \r\n\r\n각 단계는 입력과 출력을 위한 키-값을 가진다. 맵리듀스는 함수형 프로그래밍에서 사용되는 Map과 Reduce라는 함수를 기반으로 한다. 맵리듀스는 Java, C++ 등 언어에 적용이 가능하며 아파치 하둡 기반의 맵리듀스는 오픈소스 소프트웨어로 적용된다.");
// insertDB(frstRegisterId, glossaryService,"멀티 채널 네트워크 / MCN (Multi Channel Network)","다수의 1인 창작자에 의한 콘텐츠 생산, 유통, 판매, 저작권 관리를 의미. 인기가 높은 1인 창작자에게 촬영 스튜디오, 방송장비, 마케팅 등을 지원해주고 다양한 콘텐츠를 확보하는 신종 미디어 사업. 유튜브에 동영상을 올리는 개인 채널 가운데 인기가 높고 수익을 내자, 이들을 묶어 관리하는 개념으로 Multi Channel Network가 등장했다. \r\n\r\n초기에는 대형 방송사, 케이블 네트워크, 영화 제작사들은 멀티 채널 네트워크에 콘텐츠 공급을 거부했다. 그러나 창작자와 멀티채널 네트워크(MCN)가 수익을 발생시키자 거대 미디어 회사들이 투자하기 시작했다. 머시니마(Machinicma)는 비디오 게임 콘텐츠를 다루고, 테이스트메이드(Tastemade)는 음식, 여행, 요리법을 비디오로 제공하고, 스타일 홀(Style Haul)은 다수의 미용 분야 1인 창작자들을 보유하고 있다. 풀스크린(Fullscreen)은 게임, 코메디, 음악 채널을 주로 제공하며 6억 명의 구독자와 7만명의 1인 창작자들을 보유하고 있다.");
// insertDB(frstRegisterId, glossaryService,"메다데이터 (Metadata)","정보자원에 대한 정보로서 데이터를 정의하고 설명한다. 컴퓨터에서는 데이터 사전의 내용, 스키마 등을 의미하고, 하이퍼텍스트생성언어(HTML) 문서에서는 메타태그 내의 내용이 메타데이터이다. \r\n\r\n방송에서는 프로그램 촬영 일시, 장소, 작가, 출연자 등이 메타데이터이며, 음원의 경우 작곡자나 가수명이 메타데이터이다. MPEG는 메타데이터 표준으로 MPEG-7 표준을 제정했다. INDECS(Interoperability of Data in E-Commerce Systems)은 DOI를 위한 메타데이터로 채택되어 활발하게 연구되고 있다.");
// insertDB(frstRegisterId, glossaryService,"모바일 AP (Mobile Application Processor)","스마트폰, 태블릿PC 등의 구동에 필요한 운영체제, 어플리케이션 작동을 위한 중앙연산장치(CPU), 시스템 장치, 인터페이스를 통제하는 기능을 하나의 칩에 포함한(System-On-Chip) 형태이다");
// insertDB(frstRegisterId, glossaryService,"모자이크 공격 (Mosaic Attack)","포렌식마크가 적용된 여러 개의 콘텐츠를 조각내고, 조각들을 합쳐서 원본과 같은 콘텐츠를 얻는 공격. 모자이크 공격으로 얻은 콘텐츠는 포렌식마크를 훼손하여 저작권 정보와 구매자 정보를 인식할 수 없게 한다.");
// insertDB(frstRegisterId, glossaryService,"모질라 공중 라이선스 / MPL (Mozilla Public License)","모질라 계열의 소프트웨어에 부착된 라이선스로 버클리 소프트웨어 배포 BSD(Berkeley Software Distribution) 라이선스와 GNU 일반 공중 사용 라이선스의 내용을 혼합했다. 원본 및 수정코드를 MPL에 의해 배포해야 하며 배포시 MPL 라이선스를 사본에 첨부해야 한다. 수정코드에 대한 소스코드를 전자 배포방식 등을 통해 제공해야 한다. 동영상 인코딩 프로그램 미디어 코더(Media Coder), 영화 및 비디오 편집용 솔루션 미디어 콤포저(Media Composer)가 MPL을 따른다. MPL은 썬 마이크로시스템즈에 의해 공동개발 및 배포 라이선스(CDDL)라는 라이선스로 개조되어 오픈솔라리스에 적용되었다.");
// insertDB(frstRegisterId, glossaryService,"무비랩스 (MovieLabs)","파라마운트 픽처스, 소니 픽처스, 21세기 폭스사, 유니버셜 시티 스튜디오, 월트 디즈니, 워너 브라더스가 설립한 비영리 합작 벤처(http://movielabs.com/). 영화 콘텐츠를 소비자 매체의 형태로 유통하기 위해 필요한 기술적인 안내와 혁신적인 기술들(영화 콘텐츠에 대한 합법적인 사용 촉진, 저작권 침해 억제 기술, 디지털 유통 기술, 네트워킹 및 접속 기술)을 발굴하기 위한 투자를 하고 있다.");
// insertDB(frstRegisterId, glossaryService,"뮤토렌트 (μTorrent, uTorrent)","C++언어로 작성되어 무료로 제공되는 멀티플랫폼 비트토렌트 클라이언트이다. 뮤(μ)는 마이크로를 뜻한다.\r\n\r\n2005년 등장한 이래 여러 언어의 번역본이 제공되고 있으며 비트토렌트 클라이언트와 비교해 거의 동일한 기능을 제공하면서도 컴퓨터 자원을 적게 사용하도록 설계되었다.");
// insertDB(frstRegisterId, glossaryService,"미국 국립정보기술원 / CNRI (Corporation for National Research Initiatives)","1986년 결성된 비영리단체로서 공익을 위한 연구를 수행하고 진흥하는 활동을 한다(https://www.cnri.reston.va.us). \r\n\r\n1997년 CNRI가 프랑크푸르트 도서전에서 선보인 DOI 체계는 URN 개념을 실제로 구현해 냈다. CNRI이 DOI 개념을 실제 응용한 시스템을 선보인 이후 국제 DOI 재단(IDF)이 설립되었고, URL체제를 대신하는 DOI가 국제 표준으로 선정 되었다. 국립정보기술원이 운영하는 디지털 객체 아카이브는 handle.Net Registry(www.handle.net)이다.");
// insertDB(frstRegisterId, glossaryService,"반정형 데이터 (Semi-Structured Data)","고정된 필드에 저장되지는 않지만 메타 데이터, 스키마를 포함하는 데이터. HTML, XML 등 웹 문서가 사례들이다.");
// insertDB(frstRegisterId, glossaryService,"방송 콘텐츠 암호화 키 / CW (Control Word)","방송 콘텐츠는 암호화 키(CW)로 암호화되어 ECM(Entitlement Control Message)를 통해 방송된다. 보안을 유지하기 위해 방송 암호화 키(CW)는 주기적으로 전송된다. ECM(Entitlement Control Message)은 암호화 키(CW)를 얻기 위해서 사용되는 데이터이다. \r\n\r\nECM을 스마트카드에 보내면 스마트카드는 CW를 셋톱박스에 보낸다. 셋톱박스는 ECM을 수신한 다음에 수신된 제어변수와 수신기 인증변수(authentication parameter)를 비교하여 정당한 사용자로 판단되면 암호화 키(CW)를 해독하여 콘텐츠를 복호화한다.");
// insertDB(frstRegisterId, glossaryService,"버스트 커팅 영역 / BCA (Burst Cutting Area)","DVD, HD DVD, 블루레이 디스크의 중심에 있는 원형 영역. 코드, 제조 정보, 일련번호 등 부가 정보를 디스크마다 기록하여 매체마다 유일한 식별 정보가 기록된다.");
// insertDB(frstRegisterId, glossaryService,"버전 업그레이드 라이선스 (Version Upgrade License)","동일 제품의 새로운 버전이 출시되었을 때에 적용하는 업그레이드 라이선스이다. 이때 하위 버전의 라이선스는 새로운 버전의 라이선스를 받기 위해 필수적으로 필요하며, 라이선스 업그레이드 후에는 별도로 분리하여 양도될 수 없다.");
// insertDB(frstRegisterId, glossaryService,"번들 소프트웨어 (Bundle Software)","하드웨어 또는 소프트웨어에 묶어서 공급되는 소프트웨어를 말하며, 보통 컴퓨터 또는 컴퓨터 하드웨어 장치를 구매할 때 부속물로 함께 제공된다. 해당 하드웨어와 소프트웨어에 대해서 효력이 있으며 다른 하드웨어에 설치할 때에는 라이선스를 인정받지 못한다.");
// insertDB(frstRegisterId, glossaryService,"보안 소켓 레이어 / SSL (Secure Socket Layer)","SSL은 보안을 위한 프로토콜의 일종으로 이 프로토콜은 처음에 Netscape사에서 웹서버와 브라우저 사이의 보안을 위해 만들었다. \r\n\r\nSSL은 Certificate Authority(CA)라 불리는 제3자 서버와 클라이언트의 인증을 하는데 사용된다. SSL의 작동방식은 ① SSL로 암호화된 페이지를 요청(https://가 사용된다), ② 공개키(Public Key)를 인증서와 함께 전송, ③ 인증서가 신뢰 가능한 인증기관(root CA)이 서명한 것인지 확인하는데, 날짜가 유효한지, 인증서가 접속하려는 사이트와 관련되어 있는가를 확인(Internet Explorer나 Netscape 웹브라우저에는 이미 Verisign, Thawte의 인증서가 설치되어 있음), ④ 랜덤 대칭 암호화 키(Random symmetricencryption key)와 URL, http 데이터들을 암호화해서 전송, ⑤ 개인기(Private Key)를 이용해 서 랜덤 대칭 암호화키와 URL, http 데이터를 복호화, ⑥ 요청받은 URL에 대한 응답을 웹브라우저로부터 받은 랜덤 대칭 암호화 키를 이용하여 암호화해서 브라우저로 전송, ⑦ 대칭키를 이용해서 http 데이터와 html 문서를 복호화하고, 사용자의 화면에 정보를 게시한다.");
// insertDB(frstRegisterId, glossaryService,"보안인증의 갱신 (Renewability)","디지털 디바이스 및 시스템 모듈은 악의적 목적을 가진 해커에 의해 변형되어 사용될 수 있다. 암호화 키, 보안 알고리즘, 인증서 등이 대표적 공격 대상이다. 보안 요소가 무력화 된다면 그 기술을 이용하는 콘텐츠의 불법 복제가 발생하게 된다. 해킹이 발생하였을 경우, 디바이스와 시스템 보안 인증을 폐기하여 더 이상 사용할 수 없도록 만드는 기술적 조치로 보안 모듈의 갱신이 필요하다. HDCP, DTCP, CPRM, OpenCable CPT, SmartRight 등 콘텐츠 보호기술은 보안 모듈의 안정성을 확인하고 안전하지 않다고 판단되는 모듈의 동작을 차단하기 위하여 수행하는 키 정보값 갱신, 보안 모듈 업그레이드, 보안 인증서의 폐기 및 갱신 등의 기술적 조치를 의미한다.");
// insertDB(frstRegisterId, glossaryService,"복제방지 기술 워킹그룹 / CPTWG (Copy Protection Technical Working Group)","미국영화협회(MPAA), 음반산업협회(RIAA), 정보통신 업계의 다양한 전문가들이 자발적인 모임을 통해 DVD와 디지털 방송의 저작권보호기술에 대한 최적의 솔루션을 선정하는 비영리단체. \r\n\r\nDHSG, CSS, APS, ARDG, DTDG, BPDG 등의 ad-hoc 그룹을 운영하여 DVD CSS, DTCP, CPPM/ CPRM, HDCP, broadcast flag 등 다양한 산업 표준을 선정한 바 있다. 이러한 기술들이 강제적 구속력은 없지만 많은 산업단체에서 기술표준으로 받아들이고 있어 사실상(de-facto) 표준으로 인정받고 있다.");
// insertDB(frstRegisterId, glossaryService,"복제제어정보 / CCI (Copy Control Information)","VCR, DVD, 블루레이, 케이블(CA) TV 등을 통해서 전달되는 방송 콘텐츠의 저작권 보호를 위해 삽입된 2비트 정보. \r\n\r\nCopy Freely(0x00), Copy No More(0x01), Copy Once(0x02), CopyNever(0x03) 등 복사 허용 정보를 담고 있다. 연방통신위원회(FCC)의 Plug and Play 규정에 따라 콘텐츠를 수신 또는 재생하는 디지털 기기는 CCI 정보를 해석하여 콘텐츠의 복사를 제어해야 할 의무가 있다.");
// insertDB(frstRegisterId, glossaryService,"복합 라이선스 (Multi Licenses)","두 개 이상 상이한 라이선스들을 소프트웨어 사용과 관련하여 동시에 적용하기로 결정한 경우. \r\n\r\n예컨대 듀얼 라이선스(dual-license)가 적용되는 소프트웨어는 2개의 다른 라이선스들의 조건을 충족하는 범위 내에서만 사용해야 한다. 복합 라이선스가 적용되는 오픈소스 소프트웨어라면 이용 조건이 복잡하므로 사용 범위에 대한 규범적 해석에 유의할 필요가 있다.");
// insertDB(frstRegisterId, glossaryService,"복합 변형 공격 (Multi-transformation Attack)","복합 변형은 동영상, 음악 등의 콘텐츠에서 복합적으로 여러 가지 변형 공격을 하는 것을 의미한다. 필터링 성능 평가에서 음악은 코덱 변환, 속도 변환 등을, 동영상에서는 영상 압축, 코덱 변환 등 변형 항목을 동시에 적용하는 공격 유형이다.");
// insertDB(frstRegisterId, glossaryService,"불법복제 추적 기술 (Traitor Tracing)","합법적 라이선스를 받지 않은 콘텐츠 복제물이 발견된 경우 그 출처를 추적하기 위한 탐지 기술이다. \r\n\r\n개인용 컴퓨터와 랩톱만 사용하던 때에는 저작권 관리(DRM)를 통한 접근차단용 기술만으로 충분했지만 스마트폰 및 마이크로기기를 활용하는 시대에는 추적 기술이 필요하다고 여겨진다.\r\n\r\n※ 예: 콘텐츠 저작자는 배포하는 콘텐츠 복사본별로 핑거프린트와 같은 유일한 값을 삽입하고 향후 불법 복사 및 공유가 발생하였을 때 이 유일한 값을 확인하여 배포자를 추적할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"불법저작물 추적관리시스템 / ICOP (Illegal Copyrights Obstruction Program)","한국저작권단체연합회 저작권보호센터에서 운영하는 불법저작물 추적관리시스템(http://icpc.kr/). 인터넷에서 불법적으로 유통되는 저작물을 추적하고 검색하여 저작물이 삭제될 수 있도록 지원한다. 웹하드, P2P 등 특수한 온라인 서비스 제공자(OSP) 뿐만 아니라 포털, 카페, 블로그, UCC 사이트를 자동으로 검색하고 저작물 내용의 특징을 인식하여 불법 저작물을 모니터링한다.");
// insertDB(frstRegisterId, glossaryService,"브로드캐스트 플래그 규정 (Broadcast Flag)","디지털 방송물의 무단 복제 방지를 위하여 방송 신호에 재배포 허용 비트를 포함하여, 저작권 보호기술을 장착한 VCR, TiVo, DVD recorder, 홈 시어터 등 수신용 기기에서만 방송 콘텐츠를 저장할 수 있게 한다. \r\n\r\n케이블, 위성 방송의 유료서비스, DVD 판매에서 발생할 수 있는 손실을 미리 차단하여 할리우드 제작사의 HD 제작을 촉진하려는 전략이었다. 미국 연방통신위원회(FCC)는 2006년부터 디지털 TV는 모두 ‘콘텐츠 보호’ 기술에 대한 장착을 의무화할 예정이었으나 연방법원이 American Library Association v. FCC 소송에서 연방통신위원회에게 브로드캐스트 플래그를 의무화할 수 있는 권한이 없다고 판단한 이후 공식적으로 폐기되었다.");
// insertDB(frstRegisterId, glossaryService,"블라인드 워터마킹 (Blind Watermarking)","이미지, 오디오, 동영상 등에 저작권 정보가 포함된 워터마크를 삽입하고 향후 저작권 정보를 확인할 때 원본이 없어도 워터마크를 추출할 수 있는 워터마킹 기술이다.");
// insertDB(frstRegisterId, glossaryService,"블랙박스 암호 (Black Box Cryptography)","암호화 과정에 필요한 암호화 키(Key)는 블랙 박스로 가정한 암호화 장치 내부에 들어 있다. \r\n\r\n블랙 박스는 ‘그 안이 들여다 보이지 않는다’는 의미이다. 즉 암호화 장치를 설계할 때 크래커가 이 암호화 장치 내부는 들여다 볼 수 없다고 가정하는 것이다. 따라서 크래커는 평문과 그 결과물인 암호화문 두 개의 입출력 값만 볼 수 있다. 크래커는 이 두 개의 입출력 값을 계속해서 관찰하여 어떤 패턴을 알아내고자 할 것이다. 블랙 박스는 단순히 암호화 장치의 설계자가 이 암호화 장치 자체는 ‘완벽히 안전하다’고 가정하는 것이다. 즉 블랙 박스로 가정하는 것이다. 따라서 만에 하나, 이 암호화 장치 자체가 뚫려 버리면 암호화 키가 누출될 수 있다. 암호화 키가 누출되면 모든 암호화 과정은 크래커에게 완전히 공개된다.");
// insertDB(frstRegisterId, glossaryService,"블록체인 (Blockchain)","비트 코인(Bitcoin)의 핵심 기술로 분산 네트워크로 연결된 서로 신뢰할 수 없는 개인들이 안전한 거래(transaction)를 하도록 한다. \r\n\r\nPow(Proof of Work) 합의 알고리즘에 기반하여 개별적인 거래 내역을 기록한 블록을 순서대로 체인처럼 연결하는 방식이다. 각 블록에는 거래에 참여한 개인의 작업 증명(proof of work)과 암호화된 서명이 추가된다. 해시함수를 통하여 창작자와 이용자 간의 안전한 거래를 보장하므로 저작권 관리(DRM) 기술을 대체할 수 있다고 평가된다.");
// insertDB(frstRegisterId, glossaryService,"블루레이 디스크 플러스 / BD+ (Blu-ray Disc Plus)","Cryptography Research가 개발한 자가보호 디지털 콘텐츠 SPDC(Self-protection Digital Content) 기술을 기반으로 하며 플레이어에 내장된 가상 머신과 디스크에 저장된 콘텐츠에 내장된 실행 코드가 상호 인증을 통해 콘텐츠 복호와 재생을 허용한다. \r\n\r\nAACS가 플레이어의 물리적 레이어, 콘텐츠 레이어에 적용된 기술이라면 BD+는 타이틀 레이어에 적용된 기술이며 다른 콘텐츠 보호 기술과 비교하여 보안 취약점의 패치가 지속적으로 가능하므로 반복적 해킹에 대응이 가능하다. BD+는 HD DVD에서 사용되는 AACS 기술과 차별화되는 보안 기술로 인정되면서 차세대 DVD 표준화 경쟁에서 블루레이가 우위를 점하는 계기가 되었다.");
// insertDB(frstRegisterId, glossaryService,"비디오 DNA (Video DNA)","콘텐츠에 포함된 영상 신호의 특징 정보를 의미하는 용어. 음성(오디오) 신호의 특징 정보에 해당하는 ‘오디오 DNA와 함께 콘텐츠를 구분짓는 고유한 특징정보가 ‘비디오 DNA이다.\r\n\r\n비디오 DNA라는 특징정보를 이용하여 콘텐츠를 판별하는 콘텐츠 인식기술이 콘텐츠 필터링에 주로 활용되고 있다. 영상 자체를 지문처럼 인식해 추적하는 기술로서 검색어 기반 필터링 또는 해시 기반 필터링 기술에 비해서 저작권을 효율적으로 관리할 수 있다. 원본 영상에서 추출한 전체 DNA(비디오 DNA 및 오디오 DNA)와 비교 대상 콘텐츠의 DNA를 비교하여 일치 정도에 따라 콘텐츠의 무단 복제여부를 판별한다. 비디오 DNA 기술을 이용하면 저작권자가 불법적으로 복제된 영상물의 유통을 인식할 수 있으므로 차단하거나 요금을 부과할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"비정형 데이터 (Unstructured Data)","특별한 구조가 없는 텍스트, 이미지, 음성, 동영상 데이터로서 빅데이터의 80% 이상을 차지한다.");
// insertDB(frstRegisterId, glossaryService,"비트 토렌트 (Bit Torrent)","인터넷상에서 빠른 속도로 원하는 파일을 공유하기 위해 만들어진 방식으로, 사용자 사이에 직접 파일을 여러 조각으로 나누어 공유하는 프로토콜 또는 프로그램. \r\n\r\n토렌트 사용자는 토렌트 소프트웨어를 설치하고 다운로드 받은 시드 파일(seed file)을 실행하여 동일 파일을 소유하는 피어(peer)에서 공유 파일을 다운로드한다. 그러나 사용자 인증 및 결제 절차가 존재하지 않아 저작권자의 허락이 없이도 저작물을 불특정 다수와 공유하기 위한 수단으로 사용될 수 있다.");
// insertDB(frstRegisterId, glossaryService,"비트코인 (Bitcoin)","온라인에서 사용되는 디지털 통화로서 통화를 발행하고 관리하는 중앙장치가 존재하지 않는다. \r\n\r\n비트코인의 거래는 P2P 기반 분산 데이터베이스에 의해 이루어지며 공개키 암호방식 기반으로 거래를 수행한다. 비트코인은 익명성과 공개성이 있으며 지갑 파일의 형태로 저장된다. 이 지갑에는 고유 주소가 부여되며 그 주소를 기반으로 비트코인 거래가 이루어진다.");
// insertDB(frstRegisterId, glossaryService,"빅데이터 (Big Data)","기존 데이터베이스 관리도구로 수집, 저장, 관리, 분석이 가능한 데이터셋(dataset) 규모를 넘는 대량 데이터를 의미. 아날로그 환경에서 생성되던 데이터에 비해서 빅데이터는 규모가 방대하고, 생성주기도 짧고, 데이터 형태도 수치, 문자, 영상, 위치정보를 포함한다.\r\n\r\n빅데이터를 처리하려면 필수적으로 요구되는 데이터의 분산처리는 클라우드의 핵심적인 기술이다. 정형(Structured) 또는 비정형(Unstructured) 데이터에서 유의미한 정보를 찾아내고 검색하기 위해서 검색 애플리케이션 기술이 개발되고 있다. 빅데이터에 대한 실시간 처리와 분석을 위해 인메모리(in-memory) 컴퓨팅이 주목받고 있다. 소셜미디어 등 비정형 데이터의 증가로 인하여 텍스트 마이닝, 오피니언 마이닝, 소셜 네트워크 분석, 군집분석 등이 등장했다.");
// insertDB(frstRegisterId, glossaryService,"사이멀크립트 (SimulCrypt)","하나의 방송 시스템에서 여러 개의 제한 수신 기술들이 동시에 운영될 수 있도록 헤드엔드 시스템 컴포넌트 간의 메시지 인터페이스를 DVB(Digital Video Broadcasting) 표준조직에서 정의한 기술 규격이다. 하나의 방송시스템에서 여러 제한적 방송수신 시스템(CAS) 기술이 공존하여 운영될 수 있도록 하되 각 CAS 벤더 기술의 지적재산권은 보호해야 한다는 배경에서 탄생하였다. DVB Simulcrypt 규격(ETSI TS 103 197, “DVB(Digital Video Broadcasting); Head-end implementation of DVB Simulcrypt”)은 두 개 이상의 제한적 방송수신 시스템(CAS)이 상호 운영되도록 헤드엔드 아키텍처 및 컴포넌트, CAS 컴포넌트 간의 메시징 인터페이스 구조, 시간 동기화 관계 등을 정의하고 있다. 사이멀크립트는 각 CAS 기술공급사의 기업 콘텐츠 관리도구(ECM), 전자 미디어 관리 시스템(EMM)내부 구조와 운영 방식을 노출하지 않은 상태에서 각 CAS 기술의 효율성 및 안전성에 맞추어 ECM/EMM을 생성하고 전달한다.");
// insertDB(frstRegisterId, glossaryService,"사이트 라이선스 (Site License)","소프트웨어 저작권자와 사용자 간에 이용 범위(사용 주체, 저작권의 사용 범위와 유형, 다운로드 받는 컴퓨터의 IP 주소 등)를 정하여 일괄적으로 계약하는 라이선스이다. \r\n\r\n사이트는 특정 건물 등 지리적 범위만을 의미하지는 않으며 사용자의 이용권 범위를 뜻하기도 한다. 사업장 및 학교 등 대형 기관들은 개별적 라이선스가 아닌 할인 가격으로 사이트 라이선스를 맺는 경우가 많으며 합의된 조건 범위 내에서 소프트웨어를 다운받아 사용할 수 있다. 한편, 동시 사용 라이선스(Concurrent Usage License) 또는 동시 사이트 라이선스 (Concurrent Site License)는 소프트웨어 및 저작물에 동시에 접속하는 사용자 수를 한정하고 라이선스 대가를 산정한다.");
// insertDB(frstRegisterId, glossaryService,"사전 저장된 미디어 보호 기술 / CPPM (Content Protection for Pre-Recorded Media)","음원, 영상, 비디오 등 저작권 있는 창작물이 수록된 광디스크(optical disc)의 무단 불법복제를 방지하려는 목적으로 개발. 1999년 IBM, Intel, Matsushita Electric, Toshiba 등으로 구성된 4C Entities에서 개발했다.");
// insertDB(frstRegisterId, glossaryService,"샌드박스 (Sandbox)","외부의 신뢰할 수 없는 프로그램을 운영 시스템과 분리된 별도의 영역에서 작동시켜 시스템이 부정하게 조작되는 것을 방지하기 위한 보안 소프트웨어 기술. \r\n\r\n예를 들어 샌드박스는 외부에서 받은 프로그램을 자바 가상머신(Java Virtual Machine)영역 안에 가둔 뒤 작동시키는 방법으로 프로그램의 폭주 또는 악성 바이러스의 침투를 막는다.");
// insertDB(frstRegisterId, glossaryService,"생산자 개발방식 / ODM (Original Design Manufacturing)","주문자 상표 부착 방식(OEM)이 주문자가 완성한 설계도를 받아다가 그대로 제조하는 방식이라면, 생산자 개발방식(ODM)은 제작자가 제품의 개발과 생산을 책임지는 방식이다.\r\n\r\n예를 들어 대만의 제조업체 HTC는 스마트폰 분야에서 ‘생산자 개발방식’으로 알려진 업체이며 안드로이드폰 넥서스원이 ODM 방식으로 만들어졌다. 넥서스원은 HTC가 제조하지만 구글 상표를 달고 출시된다.");
// insertDB(frstRegisterId, glossaryService,"선택적 출력 제어 / SOC (Selectable Output Control)","케이블 방송이나 위성 방송을 통해 제공되는 최신 영화의 불법복제를 막기 위해 각 가정의 출력 상황을 원격 제어할 수 있도록 연방통신위원회가 승인한 저작권 보호 규제 조치이다. \r\n\r\n방송 콘텐츠를 보호하기 위해 다채널방송사업자(Multichannel Video Programming Distributor, MVPD)는 영상정보를 특수한 신호로 부호화하여 특정 채널의 송출을 제어해야한다. SOC는 승인된 HDCP 기능을 탑재한 장치에게만 영상정보를 송출한다.");
// insertDB(frstRegisterId, glossaryService,"소스 포렌식 (Source Forensic)","이진코드, 소스코드를 분석하여 최초 작성자를 구분하는 방법으로 복제 및 활용 여부에 대한 흔적들을 조사하여 원시코드와 실행 프로그램과의 상관관계를 분석하는 포렌식으로 운영체제, 응용프로그램, 리버스 엔지니어링 등에 대한 기술이 요구된다");
// insertDB(frstRegisterId, glossaryService,"소스포지 (SourceForge)","다수의 비대면 온라인 협업에 의해서 개발이 진행되는 오픈소스 소프트웨어 프로젝트들을 내려 받을 수 있는 사이트이다(www.SourceForge.net). 오픈소스 소프트웨어 개발자들에게 호스팅 서비스와 개발용 도구들을 무료로 제공하는 사이트 소스포지에는 약 10만 개에 가까운 오픈소스 소프트웨어 프로젝트들이 등록되어 있고, 거의 100만 명에 달하는 이용자들이 참여하고 있다. 소스포지는 대규모의 조직화된 오픈소스 소프트웨어 개발관리 시스템인 동시에 일종의 소스 코드 저장소이다. 리눅스 커널의 개발 과정 등 몇 가지 대형 프로젝트들에는 실력자 간 위계가 존재한다. 소스포지 등 공개 플랫폼을 여러 개 운영하는 오픈소스 테크놀로지 그룹(OSTG)은 소프트웨어 서비스 회사인 VA소프트웨어(VA Software)에 소속되어 있다.");
// insertDB(frstRegisterId, glossaryService,"소프트웨어 감정 (Appraisal of Software)","소프트웨어의 저작권법 위반, 영업 비밀 보호법 등 소프트웨어에 대한 분쟁(소송) 발생시 법원, 경찰, 기타 관련 기관이 한국저작권위원회에 감정을 의뢰하고 감정인이 감정을 수행하는 것을 말한다. \r\n\r\n감정인은 감정 수행을 위한 감정 방법, 감정 기준(원본 기준과 비교본 기준), 감정 범위를 설정한 후, 원고 및 피고가 제출한 소프트웨어(감정 목적물)를 감정 요청 사항에 따라 감정인의 전문적 지식을 활용하여 소프트웨어를 비교 분석하고 감정 결론을 도출한다. 소프트웨어 감정은 분쟁 대상 소프트웨어에 대한 동일・유사성, 완성도, 개발하자 등을 판단하여 그 결과를 제시하는 증거조사 방법으로 저작권법 및 소송법상 인정되는 제도이다.");
// insertDB(frstRegisterId, glossaryService,"소프트웨어 감정 기준 (Criterion of Software Appraisal)","소프트웨어 감정 시 원본과 복제본에 대한 복제 또는 포함 여부에 대한 감정 기준을 말한다. \r\n\r\n감정 기준은 원본 기준 방식과 복제본 기준 방식이 있다. 원본 기준 방식은 원본의 얼마나 많은 부분이 표절되거나 복제되었는지를 기준으로 한다. 이 방식은 비교본에 독자적으로 추가된 부분이 있을 때는 그 많고 적음에 영향을 받지 않지만, 비교본에 원본의 일부 핵심 부분만이 복제된 경우에는 복제도가 낮아질 수 있다. 비교본 기준 방식은 비교본의 얼마나 많은 부분이 원본으로부터 복제된 것인지를 기준으로 한다. 이 방식은 비교본에 독자적으로 추가된 부분이 많아질수록 그 유사도가 낮아지게 된다.");
// insertDB(frstRegisterId, glossaryService,"소프트웨어 감정 도구 (Tool for Software Appraisal)","소프트웨어 감정 도구란, 소스코드의 유사도 감정을 위해 사용되는 도구를 말한다. \r\n\r\n소프트웨어 감정을 위해 원저작자와 침해 주체가 보유한 소프트웨어의 소스코드를 검사하여야 한다. 그런데 소스코드의 양이 방대하고 육안 검사가 불가능하므로 유사성 검사에 사용되는 표절검사 도구가 주로 사용되는데, 국외의 대표적인 표절 검사 도구는 MOSS, Jplag, YAP, Plague, SIM 등이 있다. 국내에서는 한국저작권위원회에서 자체 개발한 ExEye 도구 등이 있다.");
// insertDB(frstRegisterId, glossaryService,"소프트웨어 개발비 산정 감정 (Appraisal Estimation of Software Development Cost)","소프트웨어를 개발하는 데 따른 적정 [소요 → 필요] 비용이 어느 정도인지 판단하는 감정이다. 개발을 의뢰한 발주자가 납품된 소프트웨어의 적정한 개발비가 얼마인지에 대한 감정이나, 개발이 완료되지 못한 소프트웨어에 대하여 현재까지 개발하는 데 쓰인 개발 비용을 산정하는 감정이다. 소프트웨어 개발비는 대부분 지식경제부 고시 소프트웨어 사업 대가 기준을 이용하여 산정한다.");
// insertDB(frstRegisterId, glossaryService,"소프트웨어 버스마크 (Software Birthmark)","소스코드가 아닌 컴파일 된 바이너리 코드 내부에 나타나는 프로그램의 고유한 특징정보로서 부가적인 정보 삽입 필요 없이 프로그램을 식별할 수 있어 프로그램의 유사성을 비교하거나 특성을 분석하고, 도용된 소프트웨어의 파악에 활용된다. \r\n\r\n정적 버스마크(static birthmark)와 동적 버스마크(dynamic birthmark)로 구분된다.");
// insertDB(frstRegisterId, glossaryService,"소프트웨어 워터마킹 (Software Watermarking)","이미지, 오디오, 동영상 워터마킹처럼 소프트웨어 소스코드에 사람이 인지하지 못하도록 저작권 정보를 삽입하고 추출하는 기술이다. 소프트웨어를 복제할 경우 소프트웨어의 워터마크를 추출하여 저작권자의 정보를 확인하는 기술이다.");
// insertDB(frstRegisterId, glossaryService,"소프트웨어 유사도 감정 (Appraisal of Software Similarity)","소프트웨어 유사(동일)도 감정은 침해저작물이 피침해저작물을 얼마만큼 복제하였는지 여부를 판단하기 위한 것으로 프로그램 전체 또는 일부에 대한 객관적 수치로 유사 정도를 나타낸다. \r\n\r\n소프트웨어 유사도 감정은 비교 대상 소프트웨어에서 공개 소프트웨어를 제외하고 분석 도구를 이용하여 유사 부분을 검출한다. 검출된 유사 부분은 감정인의 전문 지식을 활용하여 유사 여부를 판단하고 유사율을 산정한다. 소프트웨어 유사도 감정은 저작권침해 및 영업 비밀 침해 판단 등을 위해 주로 활용된다.");
// insertDB(frstRegisterId, glossaryService,"소프트웨어 유사도 분석 (Software Similarity Evaluation)","비교 대상 소프트웨어 간의 상호 비교 및 분석을 통해 원본과 비교본의 소프트웨어가 어느 정도의 유사성이 있는지를 분석하여 유사・복제의 정도를 판단하는 것이다. 소스코드를 이용한 소프트웨어의 유사성 판단은 컴퓨터 프로그램 저작권 침해 소송에서 가장 핵심적인 근거가 된다");
// insertDB(frstRegisterId, glossaryService,"소프트웨어 패키지 데이터 교환 / SPDX (Software Package Data Exchange)","리눅스재단에서 지원하는 SPDX 워킹그룹에서 만들어진 소프트웨어 패키지와 관련된 요소, 라이선스 및 저작권의 소통을 위한 표준 포맷을 말한다. \r\n\r\nSPDX 표준은 소프트웨어 공급구조에서 공유되는 라이선스 정보를 표준화하여 무료 및 오픈소스 소프트웨어 라이선스를 준수하도록 유도한다. 소프트웨어 라이선스와 저작권에 대해 중요한 데이터를 공유하는 기업과 공공기관을 위해 공통 포맷을 제공한다.");
// insertDB(frstRegisterId, glossaryService,"소프트웨어의 논리적 유사성 (Architecture similarity of software)","소프트웨어의 자료구조, 함수 콜 그래프, 데이터베이스 구조 등의 논리적 유사성을 분석하는 것을 말한다. 논리적 유사성은 소프트웨어의 구성 방식, 함수 내용, 함수 상호 연관성, 데이터베이스 구조 등을 분석한다.");
// insertDB(frstRegisterId, glossaryService,"셰어웨어 (Shareware)","시험 사용 기간 후에 사용료를 지불하는 조건으로 저작권자가 무상으로 배포하는 컴퓨터 프로그램. 셰어웨어는 저작자가 저작권을 보유하는 소프트웨어로서 사용자 집단(user groups), 전자 게시판이나 공개 자료실, 인터넷의 유즈넷, 우편 주문 판매상 등을 통해 배포된다.\r\n\r\n시험 사용 기간 만료 후 계속 사용하기를 원하는 사용자는 저작권자에게 등록하고 사용료를 지불하도록 요구받는다. 이에 응하면 저작권자는 더 많은 기술 지원과 추가적인 관련 문서를 제공하기도 하고 그 셰어웨어 개정판을 제공하기도 한다.");
// insertDB(frstRegisterId, glossaryService,"스웜 (Swarm)","토렌트에서 공유 파일에 대한 고유 식별자와 공유 파일을 소유하고 있는 피어 리스트 정보를 의미하며 공유 파일마다 존재하고 트래커에 의해 관리된다.");
// insertDB(frstRegisterId, glossaryService,"스테가노그래피 (Steganography)","전달하려는 정보를 이미지, 오디오 등의 파일에 인간이 감지할 수 없도록 숨겨져 상대방에게 전달하는 기술의 총칭이다. 기존의 암호화 방법은 메시지를 암호화하여 정보를 보호하는 반면에 스테가노그래피는 비밀정보를 매체에 은닉하여 그 정보의 존재 자체를 감추는 보안 기술이다.");
// insertDB(frstRegisterId, glossaryService,"시간 척도 변환 (Time Scale Change)","오디오의 재생 속도를 변환시켜 음의 높낮이를 변환시키는 음향 효과로 오디오 재생 속도가 빨라지면 음역대가 올라가는 효과가 있다.");
// insertDB(frstRegisterId, glossaryService,"시스넷 (CIS-Net)","Confédération Internationale des Sociétés-Network의 약자이며 전 세계 국가들에 위치한 저작권 관련 단체들이 보유한 음악 작품들의 등록 정보를 공유한다. \r\n\r\n국제저작자작곡자단체연맹(CISAC)이 운영하는 정보시스템으로서 각 지역별 단체들이 제공한 음악 정보 데이터 베이스(Works Information Database, WID)를 연결하면 8천 100만 건의 음악 작품들을 검색할 수 있다. 기술적으로 마이크로소프트가 개발한 FastTrack 기술을 지원받는다.");
// insertDB(frstRegisterId, glossaryService,"식별자 변환 (Identifier Resolution)","식별자에 대응하는 결과를 제공하는 과정으로 1차변환은 등록관리기관 정보를 제공하고 2차 변환은 URL, 메타데이터 또는 하부 등록관리 기관 등의 정보를 제공하고 3차 변환은 2차 변환의 기능을 위임받은 변환이고 다중변환은 하나의 식별자에 대하여 복수의 변환 결과를 제공한다.");
// insertDB(frstRegisterId, glossaryService,"식별자 핸들 시스템 (Identifier Handle System)","식별자 핸들 시스템은 DOI를 통해서 디지털 콘텐츠의 정보를 찾아 사용자에게 전송하는 서비스이다(www.handle.net). \r\n\r\nDOI를 클릭하면 메시지가 변환시스템(Handle System)에 전송되어 내부의 데이터베이스를 참조하여 해당 URL 정보를 제공한다. 미국 CNRI(Corporation for National Research Initiatives)가 개발하여 디지털 라이브러리를 중심으로 발전하였으며 IDF(International DOI Foundation), 미국 연방의회 도서관에 적용되고 있다. 분산 환경에서 정보(핸들, 디지털 자원)를 저장하고 변환(resolution)을 통해 핸들이 표시하는 정보로 이동, 접근, 사용할 수 있게 한다.");
// insertDB(frstRegisterId, glossaryService,"식별체계 메타데이터 (Identifier Metadata)","디지털 자원을 식별하기 위한 기본 메타데이터 요소로 모든 등록관리기관에서 관리하는 자원에 필수적으로 등록되는 메타데이터 요소의 집합이다.");
// insertDB(frstRegisterId, glossaryService,"신뢰 가능한 실행 환경 / TEE (Trusted Execution Environment)","모바일 기기의 안정성 보장을 위하여 TrustZone IP 기반의 AP 칩을 통해 프로세서, 주변장치, 저장장치에 보안 서비스를 제공하는 소프트웨어 플랫폼을 의미한다.\r\n\r\n일반영역(Normal World)과 보안영역(Secure World)을 엄격하게 구분하는 하드웨어 기능(TrustZone) 및 이를 이용하여 보안 서비스를 제공하는 소프트웨어(SP)로 구성된다. 표준화 단체 Global Platform은 TEE 아키텍처 및 API 표준을 제정하고 있다.");
// insertDB(frstRegisterId, glossaryService,"아날로그 복제 보호기술 / ACP (Analog Copy Protection)","아날로그 출력 신호에 ACP 신호를 추가하여 신호를 왜곡시키는 방법으로 멀티 미디어의 무단 복사를 방지한다. \r\n\r\n아날로그 복제 보호기술(ACP)로 보호된 스트림은 플레이백(playback) 장치에 있는 집적회로를 구동하여 ACP가 없는 신호를 복사하지 못하게 하거나 신호를 왜곡시킨다. DVD 등 매체에 담긴 저작권 있는 음원이나 비디오가 추출되어 인터넷을 통해 배포되거나 무단 복제될 수 있으므로 이를 방지하기 위하여 사용된다.");
// insertDB(frstRegisterId, glossaryService,"아날로그홀 (Analog Hole)","콘텐츠가 아날로그에서 디지털, 디지털에서 아날로그 신호로 재변환되는 과정에서 나타나는 버그처럼 보이는 보안 취약점.\r\n\r\n예를 들면 IPTV 서비스에서 제한적 방송수신 시스템(CAS) 또는 저작권 관리(DRM) 기술로 사전 보안 시스템을 적용하고 있더라도 정당한 사용자가 콘텐츠를 재생하는 경우, 사전 보안 시스템을 해제하여 TV와 같은 표시 장치로 영상을 전송하게 되는데 이 과정에서 콘텐츠가 쉽게 유출될 수 있다. 아날로그홀을 이용하여 상품적인 가치가 유지되는 고화질의 영상을 쉽게 획득할 수 있다는 점 때문에 아날로그홀은 콘텐츠를 불법적으로 유출하는 경로가 된다.");
// insertDB(frstRegisterId, glossaryService,"아이다 / IDA (International Documentation on Audiovisual works)","국제저작권협회(CISAC)가 영화, 텔레비전 프로그램, 문서, 시리즈와 같은 시청각 작품의 저작물 및 저작권자 정보를 관리하기 위해 만든 글로벌 영상물 관리 시스템이다.");
// insertDB(frstRegisterId, glossaryService,"아카데믹 프리 라이선스 / AFL (Academic Free License)","2002년 Lawrence Rosen이 작성하고 OSI에 자문을 구하여 탄생한 프리 소프트웨어 라이선스의 일종이다.\r\n\r\n저작권자가 소프트웨어 창작물에 AFL 라이선스를 적용하여 배포하면 학교 및 연구기관 등에서 학술적 목적으로 소프트웨어를 사용하는 경우에 저작권 침해 책임을 묻지 않는다. AFL 라이선스의 권리조항은 BSD, MIT, UOI/NCSA 아파치 라이선스와 유사하다.");
// insertDB(frstRegisterId, glossaryService,"아파치 라이선스 2.0 (Apache License 2.0)","오픈소스 라이선스 중 하나로 아파치 재단(Apache Software Foundation)이 관리하는 모든 오픈소스 소프트웨어(아파치 웹 서버 등)에 적용된다. 오픈소스를 그대로 재배포하거나 수정하여 재배포하더라도 소스 코드를 공개할 의무가 없으며 상업적 이용에도 제한이 없다.\r\n다만 재배포하는 때 아파치 라이선스 2.0 복사본을 제공해야 하고, 아파치에 의해 개발되었다는 저작권 표시, 보증에 책임이 없다는 점을 의무적으로 표시해야 한다.");
// insertDB(frstRegisterId, glossaryService,"아파치 하둡 (Apache Hadoop)","아파치(Apache)가 개발한 오픈소스 기반의 분산처리 기술로서 정형 빅데이터 및 비정형 빅데이터 분석에 사용된다. \r\n\r\n하둡은 x86 서버로 가상화된 대형 스토리지(HDFS)를 구성하고, HDFS에 저장된 거대한 데이터셋을 간편하게 분산처리 할 수 있는 자바(Java) 기반의 맵리듀스(MapReduce) 프레임워크를 제공한다. 하둡 공통 패키지에는 하둡 파일 시스템(HDFS), OS 수준 앱스트랙션(OS level abstractions), 맵리듀스(MapReduce) 엔진이 포함된다. 하둡 분산파일 시스템(HDFS: Hadoop Distributed File System)은 구글 파일 시스템을 대체한것이며 맵리듀스(MapReduce)는 구글에서 대용량 데이터를 분산 병렬 컴퓨팅에서 처리하기 위해서 제작하여 2004년 발표한 소프트웨어 프레임워크다.");
// insertDB(frstRegisterId, glossaryService,"안드로이드 라이선싱 검증 라이브러리 (Android Licensing Verification Library)","안드로이드 앱의 불법 복사 방지를 위해 구글 앱 스토어와 안드로이드 플랫폼에서 제공하는 라이선싱 검증 기술이다. \r\n\r\n이 기술을 탑재한 안드로이드 앱은 실행 시 사용자가 해당 앱에 대한 라이선스를 취득하였는가 여부를 구글 앱 스토어인 구글 플레이의 라이선싱 서버를 통해 확인한다. 이 라이브러리는 앱 개발자가 자신만의 라이선싱 검증 방식을 개발할 수 있도록 지원한다. 특정한 애플리케이션에서 성공한 라이선싱 검증 루틴을 무력화 방법이 다른 애플리케이션에서는 동작하지 않도록 차단할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"안드로이드 저작권 관리(DRM) 프레임워크 (Android DRM Framework)","구글 안드로이드 ver.3.0 이상부터 안드로이드 애플리케이션이 다양한 DRM 기술로 보호된 콘텐츠에 접근하여 사용할 수 있도록 제공하는 기술이다. \r\n\r\n이 기술은 복수의 DRM 기술들이 단말기에 탑재 가능하도록 하는 단말기 중심의 DRM 상호 호환성을 제공한다. DRM 프레임워크 API를 이용하는 안드로이드 애플리케이션은 단말기에 어떤 DRM 기술이 설치되어 있어도 일관되고 통합된 방식으로 보호된 콘텐츠에 접근할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"안티 디버깅(Anti-debugging)","역공정(Reverse Engineering)이나 디버깅을 방지하는 소프트웨어 기술로 저작권의 보호나 악성코드의 탐지 및 제거를 어렵게 할 때 사용된다.");
// insertDB(frstRegisterId, glossaryService,"안티 포렌식 (Anti-Forensic) ","포렌식에 반대되는 의미로 포렌식 조사를 위해 수집하는 증거에 대해 영구삭제, 파괴, 은닉, 조작 등의 방법을 통하여 증거수집 도구에 의한 탐지회피, 정보수집에 대한 혼란, 포렌식과정에 소요되는 시간증대 등을 통해 포렌식을 방해하는 모든 수단을 의미한다.");
// insertDB(frstRegisterId, glossaryService,"알에스티 공격(RST Attack)","회전(Rotation), 크기변환(Scaling), 평행이동(Translation)으로 워터마크를 무력화하는 대표적 워터마킹 공격 기술이다.");
// insertDB(frstRegisterId, glossaryService,"암호화 미디어 확장 / EME (Encrypted Media Extensions)","인크립트 미디어 익스텐션(EME)은 HTML Media Element 표준의 확장(extension)으로서 동일한 애플리케이션과 암호화된 파일을 하위 보호 시스템에 관계없이 어떤 브라우저에서든 사용할 수 있도록 설계되었다. \r\n\r\n웹 애플리케이션이 콘텐츠 보호 시스템과 상호 작용하는 응용 프로그램 인터페이스(API)를 제공하여 암호화된 오디오 및 비디오 재생을 제어한다. 2013년 구글, 마이크로소프트, 넷플릭스 등은 암호 미디어 확장(EME, Encrypted Media Extensions) 기술에 대한 표준화를 월드와이드웹 컨소시엄(W3C)에 제안했다. \r\n\r\n팀 버너스 리(Tim Berners Lee)는 EME을 사용하는 HTML5 비디오’에 대한 웹 표준화 논의를 승인했다. 모질라 개발자 커뮤니티는 그러한 결정이 웹을 분절시킨다고 반발했지만 파이어폭스 브라우저에 적용되는 샌드박스(Sand Box) 기술을 통해 EME 표준을 도입했다. 모질라가 마지못해 수용한 웹 브라우저 미디어 암호화 모듈 확장은 웹에서 유통되는 콘텐츠에 대한 복제와 허락 없는 재배포를 막는데 효과적인 저작권 관리(DRM) 기술이다. 그러므로 모질라가 지속적으로 추구하던 정보의 공유라는 웹의 가치와 배치되는 변화라는 이유로 오픈소스 진영에서는 논란이 일었다.");
// insertDB(frstRegisterId, glossaryService,"암호화 / 복호화 (Encryption / Decryption)","허가된 자를 제외하고 제3자는 읽을 수 없도록 평문(Plaintext)을 부호화하여 암호문(Ciphertext)으로 변환하는 과정은 암호화, 암호문을 평문으로 만드는 절차가 복호화이다. \r\n\r\n암호화와 복호화를 위해 일반적으로 비밀키를 이용한다. 암호화와 복호화 시 동일한 키를 이용하는 암호 시스템을 대칭키 암호 시스템이라고 부르고, 서로 다른 두 개의 키를 이용하는 암호 시스템을 비대칭키 암호 시스템이라고 부른다. 비대칭키 암호 시스템의 예로 공개키암호(PKI) 시스템이 있다.");
// insertDB(frstRegisterId, glossaryService,"애플리케이션 저작권 관리 / App DRM","안드로이드, iOS 등 다양한 모바일 오픈 플랫폼에서 다운로드 되는 모바일 애플리케이션에 대한 불법 복사와 이용을 방지하기 위한 저작권 관리 기술. \r\n\r\n애플리케이션 자체를 암호화하지 않고 사용자가 애플리케이션을 실행하는 때 적합한 실행 권한이 있는가를 인증과 라이선스 기술을 이용하여 확인하는 방법이다.");
// insertDB(frstRegisterId, glossaryService,"약화된 일반 공중 사용 라이선스 / LGPL (Lesser General Public License)","GNU 라이선스 가운데 하나로서 코드 안에 저작권 명시와 수정된 라이브러리를 공개해야 한다는 조건만 지키면 상업적으로 거의 아무런 제한 없이 사용이 가능하다. 컴퓨터 프로그램 개발자들이 자유롭게 소프트웨어를 사용할 수 있도록 허용하는 목적의 라이선스이다");
// insertDB(frstRegisterId, glossaryService,"언어 업그레이드 라이선스 (Language Update License)","추가적으로 언어 기능을 갖춘 소프트웨어 등의 제품을 사용하도록 허용해 주는 라이선스이다. 가령, 사용자가 영문 소프트웨어에 대한 라이선스를 이미 합법적으로 얻었다면 한글 제품에 대한 사용권한도 부여하게 된다.");
// insertDB(frstRegisterId, glossaryService,"엔터테인먼트 식별자 등록 / EIDR (Entertainment Identifier Registry)","영화 및 TV 콘텐츠에 고유 식별자를 등록하여 관리하는 시스템(http://eidr.org). MovieLabs, CanleLabs, Comcast, Rovi에 의해 설립되어 2010년부터 운영되고 있다. \r\n\r\n디지털 객체 식별자(DOI : Digital Object Identifier)를 기반으로 하며 영화 타이틀, 비디오 클립 , 매쉬업 콘텐츠 단위까지 식별할 수 있다. 엔터테인먼트 콘텐츠 등록자는 웹 화면 인터페이스를 이용하여 콘텐츠 객체에 대한 메타데이터(타이틀, 언어 등) 및 정보(객체 유형, 다른 콘텐츠 객체와의 관계 등)를 등록할 수 있으며 검색 사용자는 다양한 검색 조건을 이용하여 식별자와 메타데이터를 검색할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"엠디5 알고리즘 (MD5 Algorithm)","증거 자료의 신뢰성을 확보하기 위해 수집된 데이터가 변조나 손상되지 않았다는 점을 해시(hash) 함수, 메시지 다이제스트(Message Digest) 기법 및 오류 검증 알고리즘을 이용하여 증명하는 기술. \r\n\r\nMD5는 128 비트 암호화 해시 함수로서 프로그램이나 파일이 원본인지 여부를 검증하는 무결성 검사에 사용된다. MD5는 로날드 리베스트(Ronald Rivest)가 개발한 메시지 다이제스트 알고리즘 가운데 하나로 128 비트 해시 값을 사용한다.");
// insertDB(frstRegisterId, glossaryService,"역공정 (Reverse Engineering)","완성된 제품의 설계를 상세하게 분석하여 제조공정과 방법을 추적하는 절차로서 역공정, 역설계 등으로 불린다. \r\n\r\n역공정은 특허 기술이 적용된 제조물을 대상으로 실시되기도 하지만 소프트웨어에서는 기계어 코드를 원시 소스코드로 변환하는 기술을 파악한다. 완제품의 작동방식을 사후적으로 분석하여 프로그램이나 보안 메커니즘을 알아내기 위해 사용된다.");
// insertDB(frstRegisterId, glossaryService,"역난독화 (Deobfuscation)","난독화된 프로그램을 분석하여 필요한 정보를 찾아내는 방법을 말하며 해커 또는 저작권침해자들도 난독화에 대한 장점을 이용하여 자신들의 작성한 악성코드나 저작권침해코드를 안티바이러스 툴 등에서 탐지 못하도록 하고 있어 이에 대응하기 위한 방법으로 역난독화 기술을 사용하고 있다.");
// insertDB(frstRegisterId, glossaryService,"영상전문가 표준그룹 21 / MPEG-21 (Moving Picture Experts Group 21)","영상전문가 표준그룹 21이 제시한 멀티미디어 프레임워크 기술의 표준. \r\n\r\n디지털 멀티미디어 콘텐츠의 생성, 거래, 전달, 관리, 소비 과정에서 광범위한 네트워크 및 여러 레이어에서 멀티미어 자원을 상호 호환하게 만들기 위한 멀티미디어 프레임워크 표준 규격이다. 디지털 콘텐츠의 전체 생명 주기에서 콘텐츠 제작자, 유통업자 및 최종 사용자가 국제적 호환성을 가지고 콘텐츠를 식별하도록 한다.\r\n\r\nMPEG-21 프레임워크에서 거래되는 기본 콘텐츠 단위를 디지털 아이템(digital item)이라고 한다. 디지털 아이템은 동영상, 오디오, 텍스트 등 멀티미디어 자원(multimedia resource), 내용(description), 국제적으로 통용되는 식별자(identification)로 구성된다.");
// insertDB(frstRegisterId, glossaryService,"영화 공공온라인유통망 / KOME (Korea Open Movie Exchange)","한국영화진흥위원회가 2010년에 시작한 개방형 영화 유통 플랫폼으로서 콘텐츠 사업자와 서비스 사업자를 연결하여 영화 콘텐츠 거래를 목표로 했다. \r\n\r\n콘텐츠 사업자(CP)가 영화 콘텐츠를 온라인 데이터베이스에 등록하면 서비스 사업자(SP)는 작품별로 부가된 저작권 조건을 열람하여 희망하는 콘텐츠를 영화 구매자에게 통보하는 방식으로 거래가 이루어진다. 그러나 2012년을 전후하여 중단되었다.");
// insertDB(frstRegisterId, glossaryService,"오디오 지문 (Audio fingerprinting)","음원의 일부 특징을 추출하여 저작권 데이터베이스에 있는 원본 음원의 특징과 비교하여 저작권 위반 여부를 확인하는 기술. \r\n\r\n컴퓨터가 그 음악의 지문이라고 할 수 있는 특정 신호 통계에 기초하여 음악을 인식하는 것이다. 파일 원본에 조작을 가하는 워터마킹과는 달리 원본을 보호하면서 저작권을 보호할 수 있는 기술로, MPEG-7 표준의 기초가 된다.");
// insertDB(frstRegisterId, glossaryService,"오버더톱 / OTT (Over The Top)","개방된 범용 인터넷을 통해 방송프로그램, 영화 등의 동영상을 전달하는 인터넷 동영상 서비스. \r\n\r\n다른 말로는 ‘인터넷 TV를 의미하며 셋톱박스를 필요로 하지 않고 개방형 인터넷에 연결되어 있다면 어디에서든 장소에 구애받지 않고 시청할 수 있다는 점에서 IPTV 및 케이블 방송과 다르다. 북미 지역에서는 다수의 채널을 묶어 판매하는 유료 케이블 방송보다 비용이 저렴하고 원하는 콘텐츠만 선택해서 볼 수 있다는 점에서 가입자 기반을 급속히 확대하고 있다. \r\n\r\n인터넷 프로토콜(IP)을 통해 자체적으로 제작한 프로그램, 영화, 동영상을 유료로 제공하는 OTT 사업자로는 넷플릭스(Netflix), 훌루(Hulu), 국내 케이블 방송 콘텐츠를 온라인으로 제공하는 티빙(Tving) 등이 있다.");
// insertDB(frstRegisterId, glossaryService,"오인식률 (False Acceptance Rate)","원본 콘텐츠나 변형 콘텐츠에서 추출된 특징 정보가 원본 콘텐츠의 특징에 대해 부정확 정보를 나타내는 비율, 즉 다른 콘텐츠를 원본 콘텐츠라고 잘못 인식하는 비율이다.\r\n\r\n한국저작권위원회의 필터링 성능평가에서는 비디오 인식률은 95%를, 오디오 인식률은 97%를 만족해야 하며 오인식률은 1% 이하여야 성능평가를 통과할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"오픈 모바일 연합 / OMA (Open Mobile Alliance)","이동통신 단말기과 서비스 시장에서 상호 연동할 수 있는 모바일 서비스를 개발하기 위한 표준화기구이다. 2002년 6월 표준 기구로 발족 되었으며 국내외 많은 모바일 서비스 기술에서 OMA에서 개발한 기술 규격이 적용되고 있다.");
// insertDB(frstRegisterId, glossaryService,"오픈 모바일 연합 저작권 관리 / OMA DRM (Open Mobile Alliance DRM)","모바일 서비스를 통해 유통되는 콘텐츠를 보호하기 위해 OMA(Open Mobile Alliance)표준화한 저작권 관리(Digital Rights Management) 기술. \r\n\r\n오픈 모바일 연합(OMA)의 DRM 워킹그룹은 모바일 서비스를 통해 유통되는 콘텐츠 보호를 위해 저작권 관리 기술을 표준화했다. 시장에 적용범위를 넓히기 위한ver.1.0 기술 표준과 PKI(Public Key Infrastructure) 등 강도 높은 보안 기술을 적용한 ver.2.0 기술 표준 등이 있다. \r\n\r\n상이한 DRM 기술 간 연동을 위한 보안 콘텐츠 교환(Secure Content Exchange) 기술, 이동형 메모리 카드를 이용한 콘텐츠 이동과 사용을 제어하는 OMA DRM v2. extensions for Broadcast Support 기술 등이 있다.\r\n\r\nOMA DRM의 구현은 3가지 방식으로 구분된다. Forward Lock은 콘텐츠를 핸드폰이나 개인용 컴퓨터를 통해 이동하거나 공유할 수 없게 한다. Combined Delivery는 콘텐츠(Contents)와 권리 객체(Rights Object)에 대한 정보가 묶여서 암호화 되므로 다른 기기로 이동이 제한된다. Separate Delivery는 콘텐츠와 권리 객체가 분리되므로 암호화된 콘텐츠는 다른 기기로 이동하더라도 실제로는 사용할 수 없다. 사용자는 권리 객체를 별도로 받아서 이동된 콘텐츠를 사용할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"오픈 보안 소켓 레이어 / Open SSL (Open Secure Sockets Layer)","네트워크를 통한 데이터 통신에 사용되는 프로토콜 전송 레이어 보안(TLS, Transport Layer Security) 및 보안 소켓 레이어(SSL, Secure Sockets Layer)의 오픈 소스. C 언어로 작성되어 있는 중심 라이브러리 안에는 기본적 암호화 기능 및 여러 유틸리티 함수들이 구현되어 있다. 하트 블리드(Heartbleed)는 2014년 4월에 발견된 OpenSSL의 소프트웨어 버그이다.");
// insertDB(frstRegisterId, glossaryService,"오픈 소프트웨어 라이선스 / OSL (Open Software License)","사용자가 사용 가능한 소프트웨어 풀(Software Pool)을 제공함으로써 특허 등의 침해를 방지하는 목적으로 사용되며 특허 침해 소송을 해소하기 위한 상호주의 라이선스의 성격을 띠고 있다.");
// insertDB(frstRegisterId, glossaryService,"오픈소스 라이선스 검증 기술 (Open Source License Verification)","오픈소스 라이선스의 저작권 위반 여부를 검증하기 위해 소프트웨어의 소스코드를 검사하여 저작권 침해 가능성이 있는 오픈소스코드의 사용 여부를 분석・탐지하는 기술이다. 이와 관련하여 한국저작권위원회에서는 코드아이 서비스를 운영하고 있다");
// insertDB(frstRegisterId, glossaryService,"오픈소스 소프트웨어 / OSS (Open Source Software)","일반 공중 라이선스(GPL), 아파치 라이선스(Apache License) 등 오픈소스 라이선스의 개념을 충족하는 소프트웨어를 의미한다. \r\n\r\n오픈소스 라이선스의 종류는 다양하다. 오픈소스 라이선스는 개발자가 코드를 무료로 사용・수정・재배포할 수 있다는 점에서 상업적 소프트웨어와는 다르다. 그러나 오픈소스 라이선스의 적용이 ‘저작권 자체의 포기’는 아니므로 무제한의 범위에서 사용할 수 있는 것은 아니다. 오픈소스 라이선스 내용에 따라서 사용해야 한다. 그렇지 않은 경우에는 저작권 침해가 될 수 있으므로 주의해야 한다.");
// insertDB(frstRegisterId, glossaryService,"오픈소스 소프트웨어 라이선스 종합 정보시스템 / OLIS","한국저작권위원회가 소프트웨어 산업의 발전을 위해 운영하는 사이트이다(https://www.olis.or.kr). \r\n\r\n누구든지 웹에서 다운받아 사용・제작・재배포를 할 수 있는 오픈소스 소프트웨어의 라이선스들의 개별적인 준수사항과 관련한 상세한 정보를 제공한다. 국내 오픈소스 소프트웨어를 사용하는 기관・업체와 사용 소프트웨어 개발자의 편의를 증진하고자 오픈소스 뉴스, 오프소스 프로젝트에 대한 소식, 상담을 제공한다.");
// insertDB(frstRegisterId, glossaryService,"오픈소스 이니셔티브 / OSI (Open Source Initiative)","1998년 브루스 페렌스(Bruce Perens)와 에릭 레이먼드(Eric Raymond)가 미국 캘리포니아에 설립한 비영리 법인. 10가지 오픈소스 정의(Open Source Definition)를 만족하는 라이선스에OSI 인증마크를 부여한다.\r\n\r\nOSI 인증을 받은 오픈소스 라이선스들은 다음과 같다. Apache License 2.0, BSD 3-Clause New license, BSD 2-Clause Simplified license, FreeBSD license, GNU General Public License(GPL), Lesser General Public License(LGPL), MIT license, Mozilla Public License 2.0, Common Development, Distribution License(CDDL), Eclipse Public License(EPL)");
// insertDB(frstRegisterId, glossaryService,"오픈소스 하드웨어 / OSHW (Open-Source Hardware)","하드웨어 설계(design) 관련 정보가 공개되므로 누구든지 동일하게 만들고 수정, 배포, 제조할 수 있는 하드웨어를 의미한다. \r\n\r\nOSHW의 목적은 프리・오픈소스 소프트웨어(FOSS)처럼 공개(openness)를 통해 기술과 제품을 발전시키려는 것이다. 하드웨어 제작용 회로도, 인쇄 회로 기판(PCB) 설계도면, 제작 과정 등 모든 정보의 공개를 원칙으로 한다. OSHW는 쉽게 구할 수 있는 부품, 재료, 표준 가공 방법, 개방된 시설, 공개된 콘텐츠, 오픈소스 소프트웨어를 사용한다. OSHW를 배포할 때 하드웨어를 설계한 문서의 공개, 공개범위 명시, 제작에 필요한 소프트웨어의 공개, 특정 개인이나 단체에 대한 차별 금지, 활용 분야의 차별 금지를 준수해야 한다.");
// insertDB(frstRegisterId, glossaryService,"온라인 서비스 제공자 / OSP (Online Service Provider)","인터넷을 통해서 저작물의 유통 등 각종 서비스를 제공하는 사업자의 총칭으로 전기 통신 사업자, 검색 서비스 제공자, 부가 통신 사업자 등 인터넷 이용자들이 저작물을 주고받을 수 있는 서비스를 제공하는 자. \r\n\r\n현행 저작권법에 따르면 기간통신사업자(접속서비스제공자)와 부가통신사업자가 모두 온라인 서비스 제공자 개념에 포함되지만 사업자가 직접 저작물을 유통하거나 내용을 수정하면 온라인 서비스 제공자에서 제외된다(저작권법 제2조제30호 참조).");
// insertDB(frstRegisterId, glossaryService,"울트라 바이올렛 (UltraViolet)","디지털 엔터테인먼트 콘텐츠 생태계(DECE) 컨소시엄이 클라우드 환경에서 멀티미디어 콘텐츠를 서비스하기 위해 저작권 관리(DRM) 기술을 기반으로 구성된 통합플랫폼서비스 모델. \r\n\r\n멀티 플랫폼과 장치를 통해 구입한 콘텐츠를 다운로드하고 디지털 홈엔터테인먼트 콘텐츠를 사용할 수 있도록 클라우드 컴퓨팅 기반으로 콘텐츠를 배포하고 디지털 저작권을 인증하는 시스템이다.");
// insertDB(frstRegisterId, glossaryService,"워터마킹 (Watermarking)","이미지, 오디오, 비디오와 같은 디지털콘텐츠에 인간의 지각으로는 식별할 수 없도록 저작권에 대한 정보를 은닉하여 향후 저작권 분쟁이 일어날 경우 추적을 통해 저작권자를 확인할 수 있게 해주는 기술.\r\n\r\n은닉되는 정보가 저작권자에 대한 정보일 경우에는 워터마킹(Watermarking), 사용자에 대한 정보도 함께 포함될 경우에는 핑거프린팅(Fingerprinting)으로 구분한다. 핑거프린팅을 사용하면 콘텐츠 불법 사용에 대한 감시뿐 아니라 콘텐츠 유출자도 파악할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"원소스 멀티유즈 / OSMU (One-Source Multi-Use)","N-스크린 서비스는 공통된 운영체제를 탑재한 다양한 단말기에서 동일한 콘텐츠를 끊김 없이 이용할 수 있는 서비스를 의미한다. \r\n\r\nN 스크린 서비스에 의해 콘텐츠를 클라우드 컴퓨팅 서버에 저장하고 여러 디지털 기기에서 동시에 재생할 수 있는 OSMU(One Source Multi Device) 기술이 개발되었다. 그러나 하나의 콘텐츠 소스를 각기 다른 기기에서 동일한 퀄리티로 나타내지 못하는 문제점이 발생되면서 콘텐츠가 재생되는 환경에 적합한 콘텐츠 생성이 요구되었다.");
// insertDB(frstRegisterId, glossaryService,"웹 로봇 (Web Robot)","인터넷상의 웹서버를 자동으로 돌아다니면서 사용자가 원하는 정보나 저작물을 검색하여 특정한 서버에 저장하는 검색 엔진의 일종이다. 웹하드의 저작물을 모니터링 할 때 웹로봇을 이용하여 저작물을 수집하고 저작권 침해 여부를 판정한다.");
// insertDB(frstRegisterId, glossaryService,"웹 크롤링 (Web Crawling)","인터넷에 게시된 웹페이지에서 정보를 조직적, 자동적 방법으로 탐색하는 컴퓨터 프로그램. 앤트(ants), 자동 인덱서(automatic indexers), 봇(bots), 웜(worms), 웹 스파이더(web spider), 웹 로봇(web robot) 등으로 불리기도 한다.");
// insertDB(frstRegisterId, glossaryService,"웹캐스팅 (Webcasting)","웹캐스팅은 웹(web)을 통한 방송(broadcasting)으로서 수신자가 비디오나 오디오를 선택하여 클릭하면 디지털 스트리밍(streaming) 방식으로 콘텐츠가 전달된다. 웹캐스팅은 주문형과 동시간형으로 구분된다. \r\n\r\nAOD(Audio on Demand) 또는 VOD(Video on Demand) 등 주문형 웹캐스팅은 수신자가 원하는 시간에 이용이 가능하다. 방송사가 공중파로 방송하는 동일한 뉴스, 중계 프로그램을 실시간으로 내보내는 동시간형 웹캐스팅(Simulcasting)도 있다. 웹캐스팅 서비스를 규범적으로 포섭하기 위해 저작권법은 ‘디지털음성송신’을 규정하고 있다. \r\n\r\n즉, 공중으로 하여금 ‘동시에 수신’하게 할 목적으로 ‘공중의 구성원의 요청에 의하여 개시되는 디지털 방식의 음의 송신’을 의미한다. 공중송신은 쌍방향성, 이시성을 특징으로 하므로 방송처럼 일방향, 실시간이 아니며 공중 구성원이 요청한다는 점에서 개별 사용자의 요청에 의한 ‘전송’과 다르다.");
// insertDB(frstRegisterId, glossaryService,"윈도우 미디어 저작권 관리 / WMRM (Windows Media DRM)","마이크로소프트(Microsoft)의 ‘윈도우 미디어 플랫폼’에 적용되는 디지털 저작권 관리기술. \r\n\r\n사용자가 Windows Media DRM 파일을 패키지화하고 라이선스를 발급하도록 하는 방법으로 저작물의 안전한 유통을 돕는다. 최근에는 WMRM 이라는 용어 대신 Play Ready이라는 용어를 사용한다");
// insertDB(frstRegisterId, glossaryService,"유럽 디지털 리딩랩 / EDRLab (European Digital Reading Lab)","2013년 설립된 국제디지털출판포럼(IDPF) 및 리디움 재단의 유럽본부. 유럽 지역에서 ePub 3.0 표준의 보급 증진 및 리디움(Readium) LCP 시험검증 및 인증 업무를 수행한다.");
// insertDB(frstRegisterId, glossaryService,"유로피아나 (Europeana)","33개 유럽연합 회원국들에 소속된 도서관들이 참여하는 디지털 도서관 프로젝트. 5천 3백만 건에 이르는 도서, 예술작품, 영상, 음향을 모아 두었다(http://www.europeana.eu/).\r\n\r\n24가지 언어로 검색이 가능하며 유럽 음악 및 유럽 예술에 대한 콜렉션을 제공한다. 각 창작물에는 무료 재사용(Free Re-use), 제한적 재이용(Limited Re-use) 재이용 금지(No Re-use) 등으로 사용 범위가 별도로 표기되어 있다. 크리에이티브 커먼즈 라이선스를 활용하여 저작물 사용조건을 설명하고 있다.");
// insertDB(frstRegisterId, glossaryService,"유알시 / URC (Uniform Resource Characteristics Location)","정보자원에 대한 정보로서 메타데이터에 해당한다.");
// insertDB(frstRegisterId, glossaryService,"유알아이 / URI (Uniform Resource Identifier)","정보자원에 대한 식별 기법으로서 정보를 정보의 명칭이나 속성이 아니라 “위치”라는 방법으로 표현하여 식별한다. 통일적 접근방법을 통하여 다양한 정보에 대한 식별자를 동일한 방법으로 처리하므로 정보자원의 다양성에 무관하게 식별이 가능하다. URI 구문은 일반적으로 다음과 같다.(삭제 요청)");
// insertDB(frstRegisterId, glossaryService,"유알엔 / URN (Uniform Resource Name)","디지털 저작물에 대한 고유한 객체 식별기호. URI의 부분집합으로서 정보가 없어지거나 더 이상 이용할 수 없게 되더라도 유일하게 영구적으로 남을 수 있는 이름을 나타낸다. 정보자원의 소재를 나타낸다기 보다는 도서마다 부여되는 고유번호(ISBN)처럼 정보의 실체를 규명하기 위해 할당된 간단한 텍스트 문자열이다. 콜, 주컴퓨터의 이름과 주소, 파일이 있는 디렉토리 위치, 파일이름으로 구성된다.");
// insertDB(frstRegisterId, glossaryService,"응용프로그램 인터페이스 / API (Application Program Interface)","응용프로그램이 운영체계나 데이터베이스 관리시스템과 같은 시스템 프로그램과 통신할 때 사용되는 언어나 메시지 형식. API는 프로그램에 실행되기 위해 특정 서브루틴에 연결을 제공하는 함수를 호출하여 구현된다. API는 함수 호출에 의해 요청되는 작업을 수행하기 위해 이미 존재하거나 또는 연결되는 다수의 프로그램 모듈이나 루틴을 가진다.");
// insertDB(frstRegisterId, glossaryService,"이클립스 공중 라이선스 / EPL (Eclipse Public License)","Eclipse 재단에서 자사 소프트웨어에 적용하여 배포하는 오픈소스 라이선스로서 공용 공중 라이선스(CPL, Common Public License)에서 특허소송의 우려를 제거했다. EPL은 GPL보다 약한 상호주의 조항을 가지고 있어 기업친화적 오픈소스 라이선스로 여겨진다.");
// insertDB(frstRegisterId, glossaryService,"인 메모리 데이터베이스 / IMDB (In-memory Database)","데이터를 저장, 관리하고 사용자가 원하는 정보를 쉽고 빠르게 가져올 수 있도록 관리하는 시스템은 디스크에서 데이터를 가져와서 부분적으로 메모리에 올려두고 중앙연산장치(CPU)에서 처리하는 온디스크 데이터(on-disk database) 방식이었다. 하지만 빅데이터의 경우에는 연산과정 도중에 응답속도가 떨어질 수 있으므로 모든 데이터를 메인 메모리 데이터베이스(Main Memory Database, MMDB)에 올려두고 작업하는 방식이 등장했다. IMDB는 고성능 컴퓨팅(HPC)을 활용한 빅데이터처리에 사용되며 대표적 기술은 SAP HANA이다.");
// insertDB(frstRegisterId, glossaryService,"인증 신호 보호 프로토콜 / COPP (Certified Output Protection Protocol)","저작권으로 보호되는 동영상 신호를 재생기에서 그래픽 카드로 전송할 때 전송되는 비디오 데이터를 외부의 불법적 복제로부터 보호하기 위해 사용되는 보안 기술이다. 인증 신호 보호 프로토콜은 마이크로소프트의 PlayReady 로고 승인을 위한 요구사항이다.");
// insertDB(frstRegisterId, glossaryService,"인코딩 / 디코딩 (Encoding / Decoding)","인코딩(encoding)은 정보의 형태나 형식을 표준화, 보안, 처리 속도 향상, 저장 공간 절약 등을 위해서 다른 형태나 형식으로 변환하는 처리 혹은 그 처리 방식을 말한다. \r\n\r\n디코딩은이 반대의 경우를 말한다. 인코딩과 디코딩은 그 목적에 따라 다른 형태로 활용되는데, 예를 들어 영화의 장면의 자료수가 너무 많기 때문에 압축을 한다면, 대상은 영화의 픽셀의 데이터이고 목적은 압축이다. 따라서 원래 압축되지 않은 장면의 픽셀 데이터가 원본이 되고 이것을 압축 알고리즘을 동원해서 압축하면 우리가 흔히 보는 MPEG 파일이 된다. \r\n\r\n이때 부호화란 압축을 하는 것을 말한다. 그리고 압축된 파일을 풀어 원래의 픽셀 데이터로 변환 하는 것을 복호화(decoder,디코더)라고 한다. 이런 경우 부호화를 위한 압축 알고리즘은 프로그램화되어 실현된다. 암호화나 이 암호를 푸는 것도 인코딩 / 디코딩이라고 하는데 이 경우에는 콘텐츠 자체의 보호를 목적으로 한다.");
// insertDB(frstRegisterId, glossaryService,"인터넷 영화 데이터베이스 / IMDb (The Internet Movie Database)","1990년대에 만들어진 영화, 배우, 텔레비전 드라마, 비디오 게임 등에 관한 정보를 보유한 온라인 데이터베이스. 200만여 개 이상의 영화, TV, 엔터테인먼트 프로그램과 400만여명 이상의 출연진 정보를 제공한다. 영화 랭킹, 영화 리뷰, 팬 웹 사이트에 이르기까지 영화와 관련된 모든 정보를 분류하고 있다. 1998년부터는 아마존닷컴이 인수하여 운영하고 있다.");
// insertDB(frstRegisterId, glossaryService,"일반 공중 라이선스 (General Public License / GPL)","프리 소프트웨어 재단(FSF)에서 만든 프리 소프트웨어 라이선스이다. \r\n\r\n소프트웨어 사용자에게 소프트웨어를 사용할 자유, 소프트웨어를 자신의 필요에 따라 수정・개작할 자유, 소프트웨어를 다른 사람과 공유할 자유, 수정・개작한 소프트웨어를 다른 사람과 공유할 자유를 보장한다. \r\n\r\nGPL이 적용되는 소프트웨어를 누군가 수정・개작한 경우에는 그 수정・개작한 소프트웨어도 GPL의 적용을 받으므로 모두에게 자유로운 이용이 가능하도록 공개해야만 한다. GNU가 제공하는 일반 공중 라이선스로서 GNU GPL이라고 불리기도 한다. \r\n\r\n자유 소프트웨어 재단(FSF)을 이끈 리처드 스톨만 주도로 1989년 2월에 GPL ver.1.0이 발표된데 이어, 1991년 6월에 ver.2.0, 2007년 6월에 GPL ver.3.0이 발표되었다.");
// insertDB(frstRegisterId, glossaryService,"일반 공중 라이선스 ver.2.0 / GPLv2 (General Public License ver.2.0 / GPLv2)","리처드 스톨만(Richard Stallman)이 작성하여 GNU-프로젝트로 배포된 프로그램의 라이선스로 사용하기 시작했다. ① 컴퓨터 프로그램을 어떤 목적으로든 사용할 수 있다 ② 컴퓨터 프로그램의 복사를 언제나 프로그램이 코드와 함께 판매 또는 무료로 배포할 수 있다 ③ 컴퓨터 프로그램의 코드를 용도에 따라 결정할 수 있다 ④ 변경된 컴퓨터 프로그램의 코드도 원본 프로그램 코드와 함께 자유로이 배포할 수 있다는 조항을 두고 있다.");
// insertDB(frstRegisterId, glossaryService,"일반 공중 라이선스 ver.3.0 / GPLv3 (General Public License ver.3.0 / GPLv3)","GNU 프로젝트가 2007년에 발표된 라이선스. 누구든지 코드를 변경하거나 일반 공중 라이선스(GPL)로 재배포할 수 있으며, 상업적 웹 사이트 구축에 사용할 수도 있다. \r\n\r\n주요한 특성은 ① ‘배포(distribution)’를 ‘전달(convey)’이라는 용어로 대체하였고, ② 기술적보호조치의 보호에 관한 법적 권리의 포기를 명시하고 있으므로 저작권 관리(DRM) 기술을 적용할 수 없다. ③ 만일 라이선시(Licensee)가 특허소송을 제기하는 경우에는 라이선스에 의한 해당 오픈소스의 이용이 종료된다. ④ 프로그램을 양도 받는 모두에게 프로그램과 함께 GPL라이선스 사본을 제공해야 한다.");
// insertDB(frstRegisterId, glossaryService,"자바 가상머신 / JVM (Java Virtual Machine)","가상 머신(Virtual Machine, VM)은 컴퓨팅 환경을 소프트웨어로 구현한 것으로서 실제 컴퓨터를 에뮬레이션하는 소프트웨어이다. \r\n\r\n즉, 실제 컴퓨터의 효율적이고 고립된 복제물이며 실제 하드웨어와 직접적 통신이 없는 가상 컴퓨터이다. 가상머신에서 운영 체제나 응용 프로그램을 설치하여 실행할 수 있다. 자바 가상머신은 마이크로소프트 윈도우, 리눅스, 유닉스, OS X 등 대부분의 운영 체제와 웹브라우저 등 여러 플랫폼에 설치되어 사용될 수 있다.");
// insertDB(frstRegisterId, glossaryService,"자원 서술 프레임워크 / RDF (Resource Description Framework)","웹 환경에서 정보를 교환하는 애플리케이션 간에 상호운용성을 제공하는 규격. 상이한 메타데이터들 간의 어의, 구문 및 구조에 대한 공통적 규칙을 지원한다. \r\n\r\n웹에서 기계적인 해독이 가능한 메타데이터를 교환하고자 월드 와이드 웹 컨소시엄(W3C)이 제안했으며 메타데이터 간 효율적 교환 및 상호호환을 목적으로 개발되었다. 표준화를 위한 확장가능한 표시 언어(XML, eXtensible Markup Language)로 표현하므로 자유롭게 확장이 가능하고 메타데이터 간 상호호환이 가능하다.\r\n\r\n구문이 독립적이어서 메타데이터 간 어의적 차이를 인정할 수 있고, 데이터 표현방식이 간명하여 메타데이터 작성과 검색이 용이하다. RDF는 데이터 모형, 데이터의 상호교환을 위한 구문, 스키마 모형, 기계 해독형 스키마를 위한 구문, 질문과 프로파일 프로토콜과 같은 요소로 구성된다. 예를 들어, 웹 페이지 구성의 기본이 되는 제목, 저자, 최종 수정일, 저작권 같은 메타데이터들은 XML 태그를 이용하여 간단하게 표현되고, 주어, 동사, 목적어에 해당하는 것들은 인터넷 식별자(URI)를 써서 대상들을 문장으로 구성하거나, 노드와 화살표를 써서 도식적으로 표현되므로 검색이나 정보 추출이 쉽다.");
// insertDB(frstRegisterId, glossaryService,"저작권 경고 시스템 / CAS (Copyrights Alert System)","미국 저작권 정보센터(Center for Copyright Information, CCI)의 주도로 미국 내 5개 네트워크 사업자들이 저작권자들과 합의하여 2011년 7월부터 시행하는 자율규제 제도. 저작권이 있는 콘텐츠를 비트토렌트 또는 P2P 기술 등을 이용하여 불법적으로 공유 또는 다운로드하는 이용자들에게 침해 사실을 경고하고 저작권 교육을 받도록 안내한다. 이용자가 P2P 기술 등을 이용하여 저작권 침해 행위를 반복하는 경우에는 네트워크 사업자가 이용자에게 경고를 보낸다. 만일 5회의 경고를 받고도 저작권 침해 행위를 계속하면 특정 사이트 접속 제한 및 인터넷 전송속도를 감속하는 조치를 취할 수 있다. 그러나 이 제도는 우리나라 저작권법에 규정된 삼진아웃(Three strikes out law) 같은 강행규제가 아니다. 삼진아웃은 반복적으로 불법 복제물 등을 복제하여 인터넷으로 전송한 이용자와 게시판에 대해서 문화체육관광부 장관이 일정한 절차를 거쳐 ‘계정 정지’ 및 ‘서비스 정지’를 할 수 있는 제도이다.");
// insertDB(frstRegisterId, glossaryService,"저작권 관리정보(RMI) 메타데이터 (Rights Management Information Metadata)","저작물의 원작품이나 그 복제물에 부착되거나, 저작물의 공연, 방송 또는 전송 등에 수반되는 모든 정보를 의미하며 저작권 관리를 위해 필요한 특성 정보 및 저작권을 관리하는 과정에서 발생하는 정보로 구성된다. 저작물 생애주기(life-cycle)에서 권리의 변동, 저작권 이력 등 저작물에 대한 정보를 제공한다.");
// insertDB(frstRegisterId, glossaryService,"저작권 데이터 클리어링하우스 / CDC (Copyright Data Clearinghouse)","음원 콘텐츠 판매자와 저작권 관리 단체 간의 원활한 정보처리를 위하여 설립된 일본의 일반 사단법인이다(www.cdc.or.jp).\r\n\r\n저작권정보집중처리기구(著作権情報集中処理機構)는 사용자가 다수의 음원을 이용하면서 발생한 이용 내역과 저작권자를 대상으로 저작권 관리 업무를 일원화하여 처리하는 시스템을 운영하고 있다.");
// insertDB(frstRegisterId, glossaryService,"저작권 라이선스 통합 관리 시스템 / CLMS (Copyright Licenses Management System)","저작권자가 이용자가 간편하게 저작권 이용허락을 위한 계약을 완성할 수 있도록 온라인으로 지원하는 시스템으로서 디지털저작권거래소에서 운영한다. 음악, 어문, 뉴스 분야에 활용되고 있으며 통합저작권관리번호(ICN)를 활용하여 저작물을 특정하므로 건별로 비대면 계약을 완성할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"저작권 비디오 캡쳐 서비스 / CVC (Copyright Video Capture Service)","저작권 있는 방송 콘텐츠 및 동영상 화면을 캡처해서 개인 블로그나 카페에 올리더라도 영상에 저작권자의 워터마크가 표시되는 서비스를 말한다.");
// insertDB(frstRegisterId, glossaryService,"저작권 서비스 이용계약 (Copyright Service Use Agreement)","저작물 이용에 필요한 저작권 정보를 체계적으로 통합 관리하고 권리자와 이용자 간에 편리한 저작물 이용 계약 체결을 제공하여 저작권을 이용할 수 있도록 해주는 시스템이다.");
// insertDB(frstRegisterId, glossaryService,"저작권 이해관계자 정보 시스템 / IPI-System (Interested Parties Information System)","국제 저작권 관리단체 연맹(CISAC)이 운영하는 저작권 이해관계자 정보 시스템(http://www.ipisystem.org). IPI는 작곡가, 작사가, 음악 출판인(개인 또는 회사) 등 음원을 보유한 저작권자들에게 부여하는 식별번호로 IP Base Number와 IP Name Number로 조합된다.");
// insertDB(frstRegisterId, glossaryService,"저작권 인증허가 센터 / CCC (Copyright Clearance Center)","예술과 과학에서의 발전 및 창작을 장려하기 위해 저작자, 출판자들이 1987년 미국에서 설립된 복제권 이용허락단체(www.copyright.com). 전 세계를 대상으로 인쇄 및 전자형태의 저작물에 대한 다양한 이용허락 및 관리한다.");
// insertDB(frstRegisterId, glossaryService,"저작권 찾기 서비스 (Find Copyright Service)","한국저작권위원회에서 운영하는 저작권 정보에 대한 검색 사이트(www.findcopyright.or.kr). \r\n\r\n저작권자가 저작물의 저작권 정보와 미분배 저작물을 확인할 수 있으며 잠재적 사용자들은 검색 서비스로 편리하게 저작권자를 확인할 수 있다. 저작권자는 저작권 정보를 확인하여 정당한 보상을 받을 수 있고, 잠재적 사용자들은 편리하게 저작권자를 찾아서 이용허락을 받을 수 있다.");
// insertDB(frstRegisterId, glossaryService,"저작권 표현 언어 / REL (Rights Expression Language)","저작권자가 보유하고 관리하는 디지털 저작물에 대하여 최종 사용자가 어떤 권리를 허락받고, 어떤 방식으로 행사하고, 그 콘텐츠를 활용할 수 있는가에 대한 정보를 기계가 읽을 수 있도록 기재한 언어. \r\n\r\nMPEG-21에서 사용되는 저작권 표현언어(REL)로는 XrML, ODRL, FILIGRANE이 제작한 Agent Program Code SRDL, 디지털 오디오 및 비디오에 사용되는 확장 가능 미디어 언어(XMCL) 등이 있다.");
// insertDB(frstRegisterId, glossaryService,"저작권기술 성능평가 변형콘텐츠 (Distorted Content for Performance Evaluation)","저작권기술 성능평가에서 강인성 항목으로 인식된 변형콘텐츠와 신뢰성 검증을 위한 자유이용 저작물 및 일반 저작물을 말한다.");
// insertDB(frstRegisterId, glossaryService,"전송 레이어 보안 / TLS (Transport Layer Security)","보안 소켓 레이어(SSL, Secure Socket Layer) 및 전송 레이어 보안(TLS, Transport Layer Security) 프로토콜을 사용하면 두 당사자가 기밀성과 데이터 무결성이 보장된 상태로 서로 식별 및 인증하고 통신할 수 있다. SSL 및 TLS 프로토콜은 인터넷 통신 보안을 제공하며 클라이언트 및 서버 애플리케이션이 비밀이 유지되고 안정적인 방식으로 통신할 수 있다. 프로토콜에는 레코드 프로토콜과 데이터 교환 프로토콜의 두 개의 레이어가 있으며 TCP/IP 등 전송 프로토콜 위의 레이어에 위치한다.");
// insertDB(frstRegisterId, glossaryService,"접근 통제 기술 (Access Control)","기술적 보호 조치 가운데 저작권 보호 대상 콘텐츠에 대한 접근을 통제하는 기술. 이용통제(use control)라고도 불리며 해당 저작물에 대한 복제 등 이용을 통제한다. ‘이용’이라 함은 저작권자의 허락이 필요한 저작물 이용 행위를 말하며 구체적으로는 저작권 보호의 대상이 되는 행위, 즉 복제, 공연, 방송, 배포, 전송행위 등이다.");
// insertDB(frstRegisterId, glossaryService,"정적 버스마킹 (Static Birthmarking)","소프트웨어 버스마킹의 일종으로서 실행되지 않은 정적인 코드(클래스 구조, 함수 호출 순서, 사용된 클래스, 문자, 단어 등)에서 고유의 정적인 특징 정보를 추출하여 이를 바탕으로 소프트웨어의 무단 복제 및 표절(plagiarism)을 확인한다.");
// insertDB(frstRegisterId, glossaryService,"제한 수신 모듈 / CAM (Conditional Access Module)","제한 수신을 위해 가입자 단말 장치(셋톱박스, TV 등)에 삽입되는 개인용 컴퓨터 카드 형태의 장치. 스마트카드를 삽입할 수 있는 슬롯을 제공한다. 가입자 단말 장치가 제한 수신모듈로 스크램블링(암호화)된 방송 신호와 제어 명령을 전달하면 제한 수신 모듈(CAM)은 스마트카드에 있는 제한 수신 기능을 통해 시청 권한 확인 후 디스클램블링(복호화) 신호를 다시 가입자 단말 장치에게 전달한다.");
// insertDB(frstRegisterId, glossaryService,"제한적 방송수신 시스템 / CAS (Conditional Access System)","암호화 기술로 보호된 방송 콘텐츠를 위성방송・케이블・지상파・IP 네트워크 등으로 전송할 때에 가입자들만이 방송을 시청할 수 있도록 접근 제어하는 시스템. \r\n\r\n케이블 방송 및 위성방송 등 유료방송이 주로 채택하고 있으며 허가된 시청자에게만 수신권한을 부여한다. 송수신간 콘텐츠 암호화(스크램블)를 기반으로 한다. 방송 사업자에게 CAS는 유료 서비스를 가능하게 하는 핵심 기술이자 핵심 시스템이다. 그러나 일단 방송 콘텐츠를 수신하여 암호(스크램블)를 푼 이후에 발생하는 무단복제에 대한 보호대책이 부족하다는 평가를 받는다.");
// insertDB(frstRegisterId, glossaryService,"주문자 상표 부착 소프트웨어 / OEM (Original Equipment Manufacturer Software)","일반적으로 하드웨어 생산 시 소프트웨어가 부착되어 같이 생산되는 소프트웨어를 의미. \r\n\r\n주문자가 모든 설계를 제공하고, 생산과정만을 특정 업체에 외주를 주어 전문적으로 제조한다. 생산 원가를 낮출 수 있는 OEM 방식의 소프트웨어는 메이저 제조사에서 제품 생산에서부터 OEM 방식으로 생산되는 경우도 있지만 OEM(Commercial OEM) 방식처럼 조립 개인용 컴퓨터에 제공되는 경우도 있다. OEM 방식 소프트웨어의 EULA(End User License Agreement)는 소프트웨어 저작권자와 최종 이용자 간의 계약이 아니라 컴퓨터 제조업체와 최종 이용자 사이에 체결되는 계약이라는 점에 유의해야 한다.");
// insertDB(frstRegisterId, glossaryService,"중소규모 볼륨 라이선스 (Low Volume License)","사용자가 등록되는 라이선스로 설치를 위한 매체는 별도로 구매해야 한다. 일반적으로 5copy 이상 구매 시 가능한 라이선스이다. 한글과컴퓨터사와 마이크로소프트사는 오픈 라이선스(Open License)라는 이름을 사용한다.");
// insertDB(frstRegisterId, glossaryService,"진전된 제한적 콘텐츠 보호 시스템 / AACS (Advanced Access Content System)","차세대 HD DVD와 Blu-ray Disc에 수록된 저작권 있는 콘텐츠에 대한 무단 접근이나 불법 복제를 방지하기 위해 도입된 콘텐츠 보호기술로서 2005년 표준화 기구 AACS LA(Licensing Administrator)가 개발했다. 콘텐츠에 대한 접근 및 복제를 방지하기 위해 진전된 암호화 표준 AES(Advanced Encryption Standard)을 이용하며 DVD에 내장된 일련번호 등 요소들을 복합한 키를 통해 콘텐츠 자체를 암호화 한다.");
// insertDB(frstRegisterId, glossaryService,"차세대 보안 메모리 / NSM (Next Generation Secure Memory)","2011년 12월 파나소닉, 삼성전자, 샌디스크, 소니, 도시바가 결성한 차세대 보안 메모리 이니셔티브 그룹(Next Generation Secure Memory Initiative)이 발표한 기술로 SD 카드, 플래시 메모리 등 저장매체를 통해 유통되는 고해상(HD) 콘텐츠를 보호하기 위한 저작권 관리 기술.");
// insertDB(frstRegisterId, glossaryService,"최대 신호 대 잡음 비율 / PSNR (Peak Signal-to-Noise Ratio)","이미지, 동영상의 손실 압축에서 화질 손실 정보를 수치로 표현한 값으로 이미지에 워터마크를 삽입할 때 원본 이미지와 워터마크를 삽입한 이미지의 차이를 표현하는 수치이다.");
// insertDB(frstRegisterId, glossaryService,"최종 이용자 라이선스 계약 / EULA (End User License Agreement)","EULA는 소프트웨어의 저작권자(licensor)와 최종 이용자(purchaser) 간에 소프트웨어를 이용하기 위한 조건을 합의하는 계약이다. \r\n\r\n대부분은 디지털 형태의 계약으로서 소프트웨어의 설치되는 과정에서 최종 이용자는 이미 저작권자가 정해둔 라이선스 조건을 ‘동의’하는 ‘클릭(click-through)’을 통해서 ‘수용(accept)’하는 구조이다. 최종 이용자는 소프트웨어가 담긴 CD 등을 구입할 때 소프트웨어 이용에 대한 라이선스 조건을 알 수 없으며 저작권자가 라이선스 계약의 내용을 미리 정해두었으므로 부합계약(附合契約)으로 여겨진다.");
// insertDB(frstRegisterId, glossaryService,"출력 보안 솔루션(Output Security Solution)","인쇄기 및 복합기 등 출력 기기를 통한 기밀 유출을 방지하기 위한 보안 기술. \r\n\r\n비인가자에 대한 물리적인 접근을 사전에 차단하는 집적 회로(IC) 카드 솔루션, 출력 장치의 사용 이력에 대한 실시간 모니터링으로 특정 사용자의 출력을 분석하는 출력 모니터링 솔루션, 워터 마크 관련 솔루션, 디지털 저작권 관리(DRM) 관련 솔루션과 최근 업계에서 주목받고 있는 이미지 로그 솔루션 등이 있다.");
// insertDB(frstRegisterId, glossaryService,"카피라이트 허브 (Copyright Hub)","다양한 형태의 저작물에 대한 라이선싱 정보를 한곳에서 제공함으로써 저작물 사용자들이 올바른 경로를 통해 소비할 수 있도록 유도하기 위해 영국을 중심으로 유럽에서 추진되고 있는 프로젝트이다.");
// insertDB(frstRegisterId, glossaryService,"캐싱 (Caching)","사용자의 요청이 많은 콘텐츠를 별도 서버에 저장해 빠른 데이터 전송을 가능케 하는 기술이다.");
// insertDB(frstRegisterId, glossaryService,"캡차(Captcha)","캡차(CAPTCHA)는 Completely Automated Public Turing test to tell Computers and Humans Apart의 약자로서 카네기멜론대학 연구원들이 만들었다. 프로그램 봇의 자동 로그인을 막기 위해서 사람만이 인식할 수 있는 기호나 문자를 제공한다.");
// insertDB(frstRegisterId, glossaryService,"코드 난독화 (Code Obfuscation)","프로그램을 바꾸는 방법의 일종으로, 코드를 읽기 어렵게 만들어 역공학을 통한 공격을 막는 기술을 의미한다. \r\n\r\n난독화는 대상에 따라 크게 소스코드 난독화와 바이너리 난독화로 나눌 수 있다. 소스코드 난독화는 C/C++/자바 등의 프로그램의 소스코드를 알아보기 힘든 형태로 바꾸는 기술이고, 바이너리 난독화는 컴파일 후에 생성된 바이너리를 역공학을 통해 분석하기 힘들게 변조하는 기술이다.");
// insertDB(frstRegisterId, glossaryService,"코드아이 (Code Eye)","한국저작권위원회가 개발한 오픈소스 소프트웨어 라이선스를 비교, 분석, 검사하는 서비스이다. \r\n\r\n기업들이 보유한 소프트웨어 소스 코드에 오픈소스 소프트웨어가 얼마나 포함되어 있는지 알려주고, 사용자들이 자신의 소스 코드 파일이나 폴더를 선택해 검사를 요청하면, 저작권위원회에서는 저작권위원회의 서버에 저장된 데이터베이스와 비교해 검사 보고서를 제공한다.");
// insertDB(frstRegisterId, glossaryService,"코드잼 서비스 (Codejam Service)","소스코드 저작자 확인 서비스로서 소프트웨어 핵심 기술 유출을 방지하기 위한 소스코드 워터마킹 기법을 활용한다. \r\n\r\n소스코드 저작자 확인 서비스 코드잼 아이(codejam-i) 및 소스코드 난독화 서비스 코드잼오(codejam-o)로 구성된다. CodeJam-i는 일종의 소스코드 워터마킹 서비스로, 저작자 확인을 위한 식별코드를 자동 생성하여 소스코드에 삽입한다. 향후에 저작권 문제가 발생하면 삽입된 식별코드를 자동 추출하여 검증할 수 있다. 그러므로 소스 코드에 내재되어 있는 알고리즘, 개발기법 등에 대한 유출을 방지할 수 있다. \r\n\r\n소스코드의 유출 및 도용이 발생하면 삽입된 저작자 식별코드를 검증하여 저작권 침해 사실을 입증할 수 있으므로 저작자 권리 구제에 효과적이다.");
// insertDB(frstRegisterId, glossaryService,"코스람 에코시스템 / KORSRM Echo System (Korea Smartphone Rights Management Echo System)","한국 스마트폰 저작권 관리 에코시스템으로서 스마트폰 애플리케이션 개발자의 권리를 보장하고 스마트폰에서 제공되는 유료 앱 뿐만 아니라 무료로 제공되는 앱의 이용 및 불법 유통 확산을 차단하기 위해 이용된다. 또한 지적 재산권이 있는 스마트폰 콘텐츠가 유통되는 과정에서 거래, 결제금액의 분배, 애플리케이션 사용 규칙이 적법하게 이루어지게 돕는 시스템이다.\r\n\r\nKORSRM은 Korea Smartphone Rights Management을 의미한다. 스마트폰 콘텐츠 유통 실태의 모니터링, 개발자 보호를 위한 인증 시스템, 콘텐츠 사용자에 대한 통제 및 관리 시스템, 콘텐츠 관리 시스템 등을 상호 협력적으로 수행하는 시스템이다.");
// insertDB(frstRegisterId, glossaryService,"콘텐츠 보호 및 복제관리 표준 / CPCM (Content Protection and Copy Management, DVB-CPCM)","유럽에서 개발한 디지털 TV 방송규격을 결정하는 사실상 국제 표준화 기구 DVB(Digital Video Broadcasting)가 규격화한 콘텐츠 보호 및 복제 관리 표준이다. \r\n\r\n케이블 방송, 위성방송, 지상파 방송, VOD 서비스, DVD 등 다양한 디지털 콘텐츠를 사용자가 홈 네트워크 또는 원격 접속을 통해 최종적으로 소비하거나 CPCM 범위를 넘어서는 콘텐츠 사용을 통제한다. DVB에서 제정한 방송 콘텐츠 보호 및 관리 기술 표준. 방송뿐만 아니라 홈 네트워크나 개인 영역 네트워크(PAN)까지 포함하고 있어 단순한 콘텐츠 복사 제어 기술과 달리 콘텐츠의 저작권 보호 및 안전한 유통에 최적화된 개념의 미래 지향적 기술이다.\r\n\r\n기존 CAS 기술이나 저작권 관리(DRM)기술은 하나의 단말기에서 복사를 제어하지만, CPCM은 가정 내 구성원이 소유하는 CPCM 단말기들의 집합 Authorized Domain(AD)을 구성하고 Usage State Information(USI)를 통해 AD내 또는 AD 범위 밖의 출력 범위에 디지털 콘텐츠가 복사되는 것을 제어한다.");
// insertDB(frstRegisterId, glossaryService,"콘텐츠 보호 시스템 아키텍처 / CPSA (Content Protection System Architecture)","개인용 컴퓨터, 가전제품에 걸쳐 사용되던 다양한 콘텐츠 보호 기술을 통합하는 보안 체제. \r\n\r\nIBM, Intel, Panasonic, Toshiba로 구성된 4C Entity가 개발했으며 아날로그와 디지털 비디오/오디오 콘텐츠 보호를 위해 암호화 기술과 워터마킹 기술을 기반으로 한다. 호환 가능한 디바이스가 복사 제어 정보 처리, 재생 및 출력, 녹화 시 콘텐츠를 안전하게 다루기 위한 11가지 공리(axiom)를 정책으로 택하고 있다. \r\n\r\n예를 들어 콘텐츠 보호 시스템 아키텍처(CPSA)와 호환이 되는 비디오 녹화장치는 디지털 전송 콘텐츠 보호 기술(DTCP)로 보호된 디지털 콘텐츠가 입력될 때 함께 전달된 복사 제어 정보를 이용하여 복사 허용 여부를 판단하고 복사가 가능하면 CPRM 기술로 콘텐츠를 보호한다. CPSA를 준수하는 저작권 보호기술은 녹화 미디어 콘텐츠 보호 CPRM(Content Protection for Recordable Media), 사전녹화 미디어 콘텐츠 보호CPPM(Content Protection for Pre-recorded Media), 콘텐츠 암호화 시스템 CSS(Content Scramble System), 디지털 전송 콘텐츠 보호 DTCP(Digital Transmission Content Protection), 고대역 디지털 콘텐츠 보호 HDCP(High Bandwidth Digital Content Protection), 제한적 접근 시스템 CAS(Conditional Access System), 4C/Verance Watermark가 있다.");
// insertDB(frstRegisterId, glossaryService,"콘텐츠 식별 기술 (Content Identification Technology)","워터마킹 또는 콘텐츠 특징정보(DNA) 기술을 이용하여 동영상・음악 콘텐츠를 식별하는 기술로 일반적으로 사후적 기술 보호 조치를 위한 콘텐츠의 불법 복사를 인식하거나 제어하기 위해 사용된다. 콘텐츠 식별을 위해서는 식별을 위한 지표가 필요한데 검색어, 해시값, 특징값 등이 지표에 해당한다.");
// insertDB(frstRegisterId, glossaryService,"콘텐츠 안전 교환 / SCE (Secure Content Exchange)","콘텐츠를 안전하게 공유하기 위해 오픈 모바일 연합(OMA: Open Mobile Alliance)이 제정한 기술 표준. SCE는 사용자 도메인을 생성해 그 안에 속한 디지털 저작권 관리(DRM) 지원 단말뿐만 아니라, 카 오디오 같은 일반 가전 단말에서도 DRM 콘텐츠 공유를 지원한다.");
// insertDB(frstRegisterId, glossaryService,"콘텐츠 암호화 시스템 / CSS (Content Scrambling System)","디지털 비디오 디스크(DVD)로 부호화할 때 키 값을 주어 하드디스크에서 재생되도록 한 복제 방지시스템으로, DVD-ROM에는 키 값을 복호화하는 회로가 내장되어 있어서 스크램블된 콘텐츠 파일을 완전하게 재생한다.");
// insertDB(frstRegisterId, glossaryService,"콘텐츠 요청 마크업 언어 / CRML (Content Request Markup Language)","멀티미디어 콘텐츠를 관리할 때 웹 서버 뒤에 분산 처리를 적용하는 콘텐츠 게시 프레임 워크로서 확장가능한 표시 언어(XML)에서 파생된 마크업 언어이다.");
// insertDB(frstRegisterId, glossaryService,"콘텐츠 인식 기술 (Content Recognition Technology)","멀티미디어의 고유한 특징을 추출하여 데이터베이스화하고 이를 기반으로 임의의 콘텐츠를 인식하는 기술.\r\n\r\n예를 들어, 동영상 콘텐츠 인식 기술은 각각의 동영상에서 프레임 단위별로 특정 인식 정보를 추출해 데이터베이스에 저장한 후 고속 검색 질의를 통해 저작권 동영상 여부를 판별한다.");
// insertDB(frstRegisterId, glossaryService,"콘텐츠 저작권 관리 및 보호 / IPMP (Intellectual Property Management & Protection)","MPEG의 지재권 관리 및 보호와 관련된 표준기술. \r\n\r\nDRM과 유사한 의미를 갖고 있다. 현재 MPEG 에서는 MPEG-2, MPEG-4, MPEG-7, MPEG-21에서 IPMP를 위한 표준기술을 제정했거나 제정 중이며 네트워크와 기기와 무관하게 콘텐츠의 저작권이 보호할 수 있는 인터페이스 표준의 제공에 초점을 두고 있다.");
// insertDB(frstRegisterId, glossaryService,"콘텐츠 저작권 관리 및 보호 기술 / IPMP-X (MPEG-4 Intellectual Property Management and Protection Extension)","네트워크 환경에서 생성, 변형, 전달되는 콘텐츠를 보호하기 위한 MPEG-21 표준기술이다. \r\n\r\nCryptographic Key, Cryptographic Algorithm, Key management의 IPMP 툴에 대한 검색 방법과 툴 간의 메시지 교환과 툴과 터미널 간의 메시지 교환 방법을 포함한다.");
// insertDB(frstRegisterId, glossaryService,"콘텐츠 전송망 / CDN (Content Delivery Network)","동영상과 같은 대용량 콘텐츠를 사용자들에게 빠른 속도로 안정적으로 제공하기 위한 기술이다. \r\n\r\n원거리에 콘텐츠를 전송하기 위하여 여러 대의 서버를 여러 인터넷 서비스 제공자에게 두면 비용이 증가하므로 이러한 문제를 해결하기 위하여 P2P 기술을 조합한 하이브리드 CDN 기술이 사용된다. 인터넷 서비스 제공자 네트워크에 캐시서버를 설치하여 콘텐츠 제공자(CP)의 콘텐츠를 각 인터넷 서비스 제공자(ISP) 네트워크마다 분산하여 저장하고, 사용자가 요청하면 사용자의 인터넷 회선에 연결되어 있는 인터넷서비스제공자 네트워크에서 콘텐츠를 전송한다.");
// insertDB(frstRegisterId, glossaryService,"콘텐츠 특징 규모 (Content Feature Size)","콘텐츠가 가지는 고유한 특징으로서 다른 콘텐츠와 구분 되는 정보를 ‘콘텐츠 특징점(feature) 혹은 ‘콘텐츠 DNA라고 한다. 콘텐츠의 특징정보 규모는 단위 시간당 특징정보의 크기에 원본 콘텐츠의 재생 시간을 곱한 값으로 측정한다.");
// insertDB(frstRegisterId, glossaryService,"콘텐츠 필터링 (Content Filtering)","저작물 보호에 있어서 콘텐츠 필터링은 저작물의 전송과 유통을 차단하기 위하여 전제로 요구되는 기술을 의미한다. \r\n\r\n필터링은 2가지 단계로 이루어지는데, 콘텐츠 식별 및 식별 결과에 따른 처리로 구성된다. 식별된 콘텐츠의 처리는 차단과 통과 2가지가 있다. 저작권자가 온라인 서비스 제공자에게 어떤 요청을 하느냐에 따라 또는 온라인 서비스 제공자의 자체 정책에 따라 차단 처리를 할 수도 있고 통과 처리를 할 수도 있다. 콘텐츠 필터링은 불법저작물의 유통을 방지하는 데에도 이용되지만(차단 처리의 경우), 저작물 유통에 대해 저작권자가 이용료(저작권료)를 받는 데에도 이용된다(통과 처리의 경우).\r\n\r\n구체적 필터링 방법으로는 ➀ 검색어 기반 필터링(제목 필터링, 문자열 필터링, 특정 유형의 파일 필터링), ➁ 해시(Hash)기반 필터링, ➂ 특징(Feature) 기반 필터링이 있다. 온라인 서비스제공자(OSP)는 여러 가지 필터링 방법을 조합하여 저작물의 무단 전송과 유통을 확인한 다음에 이용을 차단하거나 고소 절차를 진행한다.");
// insertDB(frstRegisterId, glossaryService,"크래킹 (Cracking)","소프트웨어 저작권을 보호하기 위해 도입된 복사 방지 기술(시리얼 번호 또는 패스워드 입력, 하드웨어 키 등)을 무력화할 목적으로 역공학 기술을 이용하여 소프트웨어에 수정을 가하는 공격기술. 최근에는 소프트웨어뿐만 아니라 영화, 음악, eBook 등의 보호를 위해 도입된 DRM 기술을 무력화하여 원본 콘텐츠를 추출하기 위한 공격도 이루어지고 있다.");
// insertDB(frstRegisterId, glossaryService,"크리덴셜 (Credential)","정보 시스템에서 사용하는 암호화된 개인 정보. 개인이 사용하는 공개키 암호 알고리즘을 위한 공개키 / 개인키 쌍, 공인 인증기관이 발행하는 공개키 인증서(certificate), 신뢰하는 루트 인증기관, 패스워드, 인가정보 등을 포함하는 암호정보의 총합. 대부분의 모바일 앱들은 크리덴셜을 활용한 자동로그인 기능을 제공한다. 크리덴셜은 사용자 아이디와 패스워드 정보를 토대로 생성된 보안 토큰으로 초기 인증 이후 크리덴셜 확인만으로 사용자 인증을 대신한다. 그러므로 만일 크리덴셜이 유출될 경우 사용자의 로그인 정보 및 개인정보 유출 등으로 인하여 불법적 콘텐츠의 사용이 가능하다.");
// insertDB(frstRegisterId, glossaryService,"크리에이티브 커먼즈 권리표현언어 / CC REL (Creative Commons Rights Expression Language)","크리에이티브 커먼즈(CC)가 권고하는 표준으로 저작권 라이선스에 관련된 용어 및 정보를 기계적으로 처리할 수 있도록 한다. \r\n\r\nW3C가 시맨틱 웹 활동을 위해 제작한 자원 서술 프레임워크(RDF)를 이용하여 컴퓨터가 기계적으로 인식하는 라이선스를 제시했다. CC REL은 저작권 라이선스를 적용한 문서의 특성(properties)을 모은 집합을 특정한 문법적 형식 없이 표시하므로 웹 개발자가 사용하는 문법과 무관하게 확장하거나, 재편집할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"크리에이티브 커먼즈 라이선스 / CCL (Creative Commons License)","자신의 창작물에 대하여 일정한 조건 하에 다른 사람의 자유로운 이용을 허락하는 자유 이용 라이선스. \r\n\r\n라이선스 일반 권리증서(Commons Deed)는 저작자 표시 조건(CC BY), 저작자 표시-비영리-동일조건 변경허락(CC BY-NC-SA), 저작자 표시-변경금지(CC BY-NC-ND)을 조합하여 다양하게 선택될 수 있다.");
// insertDB(frstRegisterId, glossaryService,"크립토락커 (CryptoLocker)","마이크로소프트 윈도 운영 체제를 사용하는 x86 컴퓨터를 공격하는 랜섬웨어 트로이목마. \r\n\r\n2013년 9월부터 배포되었으며 감염되었을 경우 로컬 및 연결된 네트워크의 드라이브에 저장된 파일들을 2048비트 RSA 공개키 방식의 공개키로 암호화한다. 복호화하기 위한 개인키는 크립토라커를 조종하는 서버에만 저장한다. 크립토락커는 컴퓨터 이용자에게 데이터를 복호화하고 싶으면 돈을 지불할 것을 요구하고, 제한시간이 지나면 암호키를 삭제할 것이라고 협박한다. 추적을 피하기 위해 주로 비트코인(Bitcoin)을 지불 수단으로 사용한다.");
// insertDB(frstRegisterId, glossaryService,"클라우드 기반 저작권 관리 (Cloud-based DRM)","클라우드 컴퓨팅(Cloud Computing) 환경에서 콘텐츠의 배포와 이용을 통제하는 저작권 관리(DRM) 서비스. \r\n\r\n2008년 할리우드 영화사, 전자제품 제조사, 콘텐츠 유통 회사, 네트워크 하드웨어 제조사, 시스템 통합(SI) 업체, 저작권 관리 업체들이 모여서 결성한 디지털 엔터테인먼트 콘텐츠 생태계 DECE(Digital Entertainment Content Ecosystem) 컨소시엄이 제작한 울트라바이올렛(UltraViolet) 서비스가 대표적이다.");
// insertDB(frstRegisterId, glossaryService,"키 배송 메시지 / KDM (Key Delivery Message)","콘텐츠를 합법적으로 이용할 수 있는 권리 허락 정보. 암호화된 정보를 포함하는 디지털 마스터링 된 상영용 파일(Digital Cinema Package, DCP)을 해독하기 위한 키 정보와 상영기간을 포함하고 있다.");
// insertDB(frstRegisterId, glossaryService,"타임 시프팅 (Time Shifting)","실시간으로 방송 콘텐츠를 녹화하였다가 다른 시각에 시청할 수 있는 기능이다. 시간 변경 기능을 의미하며, 홈 비디오의 대량 보급으로 이러한 비동시성이 가능해졌다. PVR (Personal Video Recorder), N-PVR(Network Personal Video Recorder) 등이 타임 시프팅을 가능하게 해주는 대표적인 기기이다.");
// insertDB(frstRegisterId, glossaryService,"탬퍼프루핑 (Tamper-Proofing)","소프트웨어가 불법으로 변조된 경우, 그 소프트웨어가 정상적으로 실행되지 않게 하는 기법이다. 소프트웨어 변조 공격을 방어하기 위한 방법으로는 프로그램에 변조검증코드를 삽입하는 것도 있다. 변조검증코드의 용도는 프로그램이 변조되었는지를 탐지하고 변조가 탐지되었다면 프로그램이 실행되지 않게 하는 것이다.");
// insertDB(frstRegisterId, glossaryService,"토렌트 리처 (Torrent Leecher)","토렌트에서 공유 파일의 일부만을 가지는 클라이언트.");
// insertDB(frstRegisterId, glossaryService,"토렌트 시더 (Torrent Seeder)","토렌트 네트워크에서 다수에게 분산되어 공유되는 파일들의 모든 조각을 가지고 있는 클라이언트.");
// insertDB(frstRegisterId, glossaryService,"토렌트 트래커 (Torrent Tracker)","토렌트에서 파일 공유를 위해 피어들의 정보를 관리하는 서버이다.");
// insertDB(frstRegisterId, glossaryService,"토렌트 트래커 사이트 (Torrent Tracker Site)","토렌트에 참여하는 사용자를 관리하는 서버이고, 비트 토렌트 프로토콜을 사용하여 피어들이 파일 정보를 주고받을 수 있게 중개 역할을 하는 서버를 일컫는 말이다.");
// insertDB(frstRegisterId, glossaryService,"토렌트 피어 (Torrent Peer)","토렌트에서 시더와 리처를 의미한다.");
// insertDB(frstRegisterId, glossaryService,"통합 저작권 번호 / ICN (Integrated Copyright Number)","저작물 권리관리정보에 대한 식별체계로서 통합 저작물 관리번호와 통합 저작자 번호로 구성되며 저작물과 저작권자, 이용조건 등의 권리 관계를 확인하기 위해 개발되었다. \r\n\r\nICN(통합저작권관리번호)를 활용하여 저작물 정보를 확인할 수 있다. ICN은 한국저작권위원회가 총괄기구의 역할을 맡았다. 총괄기구는 등록기관을 장르별, 기관별로 나누어 운영하도록 하며 등록기관 번호 및 식별자를 총괄한다. 등록기관은 저작권자 등록과 저작물 등록 및 관리번호 발급을 담당한다.");
// insertDB(frstRegisterId, glossaryService,"통합 저작권 정보 관리 시스템 / CIMS (Copyright Information Management System)","한국저작권위원회 디지털저작권거래소가 저작권 권리관리정보를 체계적으로 관리하기 위해 운영하는 시스템으로서(저작권법 제2조 제29호) 저작물 종류(음악・어문 등) 별로 저작권, 저작인접권, 공표연월일 등을 데이터베이스화 하고 신탁관리단체에게 기관코드(Prefix)와 저작물별 발급번호(Suffix)를 조합한 통합 저작권 관리번호(ICN)를 발급한다.");
// insertDB(frstRegisterId, glossaryService,"트러스트 컴퓨팅 그룹 / TCG (Trusted Computing Group)","보안을 위한 컴퓨팅 플랫폼의 표준을 개발하기 위하여 결성된 글로벌 보안 표준 기구. \r\n\r\n국제표준화기구/국제전기기술위원회 공동기술위원회(ISO/IEC JCT 1)에 공개규격(Publicly Available Specification, PAS)을 제출한다. 트러스트 컴퓨팅 그룹은 트러스트 플랫폼 모듈(Trusted Platform Module)이라는 하드웨어 칩 기반 암호화 처리 모듈의 기술 표준을 개발한다.");
// insertDB(frstRegisterId, glossaryService,"트러스트 컴퓨팅 기술 (Trusted Computing Technology)","컴퓨터가 사용자의 의도대로 동작할 수 있도록 신뢰성을 부과하는 기술. \r\n\r\n하드웨어 기반의 보안 칩(security chip), 즉 트러스트 플랫폼 모듈(Trusted Platform Module)을 모든 컴퓨팅 파워를 가지는 기기들에 공통으로 적용하고, 이를 위한 소프트웨어를 개방형 표준으로 제공하고자 하는 기술. TC 기술은 어떤 응용 프로그램이나 플랫폼이 출처를 알 수 없는 신뢰하기 어려운 콘텐츠에 접근하려고 시도하거나, 권한 범위를 벗어나 플랫폼에 읽기, 쓰기 등을 시도할 때 즉시 사용자에게 알려준다.");
// insertDB(frstRegisterId, glossaryService,"트러스트 플랫폼 모듈 / TPM (Trusted Platform Module)","일반적으로 소프트웨어만으로 운영되는 보안 기술은 다양한 보안 공격에 취약하므로 이러한 문제를 해결하고자 트러스트 컴퓨팅 그룹(Trusted Computing Group)은 암호화 키 관리와 암호화 처리가 하드웨어 보안 칩 내부에서만 동작하도록 보안 칩 표준 규격을 제시했다.\r\n\r\n TPM은 ‘신뢰할 수 있는 플랫폼 모듈’로도 불리며 하드웨어 기반의 보안 관련 기능을 제공하도록 설계되었다. TPM 칩은 암호화 작업을 수행 하도록 설계된 암호화 프로세서이다. TPM은 디지털 권리 관리 소프트웨어, 라이선스 보호 관리, 암호 보호에 사용되며 외부의 어떠한 공격으로부터 데이터, 키, 인증서 등을 안전하게 보호할 수 있는 저장 영역을 제공한다. 트러스트 플랫폼 모듈은 디지털 권리 관리 기술의 보안성을 높이기 위해 하드웨어 칩영역을 암호화한다. \r\n\r\n또한 마이크로소프트(MS)의 윈도 비스타 얼티밋, 엔터프라이즈, 윈도우 10 운영 체제에 포함된 비트로커(BitLocker) 등 ‘완전 디스크 암호화’를 위한 응용 프로그램에도 널리 사용된다.");
// insertDB(frstRegisterId, glossaryService,"특수한 유형의 온라인 서비스 제공자 (Special Types of Online Service Providers)","2006년 개정 저작권법은 ‘권리자의 요청이 있는 경우 온라인 서비스 제공자를 상대로 저작물의 불법적 전송을 차단하는 기술적 조치 등 대통령령이 정하는 필요한 조치를 취하’도록 하였다. 컴퓨터 등을 이용하여 저작물 전송을 주된 목적으로 하는 온라인 서비스 제공자는 다음과 같이 분류된다. \r\n\r\n➀ 개인 또는 법인 컴퓨터에 저장된 저작물을 공중이 이용할 수있도록 업로드한 자에게 상업적 이익 또는 이용 편의를 제공하는 온라인 서비스 제공자(예:적립 포인트를 이용해 쇼핑, 영화 및 음악 감상, 현금 교환 등을 제공하거나 사이버머니, 파일 저장 공간 제공 등 편의를 제공하여 저작물 등을 불법적으로 공유하는 자에게 혜택이 돌아가도록 유도) ➁ 개인 또는 법인(단체 포함)의 컴퓨터 등에 저장된 저작물 등을 공중이 다운로드 할 수 있도록 기능을 제공하고 다운로드 받는 자가 비용을 지불하는 형태로 사업을 하는 온라인 서비스 제공자(예: 저작물 등을 이용 시 포인트 차감, 쿠폰 사용, 사이버머니 지급, 공간 제공 등의 방법으로 비용을 지불) ➂ P2P 기술을 기반으로 개인 또는 법인(단체 포함)의 컴퓨터 등에 저장된 저작물 등을 업로드하거나 다운로드할 수 있는 기능을 제공하여 상업적 이익을 얻는 온라인 서비스 제공자(예 : 저작물 등을 공유하는 웹사이트 또는 프로그램에 광고 게재, 타 사이트 회원가입 유도 등의 방법으로 수익을 창출) ➃ 개인 또는 법인의 컴퓨터 등에 저장된 저작물 등을 검색하여 전송할 수 있는 프로그램의 제공을 주된 목적으로 하는 온라인 서비스 제공자를 말한다.");
// insertDB(frstRegisterId, glossaryService,"특징 기반 필터링 (Fingerprint Filtering)","콘텐츠의 고유한 특징값을 추출하여 데이터베이스로 만든 다음, 어느 콘텐츠의 특징값이 데이터베이스에 저장되어 있는 특징값과 일치하는지 비교하여 콘텐츠를 식별하는 기술. \r\n\r\n콘텐츠로부터 특징값을 추출하는 방법은 표준화되어 있지 않고, 주로 오디오와 비디오에 대한 특징값 추출 기술이 개발되어 있다. 오디오의 경우 전체 오디오 데이터를 일정한 구간으로 나누고 매 구간 3초 분량의 주파수를 특징값으로 하는 방식이 사용된다. 비디오의 특징값은 오디오와 장면(이미지) 모두에 대해 추출할 수도 있고, 오디오 또는 장면에 대해서만 추출할 수도 있다.\r\n\r\n이미지 데이터는 화소값 데이터를 뽑는다. 이러한 특징 정보는 콘텐츠가 복제 또는 변형(코덱 변경 등)되더라도 쉽게 변하지 않으며, 특징 정보를 콘텐츠의 오디오 신호와 영상 신호 중 어느 정보에서 추출하여 필터링 하는 지에 따라서 ‘오디오 필터링’과 ‘비디오 필터링’으로 나뉜다. 동영상 콘텐츠는 두 가지 특징 정보들을 모두 활용하여 필터링을 진행한다.");
// insertDB(frstRegisterId, glossaryService,"패키지 웹 앱 (Packaged Web Apps)","HTML, CSS, JavaScript 등과 같은 웹 자원을 웹 서버에 두지 않고 하나의 압축 파일로 묶은후 클라이언트로 다운로드 및 설치하여 오프라인으로 실행할 수 있는 웹 애플리케이션(web apps)의 표준이다. 이 표준은 W3C에서 제정하고 있으며 웹 애플리케이션의 패키징 구조와 메타데이터, 인증, 무결성 보장을 위한 디지털 서명 기술을 정의하고 있다.");
// insertDB(frstRegisterId, glossaryService,"페타바이트 / PB (Petabyte)","페타바이트(Petabyte)는 디지털 데이터의 단위로서 분량은 테라바이트(Terabyte)의 1,024배이다. \r\n\r\n기가바이트(Gigabyte)의 104만 8,576배에 해당한다. 만일 노래 한곡을 5메가바이트(Megabyte)이라고 계산하면 2억 1,474만 곡을, 영화 한편을 700 메가바이트(MB)로 기준으로 계산하면 153만편의 분량이다.");
// insertDB(frstRegisterId, glossaryService,"포렌식 마킹 (Forensic Marking)","이미지, 오디오, 비디오와 같은 디지털콘텐츠에 구매자의 정보나 유통 경로와 사용자 정보 등을 삽입하여 콘텐츠를 불법으로 유포하는 사람과 배포 경로를 추적하는 용도의 기술로, 콘텐츠를 배포할 때 공급받는 사용자의 정보를 함께 삽입하여 불법 복제의 근원지를 추적하는데 이용한다.");
// insertDB(frstRegisterId, glossaryService,"프로추어 제작 콘텐츠 / PCC (Proteur Created Contents)","전문가 수준의 실력을 갖춘 아마추어(Proteur)가 제작한 콘텐츠. 자신만의 전문 분야 정보, 엔터테인먼트, 취미활동 사진, 사회문제에 대한 의견 등 유용하고 흥미로운 정보를 인터넷에 올려서 많은 사람들이 공유한다. 일반 아마추어 사용자들이 재미로 만든 콘텐츠UCC(User Created Contents)와 비교하여 퀄리티에서 차이가 난다.");
// insertDB(frstRegisterId, glossaryService,"프록시 서버 (Proxy Servers)","클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속하게 해주는 컴퓨터나 응용 프로그램이다. \r\n\r\n서버와 클라이언트 사이에서 대리(proxy)로 통신을 중계 기능을 프록시라고 부른다. 프록시 서버를 사용하면 사용자의 진정한 인터넷 IP 주소를 드러내지 않고, 트래픽이 프록시 서버에서 나오는 것으로 위장할 수 있다.\r\n\r\n프록시를 사용하면 정부나 회사, 학교 등에서 막아 놓은 사이트를 방문해 내용을 볼 수 있다. 프록시 서버는 프록시 서버에 요청된 내용들을 캐시(cache)를 이용하여 저장해 두므로, 캐시 안에 있는 정보를 요구하는 요청에 대해 원격 서버에 접속하여 데이터를 가져올 필요가 없으므로 전송 시간을 절약할 수 있는 장점이 있다. 프록시의 유형에는 가상 사설망 VPN(Virtual Private Network) 웹 기반 프록시(Web Proxy) 등이 있다.");
// insertDB(frstRegisterId, glossaryService,"프리부팅 (Freebooting)","유튜브 또는 페이스북 등 온라인에서 발견되는 미디어를 저작자의 허락이 없이 자신의 웹사이트에 무단으로 게시하는 행위. \r\n\r\n다른 사람의 잘 만들어진 동영상을 게시한 후 사람들을 유도하여 다음에 조회수를 늘이고 광고 등을 붙여서 수익을 거두기도 한다. 프리부팅은 콘텐츠 저작자들의 권리에 대한 침해이지만 법적 제재를 받는 경우는 많지 않다.");
// insertDB(frstRegisterId, glossaryService,"프리 소프트웨어 운동 (Free Software Movement)","GNU프로젝트의 창시자 리처드 스톨먼이 1980년대에 소프트웨어의 정보 공유를 위해 시작한 운동으로서 일반 공중 라이선스(GPL)를 적용하므로 다수가 기여한 소프트웨어 개발에 대하여 자신의 배타적 기여를 주장하거나 소프트웨어에 대한 사유화가 금지된다.");
// insertDB(frstRegisterId, glossaryService,"프리웨어 (Freeware)","저작자(개발자)에 의해 무상으로 배포되는 컴퓨터 프로그램. \r\n\r\n프리웨어를 프리, 오픈소스 소프트웨어와 혼동해서는 안된다. 오픈소스 소프트웨어는 저작자가 공공의 사용을 위해 저작권을 주장하지 못하고 누구든지 자유로이 복사, 개정, 재배포할 수 있도록 라이선스 조건을 둔 것이다. \r\n\r\n반면 프리웨어는 개발자가 저작권을 보유할 수도 있고 포기할 수도 있는데 다운로드 비용은 무료이지만 저작권은 그대로 보유하고 있는 경우가 많다. 저작권을 보유하고 있는 프리웨어는 저작자의 허락 없이 복사하거나 개작하여 재배포해서는 안 된다. 프리웨어 저작자는 사용자가 일정한 기간 이후 요금을 지불하고 계속 사용하도록 요청하거나 셰어웨어(shareware)로 변경할 수도 있고, 프리웨어의 개정판을 페이웨어(payware)로 변경하여 유료로 판매할 수도 있다. \r\n\r\n프리웨어는 이용 목적(영리, 비영리)이나 사용자에 따라서 이용 기간과 범위를 별도로 규정하기도 하므로 사용 허락 범위를 반드시 구체적으로 확인하여야 한다.");
// insertDB(frstRegisterId, glossaryService,"필터 드라이버 (Filter Driver)","일종의 인터미디어트(Intermediate) 드라이버로 파일 시스템 드라이버나 디스크 드라이버와 같이 이미 상용화 되어 있는 드라이버에 전달되는 I/O 요청을 가로채어 기존 드라이버가 제공하는 기능을 보완하거나 새로운 기능을 추가할 수 있는 기회를 제공한다.");
// insertDB(frstRegisterId, glossaryService,"필터링 기술 성능평가 (Filtering Technology Performance Evaluation)","콘텐츠 필터링 기술이 실제로 적합한 기능을 수행하여 콘텐츠를 식별하는가를 평가하고 인증하는 것. 한국저작권위원회에서는 이미지, 비디오, 오디오에 대한 특징 기반 필터링 기술들에 대하여만 성능 평가를 수행하고 있다.");
// insertDB(frstRegisterId, glossaryService,"하이퍼트랜스포트 / HT (HyperTransport)","컴퓨터에서 기존 PCI(Peripheral Component Interconnect) 및 확장 PCI(PCI express) 입출력(I/O) 기술과의 소프트웨어 호환성을 제공하는 칩 간(chip-to-chip) 입출력 연결 기술. 하이퍼트랜스포트는 넓은 대역폭, 빠른 속도, 저비용 등을 제공한다. AMD가 개발하고 하이퍼트랜스포트(HyperTransport) 컨소시엄에서 주관한다.");
// insertDB(frstRegisterId, glossaryService,"해시값 (Hash value)","어떠한 정보의 입력에 해시함수를 적용하면 고유한 해시값으로 변환된다. 해시값을 대조하면 원본을 확인할 수 있다. 디지털 데이터가 증거 능력이 있으려면 진정성(authenticity),무결성(integrity), 신뢰성(reliability), 원본성(originality)이 만족되어야만 한다. 해시값은 무결성과 원본성을 증명하기 위해 사용되는 방법이다.");
// insertDB(frstRegisterId, glossaryService,"해시 기반 메시지 인증 코드 / HMAC (Hash-based Message Authentication Code)","송신자와 수신자만이 공유하고 있는 키와 메시지를 혼합해 해시 값을 만드는 것으로, 송신자와 수신자가 비밀키를 공유할 경우 보안되지 않은 채널을 통해 보낸 메시지가 훼손되었는지 여부의 확인에 사용된다.");
// insertDB(frstRegisterId, glossaryService,"해시 기반 필터링 (Hash Filtering)","해시함수를 이용하여 콘텐츠의 해시값을 구하여 이를 데이터베이스로 만든 다음, 어느 콘텐츠의 해시값이 데이터베이스에 저장되어 있는 해시값과 일치하는지 비교하여 콘텐츠를 식별하여 필터링을 구현하는 기술. \r\n\r\n온라인 서비스 제공자(OSP)는 콘텐츠의 해시값을 데이터베이스화하고 이를 이용한 콘텐츠 인식을 필터링에 적용한다. 해시값을 구하는 방법은 다양하며 표준화되어 있지 않다. 해시값은 콘텐츠를 구성하는 비트 하나라도 바뀌면 달라지기 때문에, 콘텐츠의 파일명을 변경하거나 인코딩을 바꾸거나, 장면 하나를 잘라 내거나, 자막을 바꾸어 삽입할 때에는 해시 기반 필터링으로 콘텐츠를 식별할 수 없다는 단점이 있다.");
// insertDB(frstRegisterId, glossaryService,"해시 함수 (Hash function)","임의의 길이의 데이터를 고정된 길이의 데이터로 매핑하는 함수로, 해시 함수에 의해 얻어지는 값은 해시 값, 해시 코드, 해시 체크섬 또는 간단하게 해시라고 한다. 해시 함수는 입력되는 데이터가 약간만 달라져도 해시에는 예측할 수 없는 큰 변화가 발생하며 전혀 다른값이 나오게 된다.");
// insertDB(frstRegisterId, glossaryService,"화이트박스 암호 (White Box Cryptography)","저작권 보호 기술을 구현하는 암호화 알고리즘 키의 유추를 방지하기 위해 암호화 키 정보를 암호화 알고리즘에 섞는 방법. \r\n\r\n화이트박스 암호 기술을 사용하면 공격자가 알고리즘 내부 동작을 분석하더라도 암호화 키를 쉽게 유추할 수 없다. 저작권 관리(DRM) 소프트웨어가 역공정을 통해 분석되지 않도록 화이트박스 암호화 기술을 이용하여 DRM 기술을 보호하는 사례가 늘고 있다.");
// insertDB(frstRegisterId, glossaryService,"확장성 권리 표시 언어 / XrML (Extensible Rights Markup Language)","저작권 관리기술 개발업체 콘텐츠가드(ContentGuard)가 개발한 저작권 표시 언어(Rights Expression Language)의 하나로서 디지털 콘텐츠 및 소프트웨어 응용 등의 디지털 자원을 이용하기 위한 권리와 조건, 콘텐츠 이용, 유통과 관련된 권리와 사용 규칙을 XML 언어로 표시한 것이다.");
// insertDB(frstRegisterId, glossaryService,"1 컴퓨터 1 카피 라이선스 (1 PC, 1 Copy License)","개인용 컴퓨터 기반의 라이선스를 말하는 것으로 복사본별, 즉 1대의 개인용 컴퓨터에 1개의 소프트웨어의 설치와 사용을 기준으로 판매한다.");
// insertDB(frstRegisterId, glossaryService,"3D 도면용 DRM (3D Printing DRM)","3D 프린팅에 의한 저작권이 침해 사례가 빈번해 지면서 저작권 관리(DRM) 기술을 통해서 해적행위를 막으려는 솔루션이 등장하고 있다. 3D 프린팅을 위하여 저작권 있는 도안이 무단으로 공유되는 것을 막고자 개발되었다. 이를테면 도면 구매자는 한 번 3D 인쇄를 하면 재사용할 수 없도록 제한되는 방식이다. 저작권 관리 기술 도입은 저작권자의 이익을 보호할 수 있으나 3D 산업의 활성화에 역효과를 낳을 수 있다는 우려도 있다.");
// insertDB(frstRegisterId, glossaryService,"ARM (Application Right Management)","저작권 관리 기술의 한 종류로 애플리케이션 마켓에서 구매한 애플리케이션이 합법적으로 구입된 콘텐츠인지 아닌지를 검사하여 저작권을 보호하기 위한 기능이다.");
// insertDB(frstRegisterId, glossaryService,"ARM 트러스트존 (ARM Trust Zone)","ARM 트러스트 존은 중앙처리장치(CPU)에 적용되는 보안기술로서 안전한 실행 환경을 제공한다. 고성능 컴퓨팅 플랫폼의 보안을 위해 사용되는 트러스트 존은 하드웨어를 기반으로 하며 보안 소프트웨어의 상위 레이어를 구축할 수 있는 강력한 토대를 제공한다. 트러스트존은 프로세서 코어(processor core)를 두 개로 분할한다. 하나는 노멀 월드(normal world)에서 실행되고, 다른 하나는 시큐어 월드(secure world)에서 작업을 수행한다. 보안의 필요성이 있는 작업은 시큐어 월드에서 안전하게 동작할 수 있다. ARM 홀딩스(ARM Holdings)는 시스템, 플랫폼, 단일 칩 시스템(System-on-a-chip)을 설계, 제조, 라이선스한다.");
// insertDB(frstRegisterId, glossaryService,"ASMD (Adaptive Source Multi Device)","N 스크린 서비스를 제공하는 형태는 초기에는 하나의 콘텐츠를 다수의 기기에서 연속적으로 볼 수 있는 OSMU(One Source Multi Use) 서비스로 한정되었으나, 최근에는 콘텐츠를 중심으로 다양한 정보를 인터랙티브하게 접할 수 있는 ASMD(Adaptive Source Multi Device)서비스가 등장하였다. N-스크린 서비스는 이동성, 스크린 크기, 화질이 다양한 디지털 기기에서 직렬적인 사용자 활동을 끊김 없이(seamless) 지원한다. 나아가 병렬적인 사용자 활동을 위한 서로 다른 스크린 단말간의 서비스의 분할 및 결합 등 상호작용을 통해 방송, 통신, 웹이 융합된 서비스를 제공한다");
// insertDB(frstRegisterId, glossaryService,"CAS-DRM 연동기술 (CAS-DRM System)","CAS(Conditional Access System)는 방송 콘텐츠를 인증 받은 사용자에게 전송하기 위한 기술로서 ‘스크램블링 기술’과 ‘키 관리 기술’로 구성된다. 그런데 CAS-DRM 연동기술은 ‘차세대 저작권 관리기술’로서 콘텐츠 보호기술 간 호환을 목표로 한다. \r\n\r\nCAS-DRM 연동기술을 이용하면 CAS를 통해 제공되는 디지털 방송 콘텐츠를 다양한 디지털 홈 기기에서 이용할 수 있다. IPTV CAS-DRM은 IPTV 콘텐츠의 보호를 위해 사용되는 CAS 기술과 DRM 기술을 연동하기 위한 인터페이스 규격의 표준화가 필수적이다. SCP Interoperability는 IPTV 콘텐츠 보호기술간 호환성을 보장하기 위해서 ITU-T SG17에서 그에 대한 표준화가 논의 중이다.");
// insertDB(frstRegisterId, glossaryService,"ePub (Electronic Publication)","국제디지털출판포럼(IDPF, International Digital Publishing Forum)이 제정한 개방형 전자책 기술 표준이다. \r\n\r\n전자책 포맷에도 ePub, pdf, azw 등이 있는데 2007년 ePub이 전 세계 공식 표준이 된 이후 아마존 킨들을 제외한 대부분의 전자책 업체들은 ePub 포맷으로 e북 콘텐츠를 생산한다. ePub은 HTML, CSS, 자바 스크립트 등으로 제작되며 웹 페이지로 표현할 수 있는 콘텐츠라면 ePub으로 표현할 수 있다. ePub은 자동공간조정(reflowable)이 가능하므로 사용자 기기의 크기에 맞춰 콘텐츠가 자동으로 최적화된다. 그러나 전자책 업체들이 콘텐츠에 적용하는 저작권 관리 기술은 각기 다르므로 ePub 파일들이 언제나 호환이 되는 것은 아니다.");
// insertDB(frstRegisterId, glossaryService,"HTML5","HTML은 웹에서 문서를 표현하고 웹문서들을 연결하는 것을 주된 목적으로 탄생하였다. 그러나 웹 환경이 크게 발전함에 따라서 표준적 방식으로 구현되는 웹 응용프로그램을 위해서 차세대 웹 표준 기술로 HTML5가 개발되었다. \r\n\r\nHTML5는 비표준이 존재하는 방대한 웹 문서를 의미 있게 구조화하는 역할을 하며, 효과적으로 정보를 탐색, 해석할 수 있는 시멘틱(semantic) 웹을 실현하기 위한 표준이다. HTML5는 플래시(flash)나 실버라이트(Silver Light)와 같은 별도의 플러그인 없이 웹에서 표준적인 방식으로 멀티미디어 재생이 가능하다. W3C를 주축으로 한 애플, 모질라,구글, 오페라, 마이크로소프트 등 모든 웹 브라우저 벤더가 참여하고 있는 산업 표준이다.");
// insertDB(frstRegisterId, glossaryService,"HTTP 기반 스트리밍 프로토콜 / HLS (HTTP Live Streaming)","애플에서 제안한 HTTP을 기반으로 하는 스트리밍 프로토콜 기술이다. 이 기술은 MPEG-2TS(Transport Stream) 패킷으로 구성된 다양한 품질의 비디오 데이터를 일정한 조각으로 잘라 여러 파일들로 분할하고 이 분할된 파일에 접근할 수 있는 주소 정보가 포함된 m3u8 파일을 사용자의 기기에 전달한다.");
// insertDB(frstRegisterId, glossaryService,"MIT 라이선스","미국 메사추세츠 공과대학이 소프트웨어 개발에 적용하기 위한 만든 라이선스. \r\n\r\nMIT 라이선스를 따르는 소프트웨어를 개조한 제품을 반드시 오픈소스로 배포해야 한다는 규정이 없으므로 GNU 일반 공중 라이선스에 규정된 엄격한 공개의무를 피하려는 사용자들에게 인기가 있다. MIT 라이선스를 적용한 소프트웨어로 X 윈도 시스템(X Window System)이 있다. X 윈도 시스템은 리눅스 등 유닉스 계열 운영체제에서 사용된다.");
// insertDB(frstRegisterId, glossaryService,"MPEG (Motion Picture Experts Group)","Motion Picture Experts Group은 국제표준화기구(ISO)와 국제 전기 위원회(IEC)가 정보를 표현하는 방식의 표준화를 위해 구성한 공동 위원회(JTC1, Joint Technical Committee 1) 산하소분과(SC29, Sub-Committee 29)의 별칭이다. 오디오, 비디오 파일의 압축 및 다중화에 관한 표준을 제정하여 왔다.");
// insertDB(frstRegisterId, glossaryService,"N 스크린 서비스 (N-screen Service)","다수의 디지털 기기에서 동일한 콘텐츠를 이용할 수 있는 서비스. 스마트폰, 개인용 컴퓨터, 스마트TV・태블릿 PC・자동차 등 다양한 디지털 정보기기 등 N개의 스크린에 동일한 콘텐츠를 끊김 현상이 없이 이용할 수 있다. N-스크린 서비스 네트워크를 효율적으로 끊김 없이 유지하기 위해 P2P(Point to point) 스트리밍 기술이 주로 사용된다. 서비스 영상이 중단 되지않도록 하기 위해서는 적응형 스트리밍 기술이 사용된다. P2P 스트리밍 기술은 콘텐츠를 수신받는 모든 디지털 기기들이 서버에서 콘텐츠를 전송받지 않고, 근접한 사용자 클라이언트로부터 전송받는 기술이다.");
// insertDB(frstRegisterId, glossaryService,"P2P 그리드 (P2P Grid)","분산 컴퓨팅 기술의 일종으로 P2P로 연결된 피어들의 하드웨어 자원을 서버처럼 재활용 한다. 콘텐츠 제공 서버가 클라이언트에게 모든 콘텐츠를 전달하지 않고 특정 콘텐츠를 피어가 가지고 있는 경우에는 P2P 방식으로 콘텐츠를 다운로드 받을 수 있다. 하이브리드 CDN에서 활용되며, 웹하드 서비스나 포털의 실시간 스포츠 중계, 윈도우 10 업그레이드, 아프리카 TV, 곰 TV 등에서 사용하고 있다.");
// insertDB(frstRegisterId, glossaryService,"P4P (Proactive Network Provider Participation for P2P)","비트 토렌트 방식의 P2P는 트래커가 피어를 선정할 때 피어(peer)가 어느 인터넷서비스제공자(ISP)에 속해 있는지를 고려하지 않고 무작위로 선정하기였다. 그로 인하여 ISP간 IX트래픽 문제가 발생했다. P4P는 인터넷서비스 제공자(ISP)의 네트워크 정보를 활용하여 동일한 인터네서비스 제공자에 속한 피어를 선정하도록 한다.");
// insertDB(frstRegisterId, glossaryService,"UCI (Universal Content Identifier)","식별 가능한 자원의 효율적 유통과 활용을 위해 각 자원마다에 유일한 영구적 코드를 부여하고 관리하는 표준. \r\n\r\nUCI 식별체계는 구문구조, 메타데이터, 운영시스템, 운영절차가 유기적으로 결합되어 있으며 URN(Uniform Resource Name)을 기반으로 디지털콘텐츠 유통 인프라의 구축을 목표로 2000년 한국전산원(NCA)이 개발했다(http://www.uci.or.kr). UCI 식별체계의 운영은 전반적 UCI 운영을 담당하는 총괄기구, 디지털콘텐츠에 대한 식별정보를 등록받고 UCI를 부여하는 등록관리기관(RA), 자원에 대한 식별정보의 등록자로 나뉜다. 한국저작권위원회는 UCI 식별체계의 총괄기구를 담당하고 있다.");
// insertDB(frstRegisterId, glossaryService,"UCI 등록기관 / UCI RA (UCI Registration Agency)","등록자에게서 자원에 대한 식별정보를 등록받고 해당 자원에 식별자를 부여하는 기관이다.");
// insertDB(frstRegisterId, glossaryService,"UCI 명세서 (UCI Specification)","UCI를 이해하기 쉽도록 자세하게 설명해 놓은 규격서. 2004년 7월 UCI 명세서 ver.1.0이 발표된 이후, UCI 체계의 적용 범위 확대에 따라 보완을 거쳐 2012년 11월 UCI 명세서 ver.3.0이 발표되었다.");
// insertDB(frstRegisterId, glossaryService,"간접전시 (Indirect Display)","저작권법 제19조(전시권)는 “저작자는 미술저작물 등의 원본이나 그 복제물을 전시할 권리를 가진다.”고 규정하고 있어서 저작자가 미술저작물 등(사진저작물 또는 건축저작물 포함)의 원본이나 그 복제물을 전시할 수 있는 권리를 부여하고 있는데 반하여, 미국 저작권법에서는 전시권의 대상이 건축저작물과 음반을 제외한 모든 저작물이라고 규정하여 저작물을 직접 보여주는 직접 전시뿐만 아니라, 저작물을 필름, 슬라이드 등 기타 장치를 통해 보여주는 것도 포함하고 있는데 이러한 전시를 간접전시라고 정의하고 규제하고 있다.");
// insertDB(frstRegisterId, glossaryService,"결합저작물 (Composite Work; Oeuvre Composite)","2인 이상이 공동으로 창작에 관여하여 하나의 저작물이 완성된 경우에 창작에 관여한 저작자 사이에 공동관계가 인정되지 않고, 각자의 창작부분이 분리되어 이용 가능한 저작물로서, 예컨대, 뮤지컬(대법원 2004마639 결정), 삽화와 글로 구성된 표준전과(서울민사지방법원 91가합39509 판결), 자료집에 게재된 심포지움이나 세미나의 발표문, 음악저작물(작곡과 작사가 분리 이용) 등은 결합저작물에 해당한다.");
// insertDB(frstRegisterId, glossaryService,"계속적 저작물 (Successive Work)","저작물은 계속성의 유무에 따라 일회적 저작물과 계속적 저작물로 구분되는데, 계속적 저작물이란 신문 연재소설 등과 같이 계속적으로 저작물이 발행 또는 공표되는 저작물로, 이러한 계속적 저작물 보호기간의 기산점인 공표시기를 명백히 하기 위하여 축차저작물과 순차저작물로 구분한다. 축차저작물은 매호의 공표시부터 보호기간이 기산되지만, 순차저작물은 순차적으로 공표되는 저작물의 최종부분의 공표시를 공표시기로 본다(저작권법 제43조 제1항).");
// insertDB(frstRegisterId, glossaryService,"공공저작물의 자유 이용 (Free Use of Government Works)","공공저작물은 국가, 지방자치단체 또는 공공기관이 저작재산권을 가지고 있는 저작물로서, 국가 또는 지방자치단체가 업무상 작성하여 공표한 저작물이나 계약에 따라 저작재산권의 전부를 보유한 저작물은 허락 없이 이용이 가능하다(「저작권법」 제24조의2제1항 본문). 다만, 저작물이 다음의 어느 하나에 해당하는 경우에는 저작재산권자의 허락 없이 이용이 불가하다.\r\n\r\n- 국가 안전 보장에 관련되는 정보를 포함하는 경우\r\n- 개인의 사생활 또는 사업상 비밀에 해당하는 경우\r\n- 다른 법률에 따라 공개가 제한되는 정보를 포함하는 경우\r\n- 한국저작권위원회에 등록된 저작물로서 「국유재산법」에 따른 국유재산 또는 「공유재산 및 물품 관리법」에 따른 공유재산으로 관리되는 경우\r\n\r\n그리고 공공저작물에 대한 이용은 저작인격권 가운데 동일성유지권을 침해하지 않는 범위에서만 가능하므로, 저작물의 번역, 편곡, 개작 시에 공공저작물의 본질적 내용을 변경할 수 없다.");
// insertDB(frstRegisterId, glossaryService,"공공누리 / KOGL (Korea Open Government License)","공공저작물 중 공공기관이 작성한 저작물 중 일부 저작물은 현재 유상거래가 되고 있고, 공공기관의 성격도 다양하여 공공기관의 공공저작물의 경우에 일률적으로 무상이용하도록 하지 않고, 정부의 시책을 통해 공공저작물의 유형 및 이용 조건을 이용자가 편리하게 이해할 수 있도록 표시한 이용허락표시. 공공누리가 표시된 저작물을 이용하는 경우, 별도의 비용이 들지 않고, 이용 허락 기간의 제한이 없으며, 이용 조건만 준수한다면 복제・배포・공중 송신・공연・대여 등의 모든 저작재산권을 자유롭게 이용 가능하다(「공공데이터의제공 및 이용 활성화에 관한 법률」 제26조제1항 및 공공누리 홈페이지). 저작물을 자유롭게 수정, 재편집할 수 있도록 허용하므로 디지털 공유 문화 확산에 적합하다는 평가를 받는다.\r\n\r\n「국유재산법」에 따른 국유재산, 「공유재산 및 물품 관리법」에 따른 공유재산으로 관리되는, 한국저작권위원회에 등록된 저작물 가운데 국민의 이용이 필요하다고 인정되는 공공저작물은 자유롭게 사용할 수 있다(「저작권법」 제24조의2제3항, 「저작권법 시행령」 제1조의3제2장 전단).");
// insertDB(frstRegisterId, glossaryService,"공공대출권 (Public Lending Rights)","도서관에서 소장하고 있는 도서나 음반을 공중에게 대출하는 것을 인정하는 경우에는 그 도서나 음반이 이용되는 만큼 저작자로서는 판매의 기회를 잃어 재산적 손실을 보게 되므로 보상금을 지급하여야 한다는 것이다. 공공대출권 제도는 1946년에 덴마크에서 세계 최초로 시작된 이래 영국・독일・네덜란드・오스트레일리아 등에서 성공적으로 시행되고 있다고 하나, 우리나라에서는 아직 도입하지 않고 있다.\r\n\r\n※ 공중대출권과 유사한 개념으로서 대여권에 관한 저작권법 규정\r\n- 제21조(대여권) 제20조 단서에도 불구하고 저작자는 상업적 목적으로 공표된 음반(이하 “상업용 음반”이라 한다)이나 상업적 목적으로 공표된 프로그램을 영리를 목적으로 대여할 권리를 가진다.\r\n- 제71조(대여권) 실연자는 제70조의 단서의 규정에 불구하고 그의 실연이 녹음된 상업용 음반을 영리를 목적으로 대여할 권리를 가진다.\r\n- 제80조(대여권) 음반제작자는 제79조의 단서의 규정에 불구하고 상업용 음반을 영리를 목적으로 대여할 권리를 가진다.");
// insertDB(frstRegisterId, glossaryService,"공공저작물 (Government Works)","정부, 지방자치단체나 공공기관이 저작재산권을 가지고 있는 저작물로서, 연구보고서, 사진, 동영상, DB 등의 저작물이다. 정부는 2013년 12월 30일 법률 제12137호에 의한 저작권법 개정을 통해 신설된 저작권법 제24조의2에서 공공저작물의 자유이용을 보장하고, 그 이용을 활성화하기 위하여 정부나 지방자치단체의 공공저작물을 자유이용하거나 또는 공공기관이 작성한 공공저작물에 대한 자유이용허락표시 ‘공공누리’를 통해 자유이용할 수 있도록 하였다.");
// insertDB(frstRegisterId, glossaryService,"공공저작물 관리 주체 (Authorized Officer of Government Works Management)","체계적이고 효율적인 공공저작물 관리를 위해 총괄 담당자 지정이 필요하다.\r\n\r\n※ 공공데이터 관리 담당자가 있는 기관에서는 해당 담당자를 공공저작물 관리 총괄 담당자로 지정할 수 있으며, 기관사정에 따라 별도의 지정 가능하다.\r\n- 총괄 담당자는 업무상 저작물의 작성 및 저작물 발주를 책임지는 개별 담당자와 긴밀한 협조 하에 양질의 공공저작물 개방 및 이용 활성화를 추진해야 한다.\r\n- 총괄 담당자는 공공저작물 창작, 이용, 관리의 생명 주기(Life Cycle)에 따라 각 단계별 업무를 수행하는 담당자와의 협력 및 연계가 필요하다.\r\n☞ 저작물 창작에 관여한 업무 담당자 : 저작물의 특성을 파악하고 자유이용 대상 저작물임을 확인하는 업무 수행에 협조해야 한다.\r\n☞ 저작물 계약에 관계된 업무 담당자 : 저작물의 권리 귀속을 확인하기 위한 업무 수행에 협조해야 한다.");
// insertDB(frstRegisterId, glossaryService,"공공저작물 권리 처리 (Copyright Clearing Methods of Government Works)","공공기관에서는 관리 대상인 공공저작물의 권리 귀속 주체를 명확히 확인하여 공공저작물의 자유이용 대상 여부를 결정하며 아래의 유형을 확인한다.\r\n\r\n- 공공기관이 단독으로 직접 창작\r\n- 공공기관이 제3자와 공동으로 직접 창작\r\n- 제3자에게 창작을 위탁\r\n- 저작권의 이전");
// insertDB(frstRegisterId, glossaryService,"공동실연자 (Joint Performer)","‘실연(Performance)’이란 저작물을 연기・무용・연주・가창・구연・낭독 그 밖의 예능적 방법으로 표현하거나 저작물이 아닌 것을 이와 유사한 방법으로 표현하는 것을 말하며, 실연자는 실연을 하는 자를 말하고, 실연을 지휘, 연출 또는 감독하는 자를 포함한다(저작권법 제2조 제4호). \r\n\r\n공동실연자는 2인 이상이 공동으로 합창・합주 또는 연극 등을 실연하는 자로, 공동실연자의 권리(실연자의 인격권은 제외한다)는 공동으로 실연하는 자가 선출하는 대표자가 이를 행사한다. \r\n\r\n이때 대표자가 행사할 수 있는 권리는 해당 실연에 대한 복제권, 배포권, 대여권, 공연권, 방송권, 전송권은 물론 방송사업자, 디지털음성송신사업자와 공연사용자에 대한 보상청구권의 행사도 포함되며, 보상청구권은 지정단체를 통해서만 행사할 수 있다. 다만, 대표자의 선출이 없는 경우에는 지휘자 또는 연출자 등이 이를 행사한다(법 제77조 제1항).");
// insertDB(frstRegisterId, glossaryService,"공동저작물 (Joint Works)","2인 이상이 공동으로 창작한 저작물로서 각자의 기여한 부분을 분리하여 이용할 수 없는것(저작권법 제2조 제21호)을 의미하는 것으로 2인 이상의 공동이 창작적 기여가 있고, 공동창작의 의사가 있으며, 각자의 기여한 부분이 분리하여 이용할 수 없어야 한다. 공동 저작물의 저작인격권(저작권법 제15조 제1항)과 저작재산권(저작권법 제48조 제1항)은 공동저작자의 의사를 존중하면서도 합의의 성립을 촉진하여 저작물의 원활한 이용을 도모하기 위하여 신의칙에 반하지 않으면 저작자 전원이 동의해야 행사할 수 있도록 하고 있다. 그러므로 저작재산권도 다른 저작재산권자들의 동의가 없으면 지분을 양도하거나 질권의 목적으로 할 수도 없지만, 공동저작물에 대한 지분을 포기할 수 있으며, 포기하거나 상속이 없이 사망하면 그 지분은 다른 공동저작재산권자에게 그 지분 비율에 따라 분배된다.");
// insertDB(frstRegisterId, glossaryService,"공동창작의 의사 (Intention to Create a Joint Work)","2인 이상이 공동으로 창작한 저작물로 각자가 기여한 부분을 분리하여 이용할 수 없는 저작물을 공동저작물이라고 정의하고 있다. \r\n\r\n그 요건으로 공동의 창작행위와 함께 공동창작의 의사가 있어야 한다. 여기서 공동창작의 의사가 주관적으로 공동저작의 참가자들 사이에 주관적으로 공동창작의 의사가 있어야 하는 것인지 아니면 객관적으로 공동저작의 참가자들 사이에 창작행위를 공동으로 한다는 행위의 공동을 중시하는 것인지에 대하여 학설의 대립이 있었다. \r\n\r\n대법원은 친정엄마 사건(대법원 2014.12.11. 선고 2012도16066판결)에서 “공동창작의 의사는 공동의 창작행위에 의하여 각자의 이바지한 부분을 분리하여 이용할 수 없는 단일한 저작물을 만들어 내려는 의사를 의미”하는 것으로 판결하였다.");
// insertDB(frstRegisterId, glossaryService,"공연권 (Performing Rights)","저작자는 자신의 저작물을 스스로 공연하거나 타인에게 이를 하도록 허락하거나 하지 못하도록 금지할 배타적인 권리인 공연권을 가진다(저작권법 제17조). 이때 ‘공연’이란 저작물 또는 실연・음반・방송을 상연・연주・가창・구연・낭독・상영・재생 그 밖의 방법으로 공중에게 공개하는 것을 말하며, 동일인의 점유에 속하는 연결된 장소 안에서 이루어지는 송신(전송을 제외한다)을 포함한다(제2조 제3호). \r\n\r\n공연권과 복제권은 엄격하게 구분되는데, 저작권자가 저작물의 복제만을 허락한 경우에 그 허락을 받은 자가 해당 저작물을 공연하려면 별도로 공연권 허락을 받아야 한다(대법원 1994.5.10. 선고 94도690 판결). 다만, 공연권은 비영리 목적으로 청중이나 관중 또는 제3자로부터 어떤 명목으로든지 반대급부를 받지 않고, 실연자에게 통상의 보수를 지급하지 않으면 저작권자의 허락 없이도 공표된 저작물을 공연할 수 있으며, 청중이나 관중으로부터 당해 공연에 대한 반대급부를 받지 않으면 유흥주점 등 대통령령 제11조에서 정하는 시설이나 장소 등 일정한 경우를 제외하고는 상업용 음반 또는 상업적 목적으로 공표된 영상저작물을 재생하여 공중에게 공연할 수 있다(저작권법 제29조). \r\n\r\n저작자의 저작물을 공중에 공개할 수 있는 권리로, 저작자는 연극이나 영화, 음악 등은 상연, 상영, 연주 등의 방법으로 자신의 권리를 행사한다. 예컨대 작곡가는 자신의 음악을 다른 사람이 연주할 수 있도록 하는 권리를 가지며, 각본작가는 자신의 각본을 연극으로 구현하여 연기자가 작품의 내용을 관객에게 전달 할 수 있도록 하는 권리를 가진다고 할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"공중송신권 (Public Transmission Right)","저작자는 그의 저작물을 공중송신할 권리를 가진다(저작권법 제18조). ʻ공중송신ʼ이라함은, 저작물, 실연・음반・방송 또는 데이터베이스(이하 “저작물 등”이라 한다)를 공중(public)이 수신하거나 접근하게 할 목적으로 무선 또는 유선통신의 방법에 의하여 송신하거나 이용에 제공하는 것을 말한다(동법 제2조 제7호).");
// insertDB(frstRegisterId, glossaryService,"공중전달권 (Communication to the Public Right)","유선 또는 무선으로 공중의 구성원이 선택한 장소와 시간에 저작물에 접근할 수 있도록 저작물들을 공중에게 전달할 수 있거나 금지할 수 있는 저작권자의 배타적인 권리로서 대한민국의 공중송신권과 유사하지만, 이러한 공중전달권에는 방송권과 디지털음성송신권이 일반적으로 인정되지 않는다는 사실을 인지할 필요가 있다.");
// insertDB(frstRegisterId, glossaryService,"공통의 오류 (Common Errors)","저작권 침해의 기본요건인 의거성과 실질적 유사성을 판단하는 경우에 실질적 유사성 부분은 원고와 피고의 저작물에 있어서 창작적인 부분을 비교하는 것이지만 의거성을 판단하는데 있어서는 창작적인 부분뿐만 아니라 비창작적인 부분도 이용할 수 있다. \r\n\r\n이러한 경우 자주 이용되는 것이 공통의 오류이다. 즉 원고와 피고의 저작물에 공통의 오류가 있다면 의거성이 사실상 추정이 된다. 그러나 이러한 의거성은 저작권 침해를 판단함에 있어서 간접적인 증거로서의 역할을 할 뿐 원고와 피고의 저작물에 있어서 실질적 유사성 판단을 다시하여야 한다.");
// insertDB(frstRegisterId, glossaryService,"권리소진의 원칙 (Right of Exhaustion; First Sale Right)","저작권법 제20조는 저작권자에게 배포권을 부여하면서도 그 단서에서 ‘다만, 저작물의 원본이나 그 복제물이 당해 저작재산권자의 허락을 받아 판매 등의 방법으로 거래에 제공된 경우에는 그러하지 아니하다’라고 규정하여 배포권을 제한하고 있다. \r\n\r\n이는 저작권자가 해당 저작물을 적법하게 판매한 이후에도 계속 배포권을 인정하게 되면, 저작물이 거래되는 경우마다 다시 저작권자의 허락을 받아야 하는 불편함이 있고, 거래에 혼잡을 초래하며, 소비자의 이익을 침해하는 문제가 발생하여 인정되는 원칙이다. EU에서는 원칙적으로 유형물에 화체되어 저작물이 이전하는 것이 원칙이지만 컴퓨터프로그램만인 경우에는 전송이 된 경우에도 권리소진이 적용된다고 하고, 미국에서는 배포권 뿐만 아니라, 전시권, 비디오게임의 공연권에 대해서도 권리를 제한하고 있다. 그러므로 권리소진의 원칙은 각 나라마다 약간씩 차이가 있다.");
// insertDB(frstRegisterId, glossaryService,"권리 침해 복제물 (Infringing Copies)","그 제작이 저작물에 대한 저작권의 침해를 구성하는 것으로서, 제작과정이나 방법을 불문하고 제작된 저작물의 복제물을 말한다. 시청각 고정물, 음반 또는 그 복제물의 경우 침해복제물의 제작은 관련 저작인접권도 침해하게 된다. 그 복제물은 원칙적으로 압류의 대상이다.\r\n\r\n저작권법에 의해 보호받는 저작권이나 저작인접권 등 권리를 침해하여 제작된 복제물의경우, 저작권법 제133조는 문화체육관광부장관 등이 저작권 그 밖에 이 법에 따라 보호되는 권리를 침해하는 불법복제물(정보통신망을 통하여 전송되는 복제물은 제외한다) 또는 저작물 등의 기술적 보호조치를 무력하게 하기 위하여 제작된 기기・장치・정보 및 프로그램을 발견한 때에는 대통령령으로 정한 절차 및 방법에 따라 관계공무원으로 하여금 이를\r\n수거・폐기 또는 삭제하게 할 수 있으며, 저작권법 제133조의2에 의거하여 문화체육관광부장관은 정보통신망을 통하여 저작권이나 그 밖에 이 법에 따라 보호되는 권리를 침해하는 복제물 또는 정보, 기술적 보호조치를 무력하게 하는 프로그램 또는 정보가 전송되는 경우에는 심의위원회의 심의를 거쳐 대통령령으로 정하는 바에 따라 온라인서비스제공자에게 불법복제물 등의 복제・전송자에 대한 경고, 불법복제물 등의 삭제 또는 전송 중단의 조치를 할 것을 명할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"글자체(Typeface)","한 벌의 문자・서체 등에 대하여 독특한 형태의 디자인을 의미하고, 인쇄기술적 방법에 의한 것만 포함하는 것으로 이해할 수 있지만 현대 사회에서는 컴퓨터에 의하여 구현된 것도 포함하는 것으로 해석하고 이해된다. 그러나 글자체는 일반적으로 저작권법에 의해 보호되지 않는데(대법원 1996.8.23. 선고 94누5632 판결), “Be The Reds!” 사건에서 법원은 이사건에서 문자를 표현의 소재 내지 도구로 사용하였고, 순수한 서예작품이 아니지만 문자로서의 본래 기능보다 시각적・형상적 사상의 표현에 주안점을 둔 것임을 이유로 응용미술저작물성을 인정한 사례도 있다(서울서부지법 2012.8.23. 선고 2012노260 판결). 이러한 글자체가 프로그램화되어 있다면 컴퓨터프로그램으로 보호된다.");
// insertDB(frstRegisterId, glossaryService,"기술적 보호 조치(Technological Protection Measures)","저작권법에 따라 보호되는 권리의 행사와 관련하여 저작권법에 따라 보호되는 저작물 등에 대한 접근을 효과적으로 방지하거나 억제하기 위하여 그 권리자나 권리자의 동의를 받은 자가 적용하는 기술적 조치 또는 저작권법에 따라 보호되는 권리에 대한 침해 행위를 효과적으로 방지하거나 억제하기 위하여 그 권리자나 권리자의 동의를 받은 자가 적용하는 기술적 조치로 저작권법 등에 따라 보호되는 권리의 행사・침해방지를 위해 적용하는 기술적 조치들에는 암호화, 시리얼 번호 복사 관리 시스템 SCMS, 디지털 워터마크(digital watermark), 디지털 서명, 비밀번호 확인 프로그램 등이 있다. 2011년 한-미 FTA에 따른 저작권법 개정에서 저작물 ʻ접근통제ʼ 기술까지 법적 보호의 대상으로 확대되었으므로 기술적 조치에 대한 우회가 금지된다.");
// insertDB(frstRegisterId, glossaryService,"대여권 (Rental Right)","저작권자에게는 배포권의 예외로 권리소진의 원칙에 따라 최초판매가 이루어지면 저작권자의 배포권은 소진되며, 따라서 적법한 양수인은 이를 재판매하거나 대여할 수 있게 된다. 다만 음반이나 컴퓨터프로그램 또는 그 복제물의 상업적 대여는 결국 저작권자가 저작물 판매로 인하여 얻을 수 있는 수익을 감소시킬 수 있기 때문에 이러한 점을 감안하여 권리소진의 원칙에 대한 예외로서 상업적 목적으로 공표된 음반(상업용 음반)이나 상업적 목적으로 공표된 프로그램을 영리를 목적으로 대여할 권리를 부여하고 있다(저작권법 제21조).\r\n\r\n이외에도 저작권법은 실연자의 실연이 녹음된 상업용 음반을 영리 목적으로 대여할 권리를 실연자에게 부여하고 있고(제71조), 상업용 음반을 영리를 목적으로 대여할 권리를 음반제작자에게 부여하고 있다(제80조). 다만 대여권은 영리 목적인 경우로 제한되므로, 개인적인 대여에는 대여권이 미치지 않는다. \r\n\r\n상업용 음반이나 상업용 컴퓨터프로그램이 화체되어 있는 복제물 대여업이 발전하면서 이러한 대여업이 전체 저작권 산업 전반을 위협할 수 있다는 우려의 제기로 이에 대처하기 위하여 세계 각국은 음반이나 컴퓨터프로그램, 서적, 비디오테이프 등 영상저작물 등 그러한 대여업이 크게 성행할 수 있는 분야를 중심으로 최초판매의 원칙을 제한하거나 대여권이라는 새로운 권리를 신설함으로써 저작자의 이익을 보호하는 방향으로 입법을 하게 되었다.");
// insertDB(frstRegisterId, glossaryService,"동시중계방송권 (Simultaneous Broadcasting Right)","저작인접권자인 방송사업자에게는 복제권과 동시중계방송권이 부여되는데, 동시중계방송이란 다른 방송사업자의 방송을 수신과 동시에 재방송하는 것을 말한다. \r\n\r\n일반적으로 알려진 지상파 방송을 다시 방송하는 Repeat-Broadcasting과는 저작권법에 의미하는 재방송은 지상파 방송사업자에게서 수신한 방송을 동시에 방송하거나 또는 이미 송신된 방송을 수신하여 녹음・녹화한 방송을 이시에 방송하는 것을 포함한다. \r\n\r\n저작권은 개별주체에 따라 이용방법이 다르므로 저작물의 방송을 허락하였다고 하여 반드시 저작물의 재방송(rebroadcasting)까지 포함하여 허락한 것은 아니므로 재방송 시에도 권리처리를 하여야 한다. 저작권법에서는 이시중계방송권(deferred broadcasting)은 복제권으로 규제할 수 있으므로, 동시중계방송권만 방송사업자에게 권리를 부여하고 있다.");
// insertDB(frstRegisterId, glossaryService,"동일성 유지권 (Right of Integrity)","저작자가 자신의 저작물이 본래의 모습대로 활용되도록 할 권리로서, 저작물의 변경이나 삭제는 반드시 저작자 본인이 하거나 저작자의 허락을 받아야 함을 의미한다. 즉 저작자는 그의 저작물의 내용・형식 및 제호의 동일성을 유지할 권리인 동일성 유지권을 가진다.\r\n\r\n(저작권법 제13조 제1항). 법원은 “저작물의 동일성을 해치지 않는 범위에서 단순히 오탈자를 수정하거나 문법에 맞지 않는 부분을 교정하는 정도를 넘어서 저작물의 내용, 형식 및 제호에 대한 추가, 삭제, 절단, 개변 등의 변경을 가하는 것은 동일성유지권을 가지는 저작자만 가능하고 제3자는 저작자의 동의를 받지 않는다면 그 의사에 반하여 위와 같은 변경을 할 수 없다”고 판결하였다(서울고등법원 2008. 9. 23. 선고 2007나70720 판결). \r\n\r\n법원은 동일성유지권이 제한되는 ‘그 밖에 저작물의 성질이나 그 이용의 목적 및 형태 등에 비추어 부득이하다고 인정되는 범위에서 변경하는 경우’에 대하여 “저작물의 이용에 있어 기술상의한계나 실연자의 능력상 한계 등으로 인해 저작물을 변경하여 이용하는 것이 불가피한 경우로서 저작자의 이의 유무가 그 이용형태에 어떠한 영향을 미칠 수 없어 이를 굳이 보장할 필요가 없거나, 중대한 공익상의 필요에 의해 부득이 제한해야 하는 경우를 의미한다”고 판단했다(서울고등법원 2008. 9. 23. 선고 2007나70720 판결).");
// insertDB(frstRegisterId, glossaryService,"디지털 밀레니엄 저작권법 / DMCA (Digital Millennium Copyright Act)","미국의 ʻ디지털 밀레니엄 저작권법ʼ DMCA은 1996년 채택된 ʻWIPO 저작권조약(WCT)ʼ과 ʻWIPO 실연 및 음반조약(WPPT)ʼ의 이행, 그리고 디지털 시대의 새로운 저작권보호를 모색하기 위해 1998년 10월에 제정되었으며, 온라인 저작권을 강화하고 이를 방해하는 기술개발을 불법으로 규정한다. \r\n\r\nDMCA에서 저작물에 접근을 통제하는 DRM 기술의 우회를 목적으로 하는 기술, 장치 또는 서비스의 제공이나 배포를 금지하고 있으며, 또한 저작권 침해가 실질적으로 이루어졌는지 여부를 불문하고 접근금지를 우회하는 행위를 처벌하며, 특히 인터넷에서 저작권 침해에 대한 벌칙을 강화하였다. 동법은 1998년 10월 28일 미국 의회를 전원일치로 통과한 후 빌클린턴 대통령에 의해 서명되었다. DMCA 법은 인터넷에서 이용자의 저작권 침해에 대한 온라인서비스제공자의 법적 책임을 제한하고 있으며, 인터넷 서비스 제공자의직접 및 간접적인 책임으로부터의 면책 규정을 마련하고 있다. 이러한 예외 규정은 유럽연합의 전자상거래 지침(Electronic Commerce Directive 2000)에 의해 채택되었고, 유럽연합에서 저작권지침 2001(Copyright Directive 2001)은 1996년 WCT를 반영하여 시행하고 있다.");
// insertDB(frstRegisterId, glossaryService,"디지털 샘플링 (Digital Sampling)","자메이카 디스크 자키들이 디스코텍에서 아날로그 소리를 섞는 기법에 기원을 두고 있는 디지털 샘플링은 기존에 녹음된 음악 파일 중에서 일부분을 추출하여 새로운 음악저작물 특히 힙합이나 R&B형태의 녹음물에 포함시키는 기술로서 저작권 침해 여부에 대하여 미국에서 상당한 논란이 있었지만 현재에는 일반인이 샘플링된 음악에서 기존의 저작물을 구분할 수 없다면 공정이용이 되는 것으로 판단되고 있다.");
// insertDB(frstRegisterId, glossaryService,"디지털 음성 송신 (Digital Audio Transmission)","공중송신 중 공중으로 하여금 동시에 수신하게 할 목적으로 공중의 구성원의 요청에 의하여 개시되는 디지털 방식의 음의 송신을 말하며, 전송을 제외한다. \r\n\r\n디지털 음성송신은 수신자 요청에 따라 송신이 시작되므로 전송과 유사하지만, 원하는 개별 시점을 택할 수 없으므로 방송의 속성도 가진다. 인터넷 라디오, 웹캐스팅(web casting) 등 디지털음성송신사업자가 실연이 녹음된 음반을 사용하여 송신하는 경우에는 상당한 보상금을 그 실연자에게 지급하여야 한다(저작권법 제76조). 디지털음성송신사업자가 음반을 사용하여 송신하는 경우에 상당한 보상금을 그 음반제작자에게 지급하여야 한다(저작권법 제83조). 다만, 실연이 녹음된 음반을 사용하여 송신하는 경우에는 자체 수단으로 실연이 녹음된 음반을 일시적으로 복제할 수 있다(저작권법 제87조).");
// insertDB(frstRegisterId, glossaryService,"링크 (Link)","링크는 인터넷에서 이용자가 웹상의 일정한 사이트에 접속하는 방법으로, 링크를 마우스로 클릭하게 되면 연결된 사이트 또는 웹페이지에서 저작물 등을 이용자의 컴퓨터 화면에 나타나도록 하는 기술로서 단순링크, 직접링크, 프레임링크, 임베디드 링크 로 구분할 수 있다.\r\n\r\n 단순링크(Simple Link)는 웹사이트의 이름과 URL만 게시하는 방식의 링크이고, 직접링크(Deep Link)는 저작물의 이름이나 간략한 정보만을 제시하고 그 저작물이 존재하는 세부적 페이지에 직접 연결하는 방식의 링크다. 단순링크가 저작권 침해의 정범 또는 방조범이 되지 않는다는 것에는 이의가 없지만, 직접링크의 경우 방조범이 인정되는 경우도 있을 수 있다.\r\n\r\n대법원은 2015년 3월 12일 2012도13748 인터넷 링크 관련 사건에서 링크행위만으로는 복제권 침해의 방조행위에 해당하지 않는다고 판결한 경우가 있으으나, 인터넷에 게시된 저작물이 불법으로 게시된 저작물임을 알면서도 링크로 제공한 행위에 대하여 저작권 침해의 방조에 해당한다고 판결하였다(대법원 2021. 9. 9. 선고 2017도19025 판결). 또한, 직접 저작권 침해는 아니지만 저작권 침해와 마찬가지로 볼 수 있는 불법행위에 해당한다고 판시한 경우(서울지방법원 2001.12.7. 선고 2000가합54067 판결)도 있다. \r\n\r\n프레임링크(Frame Link)는 자신의 홈페이지 화면을 둘 이상의 영역으로 구분하여 다른 웹사이트의 자료가 자신의 홈페이지의 다른 프레임에서 보이도록 하는 방식의 링크로, 저작권자의 동의없이 인터넷에 업로드된 저작물에 프레임링크하는 경우에 저작권 침해의 정범은 아니라고 하더라도 방조범이 될 수 있다는 의견도 있고 방조범이 될 수 없다는 의견도 있다. \r\n\r\n한편 어떤 웹사이트에 접속했을 때 자동으로 음악 등이 흘러나오도록 하는 것처럼 이용자가 자신의 웹사이트에 링크가 자동적으로 실행되도록 하는 임베디드 링크(Embedded Link)는 저작권법상 전송에 해당된다는 견해가 다수이므로 이용에 주의해야 할 것이다.");
// insertDB(frstRegisterId, glossaryService,"모니터링 의무 (Responsibility for Monitoring)","온라인서비스제공자는 저작권법상 책임 제한 조항(제102조)과 관련하여, 온라인서비스제공자는 자신의 서비스 안에서 침해행위가 일어나는지를 모니터링하거나 그 침해행위에 관하여 적극적으로 조사할 의무를 지지 아니한다.");
// insertDB(frstRegisterId, glossaryService,"무명저작물 / 고아저작물 (Orphan Works)","저작물의 저작자의 명의에 따라 구분하면 실명저작물, 이명저작물, 무명저작물로 나뉘고, 실명저작물은 저작자가 누구인지 알면서 실명을 저작물에 표시되어 있는 저작물을 의미하고 이명저작물은 저작자가 누구인지는 알지만 실명이 아닌 가명, 필명 등이 저작물에 표시되어 있는 저작물을 의미하고 무명저작물은 저작물에 저작자가 명시되어 있지 않는 저작물을 의미한다.\r\n\r\n무명저작물의 저작권은 공표된 때부터 70년간 존속한다는 점에서 기명저작물과 차이가 있다. 한편 고아저작물은 저작권자의 소재 불명 등으로 저작물에 대한 정당한 권리자를 찾을 수 없는 저작물로, 고아저작물에 대한 이용은 현행법에 의하면 법정허락제도 제50조에 의거하여 가능하다. 만일 법정허락제도를 이용하지 않고 고아저작물을 이용하는 경우에 저작권법 제35조의5(저작물의 공정한 이용)의 고려 요소로서 참작될지는 불분명하다.");
// insertDB(frstRegisterId, glossaryService,"방송권 (Right to Broadcast)","음원과 영상을 공중에게 전달할 수 있는 권리로서, 전송권과 디지털음성송신권과 함께 공중송신권에 포함되는 개념이다. 이때 방송은 공중송신 중 공중이 동시에 수신하게 할 목적으로 음・영상 또는 음과 영상 등을 송신하는 것을 말하며, 지상파방송, 케이블방송에서의 ‘방송’이 저작권법상 방송에 해당한다. \r\n\r\n방송은 다수의 공중에게 ‘동시에’ 수신(일방향성)하게 할 목적으로 송신한다는 점에서 개별적인 요청에 의한 저작물의 이시적(異時的)인 전송(transmission)과 구분된다. 또한 수신자의 송신 요청에 따라 동시에 디지털 방식의 음을 송신하는 디지털음성송신과도 구분된다.");
// insertDB(frstRegisterId, glossaryService,"방송전 신호 (Prior-broadcasting Signals)","방송전 신호는 방송사업자에게로 송신되는 신호이며, 공중이 직접 수신하도록 할 목적의 경우에는 제외한다. 2011년 개정 저작권법은 방송전 신호를 정당한 권한 없이 제3자에게 송신하는 것을 금하는 규정을 신설하였다.");
// insertDB(frstRegisterId, glossaryService,"배타적 발행권 (Exclusive Publication)","2011년 한미자유무역협정(FTA)의 국내이행을 위하여 신설된 규정으로 준물권인 저작권을 저작물 이용자가 배타적으로 사용・수익・처분할 수 있도록 권리를 설정해주는 권리를 의미한다. \r\n\r\n저작권법 제57조에서 ‘저작물을 발행하거나 복제・전송(이하 “발행등”이라 한다)할 권리를 가진 자는 그 저작물을 발행등에 이용하고자 하는 자에 대하여 배타적 권리를 설정할 수 있다고 규정하여 출판권이 제외된다. 배타적 발행권자는 특약이 없다면 원고 등을 수령한 날부터 9개월 이내에 발행 등의 방법으로 이용하여야 하고, 특약이 없는 경우에는 발행 등을 한 날로부터 3년간 존속하고, 저작물의 영상화를 위하여 배타적 발행권을 설정하는 경우에는 5년간 존속하도록 하여 전자책 등과 관련하여 적용할 수 있도록 하고 있다.");
// insertDB(frstRegisterId, glossaryService,"배포권 (Right to Distribute)","저작물 등의 원본 또는 그 복제물을 공중에게 대가를 받거나 받지 아니하고 양도 또는 대여할 수 있는 권리로, 일단 저작물의 원본이나 그 복제물이 해당 저작재산권자의 허락을 받아 판매 등의 방법으로 거래에 제공된 경우에는 더 이상 배포권을 행사할 수 없게 된다. \r\n\r\n저작권자뿐만 아니라 실연자, 음반제작자에게도 배포권이 부여되어 있다. 한편 배포의 개념에는 유형물의 형태로 양도되거나 대여되는 경우만 포함되고, 무형적인 전달은 포함되지않으므로, 예컨대 웹사이트에서 음악이나 동영상 파일을 다운로드 방식으로 제공하는 경우에는 배포가 아니라 ‘전송’의 개념에 해당된다");
// insertDB(frstRegisterId, glossaryService,"법정허락 (Exploitation of Works Under Legal License)","법률의 규정에 의하여 이용허락이 의제되는 경우로, 저작권법에서는 저작재산권자 불명인 저작물의 이용, 공표된 저작물을 공익상 필요에 의하여 방송하고자 하는 방송사업자가 그 저작재산권자와 협의하였으나 협의가 성립되지 아니하는 경우, 판매용 음반이 한국에서 처음으로 판매되어 3년이 경과한 경우 그 음반에 녹음된 저작물을 녹음하여 다른 판매용 음반을 제작하고자 하는 경우 등에 있어 문화체육관광부장관의 승인을 얻은 후 문화체육관광부장관이 정하는 기준에 의한 보상금을 공탁하고 이를 이용할 수 있도록 하고 있다.");
// insertDB(frstRegisterId, glossaryService,"복제권 (Reproduction Right)","복제’는 인쇄・사진촬영・복사・녹음・녹화 그 밖의 방법으로 일시적 또는 영구적으로 유형물에 고정하거나 다시 제작할 수 있는 권리로 저작자뿐만 아니라, 저작인접권자인 실연자, 음반제작자, 방송사업자도 가지고 있다. \r\n\r\n복제권은 저작권자의 권리 중에서 가장 기본적인 권리로, 복제의 방법이나 수단에는 제한이 없다. 즉 기계적・전자적・화학적 방법은 물론 수기의 경우도 복제에 해당되며, 반드시 기존 저작물을 전부 베낄 필요는 없고, 저작물의 일부를 복제하는 경우에도 그 저작물의 창작성이 있는 부분을 복제하면 복제권 침해가된다. \r\n\r\n유형물을 디지털화하는 행위에 대해서는 저작권법상 복제의 개념에 해당되는지 여부와 관련하여 견해가 나뉜다. 저작물의 디지털화행위는 무형복제에 해당하므로 ‘유형물에의 고정’이라는 요건을 충족시키지 못해 복제가 아니라는 견해와, 아날로그 정보를 디지털 정보로 변환하는 과정은 필연적으로 컴퓨터 하드디스크 등 전자적 기록매체의 유형물에 고정(저장)되므로 저작권법상 복제의 개념에 해당된다는 견해가 있다. 한편 일시적 저장행위는 한미FTA 이행을 위한 저작권법 개정을 통하여 저작권법상 복제의 개념에 해당되는 것으로 입법화하였다. \r\n\r\n다만, 저작물 이용과정에서 일시적 복제에 대해서는 저작권법 제35조의2(저작물 이용과정에서의 일시적 복제)에 해당하여 일시적 복제에 대한 저작권자의 복제권이 제한된다.");
// insertDB(frstRegisterId, glossaryService,"복제 보상금 제도 (Levy System)","복사기・녹음기・녹화기와 같은 복제 기기나 녹음테이프・녹화테이프 등과 같은 복제용 주변기기를 구입하는 사람은 그것으로 책이나 음악・영화 등 타인의 저작물을 복제하게 될확률이 크므로 위와 같은 기기를 구입하는 사람이 저작권자에게 일정한 금액의 보상금을 지급하도록 하는 제도를 말한다. \r\n\r\n복제 보상금 제도는 1955년 독일의 헌법재판소 판례 이후인정되기 시작하여 유럽 일대로 전파되었다. 최근 미국과 일본도 디지털 복제에 대하여 사적 복제 보상금 제도를 도입하였으나 한국은 아직 도입하지 않았다.");
// insertDB(frstRegisterId, glossaryService,"불법복제물 (Pirated Contents)","불법복제물이란 저작권이나 그 밖에 「저작권법」에 따라 보호되는 권리를 침해하는 복제물을 의미하며, 정보통신망을 통하여 저작권이나 그 밖에 이 법에 따라 보호되는 권리를 침해하는 복제물 또는 정보, 기술적 보호조치를 무력하게 하는 프로그램 또는 정보를 “불법복제물 등”이라 한다(저작권법 제133조 및 제133조의2).");
// insertDB(frstRegisterId, glossaryService,"불법복제물 유통 계정 정지 명령 (Order to Suspend The Account of Pirated Contents Transmitter)","문화체육관광부장관은 불법복제물 등의 복제・전송자에 대한 경고(저작권법 제133조의2 제1항 제1호)를 3회 이상 받은 복제・전송자가 불법복제물 등을 전송한 경우에는 한국저작권위원회의 심의를 거쳐 온라인 서비스 제공자에게 6개월 이내의 기간을 정하여 해당 복제・전송자의 계정(이메일 전용 계정은 제외하며, 해당 온라인 서비스 제공자가 부여한 다른 계정을 포함.)을 정지할 것을 명할 수 있다(저작권법 제133조의2 제2항). \r\n\r\n온라인 서비스 제공자가 계정 정지 명령을 이행하지 않은 경우에는 1천만 원 이하의 과태료를 부과한다(저작권법 제142조 제2항 제4호).");
// insertDB(frstRegisterId, glossaryService,"사적 복제 (Private Copying)","저작권제도는 전통적으로 사적으로 저작물을 이용하는 것에 대해서는 자유롭게 허용하였기 때문에 대한민국 저작권법도 “공표된 저작물을 영리를 목적으로 하지 아니하고 개인적으로 이용하거나 가정 및 이에 준하는 한정된 범위 안에서 이용하는” 사적 복제는 저작권자의별도 허락이 없이도 가능하도록 규정하고 있다(제30조). \r\n\r\n그러나, 상당한 국가에서는 이러한 사적복제의 경우에 원본의 적법성을 요구하고 있어 불법 저작물을 복제한 경우에는 사적복제를 인정하지 않는 경우도 있고, 디지털 시대를 맞이하여 사적 복제에 대해서 독일, 영국, 미국, 일본처럼 사적복제 보상금 제도를 도입하자는 논의도 있다. 그러나 사적 복제를 위한 저작권법 제30조는 “공중의 사용에 제공하기 위하여 설치된 복사기기에 의한 복제”를 규제하고 있기때문에 복사집에서 복제하는 것은 저작권침해가 될 수 있다는 것을 인지할 필요가 있다.");
// insertDB(frstRegisterId, glossaryService,"성명표시권 (Right of Attribution)","성명표시권은 저작자가 자신이 그 저작물의 창작자임을 주장할 수 있는 권리, 즉 저작물의 원본이나 그 복제물에 또는 저작물의 공표 매체에 그의 실명이나 이명을 표시할 권리를 말한다. 이용자는 저작권이나 소유권의 누구에게 있는가와 상관없이 창작자의 성명을 표시해야 한다. \r\n\r\n성명표시권은 실연자에게도 인정되는데, 저작권법 제66조(성명표시권)에 의하면, 실연자는 그의 실연 또는 실연의 복제물에 그의 실명 또는 이명을 표시할 권리를 가진다. 저작물 또는 실연을 이용하는 자는 그 저작자 또는 실연자의 특별한 의사표시가 없는 때에는 저작자 또는 실연자가 그의 실명 또는 이명을 표시한 바에 따라 이를 표시하여야 한다. 다만, 저작물 또는 실연의 성질이나 그 이용의 목적 및 형태 등에 비추어 부득이하다고 인정되는 경우에는 그러하지 아니하다고 하여 성명표시권이 제한된다. 예를 들면, 호텔이나 백화점 등의 배경음악을 방송하는 경우에 저작자명이나 가수의 이름을 생략하는 것은 성명표시권의 제한에 해당되는 경우이다.");
// insertDB(frstRegisterId, glossaryService,"소극적 필터링(Filter-out-system)","법적 정의는 아니며, 적극적 필터링에 반대되는 개념으로 사용된다. \r\n\r\n저작권자들의 요청 등으로 온라인 서비스 제공자(OSP)가 특정 파일 목록에 대해서 DB를 구축하고, 저작자가 불허가 요청을 한 경우에 사용을 허락하지 않는 방식으로 필터링 DB에 등록된 콘텐츠만 유통을 하지 못하도록 하는 필터링 방식이다. 인식기술과 DB업데이트 주기에 따라 필터링 성능이 영향을 받게 되며, 새로운 콘텐츠나 변형 파일에 대해서는 적시 대응이 어렵다는 단점이 있다.");
// insertDB(frstRegisterId, glossaryService,"소프트웨어 임치 제도 (Software Escrow)","소프트웨어를 거래할 때에 저작권자가 이용 허락을 받은 자를 위하여 소스코드 및 기술 정보 등을 신뢰할 수 있는 제3의 기관에 임치하여 저작권자의 폐업 또는 자연재해로 소스코드의 멸실되는 경우 수치기관이 소스코드 및 기술정보를 이용자에게 교부하여 저작권자의 폐업의 경우에도 이용자가 안정적이고 지속적으로 소프트웨어를 이용할 수 있도록 하는 제도이다.");
// insertDB(frstRegisterId, glossaryService,"실연권 (Rights of Performers)","저작인접권의 하나로, 저작재산권 및 인격적 권리를 모두 포함하여 실연자에게 주어지는 권리이다. 실연자는 가수나 연주자, 배우 등 저작물을 연기・무용・연주・가창・구연・낭독 그 밖의 예능적 방법으로 표현하거나 저작물이 아닌 것을 이와 유사한 방법으로 표현하는 실연을 하는 자를 말한다. \r\n\r\n역사적으로 보면 방송이나 음반이 등장하면서, 실연자들은 자신의 수익이 감소한 것이라는 현실에 직면할 수밖에 없었다. 특히 계약을 통해 자신의 실연을 방송하거나 음반에 고정시킬 것을 합의하고, 이에 따라 일정한 로열티를 받는 경우 외에 해적판 음반이나 불법방송이 성행함에 따르는 구제를 받을 방법이 없었다. 이에 실연자들에게 복제권, 배포권, 대여권, 공연권, 방송권, 전송권 등의 실연재산권과 더불어 성명표시권, 동일성유지권과같은 실연인격권을 부여하게 되었다.");
// insertDB(frstRegisterId, glossaryService,"업무상저작물 (Work Made for Hire)","저작권법에서 저작자는 창작을 한 자가 되는 것이 원칙이다. 그런데 유일한 예외가 업무상 저작물이다. 업무상 저작물은 법인・단체 그 밖의 사용자(이하 “법인 등”이라 한다)의 기획 하에 법인 등의 업무에 종사하는 자가 업무상 작성하는 저작물인데, 이것이 법인 등의 명의로 공표되면 저작자는 그 법인 등이 된다. \r\n\r\n이처럼 법에서 정한 업무상 저작물 요건에 해당하면 법인 등 사용자가 저작자가 되며, 저작재산권 및 저작인격권은 원시적으로 법인 등에 귀속된다. 만일 법인 등과의 사이에 실제 작성자를 저작자로 하는 특약이 없음에도 불구하고 퇴사하거나 이직한 이후에 이력서에 자신이 저작권자로 기재하거나 포트폴리오 전체를 제출하는 방법으로 계속 이용하는 행위는 법인 등의 저작권을 침해하는 행위가 된다.\r\n\r\n따라서 업무상저작물을 이용하는 목적과 이용 범위 등을 그 업무상저작물의 저작권자인 법인 등에게 명시적으로 밝힌 후에 이용허락을 받아 이용하는 것이 바람직하다.");
// insertDB(frstRegisterId, glossaryService,"연결점 / 외국인저작물 (Point of Attachment)","우리 저작권법 제3조는 우리나라가 가입 또는 체결한 국제조약에 가입한 국가의 경우에 이 국가의 국민이 작성한 저작물, 상호주의 원칙에 의거하여 외국인의 저작물을 보호한다. \r\n\r\n예를 들면, 대한민국 내에 상시 거주하는 외국인(무국적자 및 대한민국 내에 주된 사무소가 있는 외국법인을 포함한다)의 저작물과 맨 처음 대한민국 내에서 공표된 외국인의 저작물(외국에서 공표된 날로부터 30일 이내에 대한민국 내에서 공표된 저작물을 포함한다), 외국인(대한민국 내에 상시 거주하는 외국인 및 무국적자는 제외한다. 이하 이 조에서 같다)의 저작물이라도그 외국에서 대한민국 국민의 저작물을 보호하지 아니하는 경우에는 그에 상응하게 조약 및 이 법에 따른 보호를 제한할 수 있도록 하고 있다. 만일 외국인의 저작물이라도 그 외국에서 보호기간이 만료된 경우에는 우리나라 저작권법에 따른 보호기간을 인정하지 아니한다.");
// insertDB(frstRegisterId, glossaryService,"영상저작물(Audiovisual Works / Cinematographic Work)","음의 수반여부와 관계없이 연속적인 영상이 수록된 창작물로서 그 영상을 기계 또는 전자장치에 의하여 재생하여 볼 수 있거나 보고 들을 수 있는 영상저작물(영화, 드라마, 비디오게임 포함)은 수많은 사람들이 제작에 참여하므로 저작자를 확정하는 것이 어렵기 때문에 영상제작자와 영상저작물의 제작에 협력할 것을 약정한 자 또는 실연자가 그 영상저작물에 대한 권리를 취득한 경우 특약이 없으면 그 영상저작물의 이용을 위하여 필요한 권리는 영상제작자가 이를 양도 받은 것으로 추정하여 영상제작자가 저작물을 이용하기 쉽도록 하고 있다(저작권법 제100조).");
// insertDB(frstRegisterId, glossaryService,"원작접근권 (Right to Access to the Original)","대한민국 저작권법이 인정하지 않는 저작인격권의 일종으로 미술저작물의 저작자가 저작물의 원작품을 타인에게 양도한 경우에도 그 저작물에 접근하여 자신의 저작물을 촬영, 스케치, 사진 촬영 등을 할 수 있는 권리를 의미한다.");
// insertDB(frstRegisterId, glossaryService,"원작철회권 (Right to Withdrawal)","원작철회권이란 저작자가 저작물 이용자에게 복제권, 공연권 등을 이전해 공표를 승낙한 후에 저작자의 정신적 이익을 침해하는 것 같은 일정한 사유가 발생한 경우에 저작자에게 공표의 철회를 허락하는 권리를 말한다.\r\n\r\n저작인격권의 일종으로 대한민국 저작권법에서는 인정되지 않고 있지만, 독일, 프랑스 등에서 인정되고 있다. 독일의 경우 불행사를 이유로 하는 철회권과 확신의 변경을 이유로하는 철회권을 인정하고 있으며, 프랑스의 경우 이용권의 양도에도 불구하고 저작자는 그의 저작물의 발행 후에도 양수인에 대해 수정권 또는 철회권을 행사할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"웹하드 등록제 (Webhard Registration System)","과거 전기통신사업법상 웹하드 사업자는 부가통신사업자로 분류되었고 방송통신위원회에 신고만 하면 누구나 콘텐츠 유통 사업을 개시할 수 있었다. 일부 웹하드 사업자는 부가통신사업의 진입이 신고만 하면 가능하다는 점을 악용하여 서비스의 개설과 폐업을 반복하면서 불법적 수익을 향유하였다. 그러나 부가통신사업자는 신고제였으므로 사업자의 소재를 파악하기도 쉽지 않았다. \r\n\r\n이러한 배경에서 웹하드나 P2P 등의 ʻ특수한 유형의 부가통신사업자ʼ는 사전에 등록을 하도록 의무를 부과하는 전기통신사업법 개정안이 통과되었다. \r\n\r\n웹하드 등록제로 불리는 「특수한 유형의 부가통신사업 등록제」 시행 결과 2016년 5월 웹하드, P2P 등 서비스를 영위하는 55개 사업자, 70개 사이트가 등록 완료했다. ※ 전기통신사업법 제22조(부가통신사업의 신고 등) ② 특수한 유형의 부가통신사업을 경영하려는 자는 다음각 호의 사항을 갖추어 미래창조과학부장관에게 등록(정보통신망에 의한 등록을 포함한다)하여야 한다.");
// insertDB(frstRegisterId, glossaryService,"일반 저작물 감정 (Appraisal of General Works)","일반저작물 감정은 해당 저작물의 저작권이 침해된 것인지 여부를 판단하는 것을 말한다. \r\n\r\n어문, 영화, 미술(응용미술 포함), 건축, 음악, 사진, 영상 및 도형 저작물 등과 같은 일반 저작물의 경우 저작권 침해 여부를 감정하기 위하여 세부적으로는 보호법익이 있는지를 판단하기 위한 아이디어・표현의 구별 및 피침해저작물의 창작성 여부 판단, 그리고 피침해 저작물과 침해저작물 간의 실질적 유사 여부 판단 등이 행해진다.");
// insertDB(frstRegisterId, glossaryService,"일시적 복제권 (Temporary Reproduction)","일시적 복제는 디지털저작물의 이용에 있어 램(RAM)과 같은 컴퓨터의 휘발성 메모리에 저작물이 일시적으로 복제되는 것을 의미한다. \r\n\r\n인터넷 검색이나 홈페이지, 모바일 기기 등에서 사진, 음악, 동영상 등을 접속하면 이용자들이 고의로 저장하지 않아도 컴퓨터의 RAM에 자동적‧일시적으로 복제되며, 어떠한 저작물이 인터넷 상에서 전송되는 경우 온라인 서비스 제공자(OSP)나 네트워크 운영자의 소프트웨어는 자동으로 저작물의 복제물을 RAM에 생성한다. \r\n\r\n한국 저작권법에서도 복제의 개념에 포함되는 것으로 정리하였다. 다만 컴퓨터에서는 원활하고 효율적인 정보처리를 위하여 필요하다고 인정되는 범위의 일시적 복제는 권리자의 허락을 받지 않고도 자유롭게 할 수 있도록 하여 저작물의 원활한 이용을 도모하고 있다.");
// insertDB(frstRegisterId, glossaryService,"저작권 (Copyright)","저작권이란 저작자가 저작물을 창작함으로써 그 “저작물”에 대해 갖는 권리이다. 저작권이란 용어는 다의적 사용되고 있는데, 최광의로는 저작권법에 의하여 보호되는 모든 권리를 지칭한다. \r\n\r\n광의의 의미로는 저작인접권과 저작권을 분리하여 저작물에 대한 권리인 저작인격권과 저작재산권만을 저작권으로 파악하는 것이다. 이것이 우리 저작권법상 저작권의 법적 의미이다. 즉, 저작권은 ‘저작물’에 대한 권리의 집합으로써 복제권, 공연권, 배포권 등 저작재산권과 공표권, 성명표시권, 동일성유지권 등 저작인격권으로 구성된다. 또한, 협의로는 저작재산권만을 저작권이라 하기도 한다. 저작인격권은 저작자 일신에 전속하는 권리로서 양도의 대상이 되지 않고, 저작인격권이 제한되는 경우는 매우 예외적이기 때문에 저작권의 양도나 저작권의 제한은 저작재산권만을 의미하는 경우도 적지 않다.");
// insertDB(frstRegisterId, glossaryService,"저작권 대리중개업 (Copyright Agency Brokerage Business)","저작재산권자, 배타적발행권자, 출판권자, 저작인접권자 또는 데이터베이스제작자의 권리를 가진 자를 위하여 그 권리의 이용에 관한 대리 또는 중개행위를 하는 업을 말한다(저작권법 제2조 제27호). 우리 저작권법은 저작권신탁관리업과 저작권대리중개업을 저작권위탁관리업으로 규정하고 있다.");
// insertDB(frstRegisterId, glossaryService,"저작권 등록 (Registration of Copyright)","저작물에 관한 일정한 사항(저작자 성명, 창작연월일, 맨 처음 공표연월일 등)과 저작재산권의 양도, 처분제한, 질권설정 등 권리의 변동에 대한 사항을 저작권등록부라는 공적인 장부에 등재하고 일반 국민에게 공개, 열람하도록 공시하는 것을 말한다. \r\n\r\n저작권은 베른협약의 무방식주의에 따라 등록하지 않아도 권리가 발생한다. 즉 저작권의 발생은 저작물의 창작과 동시에 이루어지며 등록, 납본, 기탁 등 일체의 절차나 방식을 요하지 않는다. 하지만 등록을 하게 되면 추정력, 대항력, 법정손해배상청구 가능, 침해물품 통관 보류 신고 자격 취득 등 권리자로서 유리한 지위에 설 수 있다.");
// insertDB(frstRegisterId, glossaryService,"저작권 보호기간 (Duration of Copyright)","저작권은 창작과 동시에 발생하며, 우리 저작권법에서 저작재산권은 원칙적으로 저작자의 생존기간과 저작자의 사후 70년간 보호한다. 저작자가 사망한 이후에도 저작재산권을 승계, 상속할 수 있다. 한편, 저작인격권은 저작자 생존기간 동안만 존속한다. 다만, 저작자의 사후에도 저작자의 인격적 이익은 저작인격권과 별도로 보호된다.");
// insertDB(frstRegisterId, glossaryService,"저작권 분쟁 알선 (Conciliation of Copyright Dispute)","“알선”이란 경험과 지식이 풍부한 알선위원 1인에 의한 조언과 타협권유를 통하여 당사자 간의 화해를 유도하는 간이한 분쟁해결제도로써 저작권 분쟁에 관한 알선을 받으려는 자는 알선신청서를 한국저작권위원회에 제출해야 하며, 알선신청을 받은 경우 한국저작권위원회 위원장은 위원 중에서 알선위원을 지명하여 알선을 시행한다.");
// insertDB(frstRegisterId, glossaryService,"저작권 분쟁조정 (Mediation of Copyright Dispute)","저작권 분쟁조정제도는 한국저작권위원회에서 운영하고 있으며, 저작권 분쟁조정은 법조계, 학계, 산업계를 대표하는 1~3인의 조력을 받아 신속・저렴하게 비공개로 진행된다.\r\n\r\n저작권 분쟁의 조정을 받으려는 자는 신청취지와 원인을 기재한 조정신청서를 한국저작권위원회에 제출해야 하며, 조정신청을 받은 한국저작권위원회 위원장은 조정부를 지정하고, 필요한 경우 당사자, 그 대리인 또는 이해관계인의 출석을 요구하거나 관계서류의 제출을 요구하여 조정부는 원칙적으로 3개월 이내에 조정해야 하며, 당사자 간에 합의된 사항이 조정조서에 기재되면 조정조서는 재판상의 화해와 동일한 효력을 갖는다.\r\n\r\n※ ‘재판상 화해’는 확정판결과 동일한 효력을 갖는다. 따라서 상대방이 합의된 사항을 이행하지 않는 경우에는 별도의 재판절차 없이 강제 집행 가능하다(「민사소송법」 제220조).");
// insertDB(frstRegisterId, glossaryService,"저작권 신탁관리업 (Copyright Trust Management Business)","저작재산권자, 배타적발행권자, 출판권자, 저작인접권자 또는 데이터베이스제작자의권리를 가진 자를 위해 그 권리를 신탁 받아 이를 지속적으로 관리하는 업을 말하며, 저작물 등의 이용과 관련하여 포괄적으로 대리하는 경우를 포함한다(저작권법 제2조 제26호).\r\n\r\n저작권신탁관리업을 하고자 하는 자는 문화체육관광부장관의 허가를 받아야 한다. 현재 허가를 받은 저작권신탁관리업자로는 한국음악저작권협회, 한국문학예술저작권협회, 한국언론진흥재단, 한국영상산업협회, 한국음악실연자연합회, 한국음반산업협회, 함께하는음악저작인협회 등이 있다.");
// insertDB(frstRegisterId, glossaryService,"저작권 양도 (Assignment of Copyright)","복제권, 배포권 등의 저작재산권은 여타 재산권과 마찬가지로 양도가 가능하며, 전부 또는 일부를 양도할 수 있다. 따라서 저작자와 저작권자가 다른 경우가 있을 수 있으므로, 계약 체결 시 주의해야 한다. 단, 공표권, 성명표시권, 동일성 유지권 등의 저작인격권은 양도되지 않는다(일신전속성).");
// insertDB(frstRegisterId, glossaryService,"저작권 위탁관리 (Copyright Management Service)","저작권신탁업자가 저작권자의 권리를 신탁 받아 관리하거나 저작권 대리중개업자가 저작물의 이용에 관한 권리를 대리 또는 중개하여 저작권자에게는 자신의 저작물의 이용을 일일이 허락하는 번거로움을 덜어 주는 동시에, 이용자에게는 그 저작물의 이용허락을 용이하게 받을 수 있도록 하는 제도이다.");
// insertDB(frstRegisterId, glossaryService,"저작권 인증 (Copyright Authentication)","인증기관이 저작물에 대한 권리관계를 확인하고 저작물 등의 이용허락 등을 위하여 권리자임을 증명하는 인증서를 발급해 주는 제도이다. 해외 콘텐츠시장에서 우리 저작물의 안전한 거래 및 경쟁력 강화에 도움이 되고자 2006년 저작권법에 도입되었다(저작권법 제2조 제33호).\r\n\r\n저작권 인증에는 저작물 등에 대한 권리자임을 확인하는 ‘권리인증’과 저작물 등의 권리자로부터 이용허락을 받았음을 확인하는 ‘이용허락인증’이 있다.");
// insertDB(frstRegisterId, glossaryService,"저작권 인증기관 (Copyright Certificate Authority)","문화체육관광부장관은 저작물 등의 거래의 안전과 신뢰보호를 위한 인증기관을 지정할 수 있으며, 문화체육관광부로부터 최초의 인증기관으로 지정된 한국저작권위원회가 2012년 2월부터 저작권 인증 업무를 수행하고 있다.");
// insertDB(frstRegisterId, glossaryService,"저작권 침해 (Copyright Infringement)","저작권자의 허락을 받지 않고 저작재산권 또는 저작인격권을 침해하는 방법으로 저작물을 이용하는 행위를 말한다. 저작권 침해로 인정되기 위해서는 \r\n) 저작권 침해를 주장하는 자가 해당 저작물에 대하여 유효한 저작권을 가지고 있어야 하고, \r\nⅱ) 정당한 권한이 없는 자가 당해 저작물에 의거(依據)하여 이를 이용하였어야 하며, \r\nⅲ) 침해물이 당해 저작물과 동일성 내지 종속성(실질적 유사성)을 가지고 있어야 한다. \r\n또한 ⅳ) 저작권 제한 사유에 해당하지 않아야 한다. \r\n\r\n그 밖에 불법복제물을 그 사실을 알면서 배포할 목적으로 수입하거나 소지하는 행위, 프로그램의 저작권을 침해하여 만들어진 프로그램의 복제물을 그 사실을 알면서 취득한 자가 이를 업무상 이용하는 행위는 저작재산권 침해로 간주되며, 저작자의 명예를 훼손하는 방법으로 저작물을 이용하는 행위도 저작인격권의 침해로 본다.");
// insertDB(frstRegisterId, glossaryService,"저작권자 (Copyright Owner)","저작권법에 의하여 저작권을 인정받아 그 권리를 행사할 수 있는 사람으로 저작권은 원천적으로 저작자에게 귀속되므로 최초 저작권자는 언제나 저작자이다. 그러나 저작재산권은 양도가 가능하기 때문에 저작재산권의 경우 저작자와 저작권자가 분리될 수 있다. 다만 일신전속성에 의하여 양도가 불가능한 저작인격권의 경우 저작권자는 항상 저작자이다.");
// insertDB(frstRegisterId, glossaryService,"저작물 (Copyrighted Work)","인간의 사상 또는 감정을 표현한 창작물을 말한다. ‘사상 또는 감정’이란 학문적・철학적・문학적 성격의 것에 한정되는 것은 아니며, 인간의 생각이나 느낌이 표현된 것이면 충분하다. \r\n\r\n다만, ‘사상 또는 감정’ 그 자체는 저작물이 아니다. ‘창작물’이란 완전한 의미의 독창성을 요구하는 것은 아니며, 단지 어떠한 작품이 남의 것을 단순히 모방한 것이 아니고 작자 자신의 독자적인 사상 또는 감정의 표현을 담고 있음을 의미한다, 우리 저작권법은 저작물로서 어문저작물, 음악저작물, 연극저작물, 미술저작물, 도형저작물, 건축저작물, 사진저작물, 영상저작물, 컴퓨터프로그램저작물 등을 예시하고 있다.");
// insertDB(frstRegisterId, glossaryService,"저작물성 (Copyrightability)","저작권법에서 저작물로 보호받기 위해서 필요한 요건을 충족할 수 있는지 여부의 판단이다. 무방식주의 원칙에 따라 저작물로 인정되면 저작권법으로 보호받기 위한 추가적 요건이 필요하지 않기 때문에 저작물로 인정받을 수 있는지 여부에 따라 결정된다. \r\n\r\n즉, 우리 저작권법에서는 ʻ인간의 사상 또는 감정을 표현한 창작물ʼ이어야 한다(저작권법 제2조 1호). 따라서 사람이 아닌 기계가 작성한 경우나 창작성이 인정되지 않는 경우, 단순한 사실, 표현이 아닌 아이디어 등은 저작물이 아니다.");
// insertDB(frstRegisterId, glossaryService,"저작물의 공정한 이용 (Fair Use of Copyrighted Works)","영미법계 국가인 영국과 미국에서는 판례법을 중심으로 「공정이용(fair use) 또는 공정취급(fair dealing)」이라는 개념이 발달하였고, 한국은 2011년 12월 개정 저작권법에서 미국 저작권법 제107조의 공정이용 규정과 국제협약의 저작권 제한 기준인 3단계 테스트를 참조하여 저작권법 제35조의 3으로 신설하였고 현재 개정되어 제35조의5로 규정되어 있다. \r\n\r\n저작물의 통상적인 이용방법과 충돌하지 않고 저작자의 정당한 이익을 부당하게 해치지 않는 경우 ① 이용의 목적 및 성격, ② 저작물의종류 및 용도, ③ 이용된 부분이 저작물 전체에서 차지하는 비중과 중요성, ④ 저작물의 이용이 그 저작물의 현재 시장 또는 가치나 잠재적인 시장 또는 가치에 미치는 영향을 종합적으로 고려하여 공정한 이용에 해당할 경우 저작권자의 허락 없이 저작물을 이용할 수 있도록 하고 있다.");
// insertDB(frstRegisterId, glossaryService,"저작물의 이용허락 (License of The Copyrighted Works)","저작재산권자는 타인에게 자신의 저작물의 이용을 허락할 수 있으며, 이에 따라 저작물의 이용의 허락을 받은 자는 허락받은 이용 방법 및 조건의 범위에서 그 저작물을 이용할 수 있다. 다만, 이용허락에 의하여 저작물을 이용할 수 있는 권리는 저작재산권자의 동의 없이 제3자에게 이를 양도할 수 없으며, 저작재산권자의 동의 없이 다른 사람이 이용하도록 허락할 수 없다.");
// insertDB(frstRegisterId, glossaryService,"저작물 이용허락의 유형 (Types of licensing of The Copyrighted Works)","저작물의 이용허락은 ‘단순 이용허락’과 ‘독점적 이용허락’으로 구분할 수 있고, 단순 이용허락은 저작재산권자가 여러 사람에 대하여 중첩적으로 이용을 허락해 줄 수 있는 경우로서 이에 따라 이용허락을 받은 자들은 허락받은 이용방법 및 조건의 범위에서 그 저작물을 자유롭게 이용할 수는 있지만 이를 독점적・배타적으로 이용할 권한은 없다. \r\n\r\n한편, 독점적 이용허락은 저작재산권자와 이용자 사이에 일정한 범위에서 저작물을 독점적으로 이용하도록 계약을 체결한 경우로서 저작재산권자가 이용자 이외의 다른 사람에게 저작물을 이용하도록 허락해 준 경우 저작재산권자를 상대로 독점적 이용허락 계약 위반에 따른 손해배상을 청구할 수 있다는 점에서 단순 이용허락과 구별된다. 그러나 독점적 이용허락을 받았다고 하더라도 타인이 저작권 위반행위를 하는 경우 직접 민사소송을 제기할 수 없고, 형사고소도 할 수 없으며, 채권자대위권을 행사하여 타인의 이용할 금지할 수 있을 뿐이다.이 점이 배타적발행권자와 차이가 나는 점이다.");
// insertDB(frstRegisterId, glossaryService,"저작인격권 (Moral Rights)","정신적 창조물로서 저작물은 저작자의 인격을 반영하며, 인격밖에 존재하는 재산적 가치보다 한층 더 존귀하게 평가되어야 한다는 생각의 결과물이다. \r\n\r\n저작물의 공표에 대한 결정권, 저작자임을 주장할 수 있는 권리(저작물을 사용할 때 저작자의 성명과 제호를 표시할 수 있는 권리), 저작물의 저작자가 무명으로 남고자하는 경우 그 성명을 표시하지 않도록할 권리, 이명을 선택할 권리, 저작물의 허락 없는 수정이나 훼절, 기타 훼손 행위에 이의를 제기할 수 있는 권리 등을 포괄한다. 우리나라를 비롯한 일부 국가의 저작권법에서는 실연자의 실연을 왜곡하지 못하도록 보호하고, 실연자의 성명을 표시할 수 있는 권리도 규정하고 있기도 하다.");
// insertDB(frstRegisterId, glossaryService,"저작인접권 (Neighboring Rights)","저작인접권이란 실연자, 음반제작자, 방송사업자가 자신의 실연, 음반, 방송(‘저작인접물’이라 하기도 함)의 이용을 통제할 수 있는 저작권 유사의 배타적인 권리이다. 실연자, 음반제작자, 방송사업자는 저작물을 직접 창작한 자는 아니지만 저작물의 해석・전달 또는 그 유통을 통해 저작자와 이용자를 매개함으로써 저작물의 향유와 확산은 물론 그 가치 증진에도 기여한다.\r\n\r\n저작권이나 저작물 혹은 저작활동에 인접해 있는 저작권과 관련된 권리(copyrightrelated right) 혹은 저작권에 이웃한 권리라는 의미에서 저작인접권(neighboring right)이라 한 것이다. 한편, 저작인접권은 저작권과 독립된 권리이며, 저작권과 별개로 발생하고 소멸한다.");
// insertDB(frstRegisterId, glossaryService,"저작재산권 (Authors Property Right)","저작자가 자신의 저작물에 대해 갖는 재산적인 권리로, 저작물의 특정한 이용행위를 통제할 수 있는 권리이다. \r\n\r\n저작권법에서는 저작재산권자가 통제할 수 있는 저작물의 특정한이용행위를 지분권으로 형태로 열거하고 있는데, 저작재산권의 종류로는 복제권, 공연권, 공중송신권, 전시권, 배포권, 대여권, 2차적저작물작성권 등이 있다. 저작재산권자는 자신의 저작물을 이용하여 일정한 이익을 얻는 자에 대하여 이를 허락하는 과정에서 경제적 이익을 얻을 수 있다. 한편 저작재산권은 저작인격권과 달리 양도와 상속이 가능하다.");
// insertDB(frstRegisterId, glossaryService,"저작재산권의 기증 (Donation of Property Right)","저작권자는 자신이 창작한 저작물을 타인들이 저작권료 없이 이용할 수 있도록 자신의 권리를 문화체육부장관에 기증할 수 있다. 이렇게 저작재산권을 기증하려는 자는 기증서약서에 기증저작물의 복제물과 자신이 해당 저작물의 저작재산권자임을 증명하는 서류를 첨부하여 한국저작권위원회에 제출해야 한다.\r\n\r\n※ 저작재산권이 기증된 저작물은 <한국저작권위원회-공유마당-기증저작물>에서 조회 및 이용이 가능하다.");
// insertDB(frstRegisterId, glossaryService,"적극적 필터링 (Filter-in-system)","법적 정의는 아니며, 권리자들의 요청 등의 이유로 OSP가 필터링 되도록 설정해 놓은 파일에 대해서만 DB를 구축하여 필터링을 실시하는 소극적 필터링에 반대되는 개념으로 사용된다. \r\n\r\n권리자들이 허락한 파일에 대한 정보를 DB로 만들어, 이에 해당하는 경우만 허용하고 그 외엔 모두 차단하는 필터링 방식이다. 적법한 콘텐츠만 유통된다는 장점이 있다.");
// insertDB(frstRegisterId, glossaryService,"전송 (Transmission)","우리 저작권법상 전송은 공중의 구성원이 개별적으로 선택한 시간과 장소에서 접근할 수 있도록 저작물 등을 이용에 제공하는 것을 말하며, 그에 따라 이루어지는 송신을 포함한다. \r\n\r\n수신자가 시간과 장소를 선택하여 이용할 수 있다는 점에서 방송과 구별되며, 송신행위뿐만 아니라 이용에 제공하는 행위(게시판 등에 업로드 하는 행위)까지 우리 저작권법에서는 전송에 해당한다. 이용자에게 송신되지 않은 업로드만으로 아직 공중이 저작물을 이용한다고 할 수 없지만, 공중이 접근할 수 있도록 이용에 제공하는 단계에서 이를 통제할 수 있도록 이를 전송으로 취급하고 있다. 한편, 2006년 우리 저작권법에서는 방송, 전송 및 이와 유사한 송신행위를 포괄하는 “공중송신”의 개념을 신설하여 저작물, 실연・음반・방송 또는 데이터베이스를 공중이 수신하거나 접근하게 할 목적으로 무선 또는 유선통신의 방법에 의하여 송신하거나 이용에 제공하는 것으로 정의하고 있다. 즉, 공중송신은 전송을 포괄하는 개념이다.");
// insertDB(frstRegisterId, glossaryService,"전시권 (Public Exhibition Right)","저작자는 미술저작물・건축저작물 또는 사진저작물(이하 ‘미술저작물 등’이라 한다)의 원본이나 그 복제물을 전시할 권리를 가진다(저작권법 제18조). \r\n\r\n즉, 전시권은 미술저작물등의 저작자에게만 부여하는 특별한 권리로서 우리 저작권법은 미술저작물 등의 원본뿐만 아니라 그 복제물에 대해서도 전시권을 인정하고 있다. 한편, 저작물의 원본은 복제물과 마찬가지로 유형물이며, 전시권은 미술저작물 등이 화체되어 있는 유형물을 일반인이 자유로이 관람할 수 있도록 진열하거나 게시하는 것을 통제할 수 있는 권리이다. 다만, 미술저작물의 원본의 소유자나 그의 동의를 얻은 자는 공중에게 개방된 장소에 항시 전시하는 경우를 제외하고, 저작권자의 허락 없이 그 저작물을 원본에 의하여 전시할 수 있다.");
// insertDB(frstRegisterId, glossaryService,"지식재산권 / IPR (Intellectual Property Rights)","인간의 창조적 활동 또는 경험 등에 의하여 창출되거나 발견된 지식・정보・기술, 사상이나 감정의 표현, 영업이나 물건의 표시, 생물의 품종이나 유전자원(遺傳資源), 그 밖에 무형적인 것으로서 재산적 가치가 실현될 수 있는 것에 대한 권리를 의미한다. \r\n\r\n형태가 없는 사상이나 표현을 보호한다는 의미에서 무체재산권이라고도 한다. 세계지적재산권기구(WIPO)는 그 설립 조약에서 지식재산권을 “문학・예술 및 과학적저작물, 실연자의 실연, 음반 및 방송, 인간노력에 의한 모든 분야에서의 발명, 과학적 발견, 의장, 상표, 서비스표, 상호 및 기타의 명칭, 부정경쟁으로 부터의 보호 등에 관련된 권리와 그밖에 산업, 과학, 문학 또는 예술분야의 지적활동에서 발생하는 모든 권리”라고 정의한다(WIPO설립조약 제2조제8항).");
// insertDB(frstRegisterId, glossaryService,"창작성 (Originality)","창작성은 저작권에 의한 보호 여부를 결정하는 가장 중요한 요건이다. 판례는 저작권법상 창작성을 “완전한 의미의 독창성을 말하는 것은 아니며 단지 어떠한 작품이 남의 것을 단순히 모방한 것이 아니고 작자 자신의 독자적인 사상 또는 감정의 표현을 담고 있음을 의미할 뿐이어서 이러한 요건을 충족하기 위해서는 단지 저작물에 그 저작자 나름대로의 정신적 노력의 소산으로서의 특성이 부여되어 있고 다른 저작자의 기존의 작품과 구별할 수있을 정도이면 충분하다”고 한다(대법원 2014.02.27. 선고 2012다28745 판결). \r\n\r\n즉, 창작성은 작자 자신을 기준으로 하는 상대적 개념이며, 특허법상 신규성과 같은 절대적 개념이 아니다. 또한 창작성 요건을 충족하기 위해서는 사상 또는 감정에 있어 창작성이 아니라 구체적 표현에 있어 창작성이 요구되며, 창작성은 학문적 또는 예술적 가치의 고저나 진보성과는 무관하고 다분히 정책적 개념이다.");
// insertDB(frstRegisterId, glossaryService,"추급권 (The Resale Rights)","저작물의 저작자가 원저작물을 최초 양도한 이후에도 계속 되는 재판매로부터의 수익을 일정비율 분배받을 권리. 한국은 현재 인정되지 않으나 한-EU FTA 체결 이후 도입을 검토한 바 있다. 추급권을 최초로 규정한 것은 프랑스 저작권법이며, 추급권(Droit de Suite)은 일정한 보상을 청구할 수 있는 재산적 권리이지만, 저작자 사후에도 저작자의 법정상속인에게만 귀속되도록 양도할 수 없고, 사전에 포기할 수 없도록 규율하고 있다.");
// insertDB(frstRegisterId, glossaryService,"카피레프트 (Copyleft)","개인의 지식재산권을 중시하는 기존의 카피라이트(copyright)에 대항하여 사회적 공유를 강조하는 정신이자 운동이다. 1983년 리차트 스톨먼(Richard Matthew Stallman)이 지식과 정보는 독점되어서는 안 되며 모두가 자유롭게 사용할 수 있어야 함을 주장한 이후, 저작권 공유 운동으로 확산되었다");
// insertDB(frstRegisterId, glossaryService,"코드 역분석 (Reverse Engineering of Program Code)","역공학이라고도 하며, 독립적으로 창작된 컴퓨터프로그램저작물과 다른 컴퓨터프로그램과의 호환에 필요한 정보를 얻기 위하여 컴퓨터프로그램저작물코드를 복제 또는 변환하는 것을 말한다. 정당한 권한에 의하여 프로그램을 이용하는 자 또는 그의 허락을 받은 자는 호환에 필요한 정보를 쉽게 얻을 수 없고 그 획득이 불가피한 경우에는 해당 프로그램의 호환에 필요한 부분에 한하여 프로그램의 저작재산권자의 허락을 받지 아니하고 프로그램코드역분석을 할 수 있다. \r\n\r\n다만, 프로그램코드역분석을 통하여 얻은 정보는 호환 목적 외의 다른 목적을 위하여 이용하거나 제3자에게 제공할 수 없으며, 프로그램코드역분석의 대상이 되는 프로그램과 표현이 실질적으로 유사한 프로그램을 개발・제작・판매하거나 그 밖에 프로그램의 저작권을 침해하는 행위에 이용할 수 없다.");
// insertDB(frstRegisterId, glossaryService,"판면권(版面權) (Typographical Copyright)","판면권은 출판물의 판면 배열에 대한 출판자의 독자적 권리로서 영연방 등의 국가 및 아일랜드, 인도네시아 등의 10여개 국가에서 출판물의 기획, 저작 지원, 편집(레이아웃, 교정, 교열), 제작 등 저작물의 전달에 중요한 역할을 하는 출판인들의 노력과 투자를 보호하고자 일종의 저작인접권으로 인정하고 있다. \r\n\r\n이 권리의 대상은 출판물을 구성하는 각 면의 스타일, 구성, 레이아웃(layout)이나 일반적인 외관 등이며, 권리 주체는 출판자이다. 판면권을 인정하는 대표적인 국가인 영국에서 판면권의 존속기간은 최초로 출판된 이후부터 25년간 보호된다. 그러나 대한민국에서는 많은 출판업자들이 이러한 권리를 요구하고 있지만 아직 인정되고 있지 않다.");
// insertDB(frstRegisterId, glossaryService,"패러디 (Parody)","해학이나 조롱 목적으로 저작자나 저작물의 스타일을 흉내낸 작품으로 일반적으로 이해되는 패러디는 저작권법적으로는 원작 및 사회현상을 풍자적으로 비판하기 위하여 저작물을 모방하여 원저작물의 내용, 의미와는 다른 내용으로 재구성한 작품으로 원저작물을 연상하게 하는 행위로 정의되고, 원작 자체를 비판하는 직접적 패러디와 원저작물과 상관성이 없는 사회를 비판하는 매개적 패러디로 구분된다. \r\n\r\n각 국가마다 패러디의 저작권 침해여부에 대하여 오랜 기간동안 논란이 있었지만, 원작의 시장적 가치를 침해할 가능성이 거의 없는 직접 패러디에 대해서는 대체로 표현의 자유 및 공정이용으로 허용하고 있다.");
// insertDB(frstRegisterId, glossaryService,"퍼블리시티권 (Right of Publicity)","사람의 초상, 성명 등 그 사람 자체를 가리키는 것(identity)을 광고, 상품 등에 상업적으로 이용하여 경제적 이익을 얻을 수 있는 권리를 말한다. 미국 연방대법원이 공식적으로 퍼블리시티권을 언급한 최초의 판결은 Zacchini v. Scripps-Howard Broadcasting Co.(433 U.S. 562(1977))이며, 미국 약 2/3에 해당하는 주의 법률 또는 판례에서 보호되고 있는 권리이다. \r\n\r\n아직 우리나라 법률에서는 명문으로 규정하고 있지 않으며, 대법원 판례에 의한 사법적 승인도 얻지 못했지만, 1995년 처음으로 ‘퍼블리시티권’의 존재를 언급한 하급심 판결(서울지방법원 1995. 6. 23. 선고 94카합9230 판결)이 선고된 이래 '퍼블리시티권'을 인정하지 않은 사례(서울고등법원 2002. 4. 16. 선고200나42061 판결)가 있으나 이를 인정한 사례(서울동부지법 2006. 12. 21. 선고2006가합6780 판결)도 있어 주의가 필요하다.\r\n\r\n특히, 보호객체와 보호범위, 존속기간과 상속・양도 인정 여부 등에 논란이 있지만, 최근 국내에서도 입법화가 시도되고 있다.");
// insertDB(frstRegisterId, glossaryService,"퍼블릭도메인 (Public Domain)","퍼블릭도메인이란 누구든지 저작권자의 허락 없이 저작물을 이용할 수 있는 영역에 있는 저작물로, 예를 들면, 저작권의 보호기간 만료되거나 저작권자가 자신의 저작권을 포기한 경우 등이다. \r\n\r\n전자의 경우 저작자의 저작재산권 보호기간이 만료된 저작물로 저작권자가 사망 후 70년이 지난 저작물을 말하며, 저작인접권은 저작인접물이 생성된 지 70년(방송의 경우에는 50년) 후 만료된다. 따라서 저작권보호기간이 만료되어 일반 사용자가 저작권 부담 없이 자유롭게 이용할 수 있는 연구보고서, 사진, 동영상, DB 등 저작물, 국가가 저작재산권을 가지고 있으면서 자유이용을 허락한 저작물, 저작권자가 공공의 사용을 목적으로 기증한 저작물 등을 포함하는 개념이다");
// insertDB(frstRegisterId, glossaryService,"표절 (Plagiarism)","법률 용어라기보다는 윤리적 개념으로, 타인의 저작물을 마치 자신의 저작물인 것처럼 공표하는 것을 말한다. \r\n\r\n타인의 저작물을 무단히 이용한다는 점에서는 저작권 침해와 유사하지만, 반드시 일치하는 것은 아니다. 예컨대 저작권법상 저작물로 보호받지 못하는 아이디어를 표절한다거나, 보호기간이 만료된 저작물을 표절하면 저작권 침해는 아니지만, 표절에 해당한다. 저작권 침해가 되지 않더라도 윤리적 비난 가능성은 남아있는 경우가 적지 않다.");
// insertDB(frstRegisterId, glossaryService,"합체의 원칙 (Merger Doctrine)","저작권법이 보호하는 대상은 사상, 감정, 컨셉 등의 독창적인 아이디어가 아니라, 이러한 아이디어 등을 창작적으로 ‘표현’한 것이다. 이러한 원칙을 아이디어와 표현의 이분법이라고 한다. \r\n\r\n그러나 아이디어와 표현이 너무나 밀접하게 섞여져 있어서 분리할 수 없는 경우에 표현을 보호하게 되면 표현이 아니라 보호 대상이 아닌 아이디어까지 보호하는 결과를 초래할 수 있기 때문에 이러한 현상을 방지하기 위하여 아이디어와 표현이 합체(merge)된 경우에는 창작성 있는 표현도 저작권으로 보호를 할 수 없다. 즉, 표현이 아이디어와 불가분의 관계에 있을 때 그러한 표현은 보호대상에서 제외된다는 이론이 합체의 원칙(merger doctrine)이다.");
// insertDB(frstRegisterId, glossaryService,"회복저작물 (Restored Works)","저작권 보호기간 만료 등으로 자유롭게 이용할 수 있었던 저작물을 저작권법 개정에 의하여 다시 보호하게 된 저작물을 말한다. 원칙적으로 개정법에서 저작권의 보호기간을 연장하는 경우 보호기간 만료 등으로 이미 퍼블릭 도메인 상태에 있는 저작물에 대해서는 연장된 보호기간을 적용하지 않는 것이 원칙이지만, 예외적으로 인정되는 경우가 있다. \r\n\r\n예컨대, 1996년 TRIPs 협정에 가입하게 됨에 따라 외국인의 저작물을 소급적으로 보호하는 베른협약을 수용하게 되어 1996년 6월 30일 이전까지 자유롭게 이용이 가능하였던 1957년 1월 1일 이후에 사망한 외국인의 저작물을 1996년 7월 1일부터 새로이 보호하게 되었으며, 저작인접권의 보호기간을 연장한 2011년 개정법에 의하여 1987년 7월 1부터 1994년 6월 30일 사이에 발생한 저작인접권 중 보호기간 20년이 경과되어 소멸된 저작인접권이 2013년 8월1일부터 새로이 보호하게 되었다.");
// insertDB(frstRegisterId, glossaryService,"2차적저작물작성권 (Adaptation Right)","원저작물을 번역・편곡・변형・각색・영상제작 그 밖의 방법으로 작성한 창작물을 2차적저작물이라고 하는데, 원저작물의 저작자는 자신의 저작물을 원저작물로 하는 2차적저작물을 작성할 권리와 작성된 2차적저작물을 이용할 권리를 가진다. \r\n\r\n원저작자의 이러한 권리를 2차적저작물작성권이라 한다. 즉, 자신의 저작물을 원저작물로 하는 2차적저작물을 작성할 권리는 원저작자의 배타적 권리이므로 원저작자의 허락 없이 2차적저작물을 작성하였다면 원저작자의 2차적저작물작성권을 침해한 것이다. 다만, 이러한 허락 없이 2차적저작물작성권을 침해하면서 작성된 2차적저작물일지라도 제3자와의 관계에서는 독립된 저작물로 보호받는다.");
// insertDB(frstRegisterId, glossaryService,"싱크권 (Synchronization Right)","싱크로나이제이션(약칭하여 “싱크”라 함)은 시각적 콘텐츠에 “타이밍을 맞춰” 음악을 이용하는 것을 말한다. 음악을 영화, 비디오, 텔레비전 프로그램, 또는 비디오 게임 등 시청각 저작물에 수록하기 위해서는 음악저작물과 그 음악저작물을 녹음한 음반(sound recording)을 이용하는 것이 일반적이기 때문에 음악저작물의 저작권자 및 저작인접권자에게 싱크로나이제이션(작사와 작곡에 대한 복제권 등과 음반에 대한 실연자와 음반제작자의 복제권 및 배포권 등) 이용허락을 받아야 한다. \r\n\r\n우리 저작권법이 싱크로나이제이션권(synchronization권 또는 Sync권)을 명시적으로 언급하고 있지는 않지만, 이것은 일반적으로 음악저작물 관련 권리자의 복제권 또는 2차적저작물 작성권의 일부로 이해되고 있다.");
//
//
// modelAndView.addObject("result", "SUCCESS");
// modelAndView.addObject("message", "저장되었습니다.");
// } catch (Exception e) {
// modelAndView.addObject("result", "FAIL");
// modelAndView.addObject("message", "저장에 실패했습니다.");
// }
//
// return modelAndView;
// }
//
// private int insertDB(String frstRegisterId, GlossaryService glossaryService, String glssrSubject, String glssrCn) {
// GlossaryVO glossaryVO = new GlossaryVO();
// glossaryVO.setGlssrSubject(glssrSubject);
// glossaryVO.setGlssrCn(glssrCn);
// glossaryVO.setFrstRegisterId(frstRegisterId);
// try {
// glossaryService.insertGlossary(glossaryVO);
// } catch (Exception e) {
// System.out.println("Subject :: " + glssrSubject + " fail!!!!!!!!!!!!!!!!!!!!!");
// }
//
// return 1;
// }
}

View File

@ -64,10 +64,10 @@ public class SchedulerUtil {
//10분마다 실행
// @Scheduled(cron = "0 0/1 * * * *")
//1분마다 실행
// @Scheduled(cron = "0 0/1 * * * *")
@Scheduled(cron = "0 0/1 * * * *")
// @SchedulerLock(name = "kakaoAtSendPrcs", lockAtMostForString = ONE_MIN, lockAtLeastForString = ONE_MIN)
public void kakaoAtSendPrcs() throws Exception {
// System.out.println("===========at scheduler run============");
System.out.println("===========at scheduler run============");
String hostAddr = null;
@ -91,27 +91,27 @@ public class SchedulerUtil {
}
try {
// System.out.println("server ip ============" + hostAddr);
System.out.println("server ip ============" + hostAddr);
// if(hostAddr.equals(myLocalIp) || hostAddr.equals(devOutIp) || hostAddr.equals(devInIp) || hostAddr.equals(dmzIp1) || hostAddr.equals(dmzIp2) || hostAddr.equals(containerIp) ) {
// if(hostAddr.equals(containerIp) ) {
if(hostAddr.equals(dmzIp1) || hostAddr.equals(containerIp) ) {
//접속 서버 분기처리 필요
// List<KakaoAtSendVO> list = kakaoAtSendService.selectKakaoAtList();
//
// int listSize = list.size();
List<KakaoAtSendVO> list = kakaoAtSendService.selectKakaoAtList();
// for(int i=0; i<listSize ; i++) {
//
// KakaoAtSendAPI kakaoAtSendAPI = KakaoAtSendAPI.getInstance();
// String status = kakaoAtSendAPI.sendMessage(list.get(i), isLocal, apiUrl);
//
// if("success".equals(status)) {
// kakaoAtSendService.updateKakaoAtDetail(list.get(i));
// }
//
// }
int listSize = list.size();
for(int i=0; i<listSize ; i++) {
KakaoAtSendAPI kakaoAtSendAPI = KakaoAtSendAPI.getInstance();
String status = kakaoAtSendAPI.sendMessage(list.get(i), isLocal, apiUrl);
if("success".equals(status)) {
kakaoAtSendService.updateKakaoAtDetail(list.get(i));
}
}
}
@ -121,7 +121,7 @@ public class SchedulerUtil {
System.out.println(e.getMessage());
}
// System.out.println("===========at scheduler finish============");
System.out.println("===========at scheduler finish============");
}
@Bean

View File

@ -1,82 +0,0 @@
package kcc.kccadr.msg.service;
import java.io.Serializable;
import kcc.com.cmm.ComDefaultVO;
public class EmailMgrVO extends ComDefaultVO implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String emailSeq; // 이메일 발송 일련번호
private String emailTitle; // 이메일 제목
private String emailContent; // 이메일 내용
private String emailTy; // 이메일 발송 유형
private String emailTo; // 이메일 발송 수신자
private String emailFrom; // 이메일 발송 발신자
private String adrSeq; // 조정일련번호
private String emailSendPnttm; // 이메일 발송일자
private String frstRegistPnttm; // 로그등록일자
public String getEmailSeq() {
return emailSeq;
}
public void setEmailSeq(String emailSeq) {
this.emailSeq = emailSeq;
}
public String getEmailTitle() {
return emailTitle;
}
public void setEmailTitle(String emailTitle) {
this.emailTitle = emailTitle;
}
public String getEmailContent() {
return emailContent;
}
public void setEmailContent(String emailContent) {
this.emailContent = emailContent;
}
public String getEmailTy() {
return emailTy;
}
public void setEmailTy(String emailTy) {
this.emailTy = emailTy;
}
public String getEmailTo() {
return emailTo;
}
public void setEmailTo(String emailTo) {
this.emailTo = emailTo;
}
public String getEmailFrom() {
return emailFrom;
}
public void setEmailFrom(String emailFrom) {
this.emailFrom = emailFrom;
}
public String getAdrSeq() {
return adrSeq;
}
public void setAdrSeq(String adrSeq) {
this.adrSeq = adrSeq;
}
public String getEmailSendPnttm() {
return emailSendPnttm;
}
public void setEmailSendPnttm(String emailSendPnttm) {
this.emailSendPnttm = emailSendPnttm;
}
public String getFrstRegistPnttm() {
return frstRegistPnttm;
}
public void setFrstRegistPnttm(String frstRegistPnttm) {
this.frstRegistPnttm = frstRegistPnttm;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
}

Some files were not shown because too many files have changed in this diff Show More