====== 요소기술 - 파일동기화 ======
===== 개요 =====
**파일동기화**는 파일 저장 및 삭제에 대하여 여러 AP 서버에 동기화 시키는 기능으로 AP 서버들 간 동기화를 통해 파일 첨부 및 다운로드 기능을 제공한다.
===== 설명 =====
***파일동기화**는 파일 저장 및 삭제에 대하여 여러 AP 서버에 동기화 시키기 위한 목적으로 동기화대상 서버정보의 등록, 수정, 삭제, 조회, 목록조회의 기능 및 화일 동기화 처리 기능을 수반한다.
① 동기화대상서버목록조회 : 동기화대상 서버정보를 최근 등록 순서대로 조회하고. 그 결과를 화면에 반영한다.
② 동기화대상서버등록 : 동기화대상 서버정보를 등록하고, 등록한 결과를 조회한다.
③ 동기화대상서버수정 : 기 등록된 동기화대상 서버정보를 수정한다.
④ 동기화대상서버삭제 : 기 등록된 동기화대상 서버정보를 삭제한다.
⑤ 동기화대상서버상세조회 : 동기화대상 서버목록에서 선택한 서버의 상세정보를 보여준다.
⑥ 동기화대상파일등록 : 동기화대상 파일을 등록한다.
⑦ 동기화대상파일삭제 : 동기화대상 파일을 삭제한다.
⑧ 파일동기화처리 : 업로드 파일들에 대하여 동기화 처리를 수행한다.
==== 관련소스 ====
^유형^대상소스명^비고^
|Controller|egovframework.com.utl.sys.ssy.web.EgovSynchrnServerController.java|동기화대상 서버관리를 위한 controller 클래스|
|Service|egovframework.com.utl.sys.ssy.service.EgovSynchrnServerService.java|동기화대상 서버관리를 위한 Service Interface|
|ServiceImpl|egovframework.com.utl.sys.ssy.service.impl.EgovSynchrnServerServiceImpl.java|동기화대상 서버관리를 위한 서비스 구현 클래스|
|DAO|egovframework.com.utl.sys.ssy.service.impl.SynchrnServerDAO.java|동기화대상 서버관리를 위한 데이터처리 클래스|
|Model|egovframework.com.utl.sys.ssy.service.SynchrnServer.java|동기화대상 서버관리를 위한 Model 클래스|
|VO|egovframework.com.utl.sys.ssy.service.SynchrnServerVO.java|동기화대상 서버관리를 위한 VO 클래스|
|JSP|/WEB-INF/jsp/egovframework/utl/sys/ssy/EgovSynchrnServerList.jsp|동기화대상서버 목록조회를 위한 jsp페이지|
|JSP|/WEB-INF/jsp/egovframework/utl/sys/ssy/EgovSynchrnServerDetail.jsp|동기화대상서버 상세조회를 위한 jsp페이지|
|JSP|/WEB-INF/jsp/egovframework/utl/sys/ssy/EgovSynchrnServerRegist.jsp|동기화대상서버 등록를 위한 jsp페이지|
|JSP|/WEB-INF/jsp/egovframework/utl/sys/ssy/EgovSynchrnServerUpdt.jsp|동기화대상서버 수정을 위한 jsp페이지|
|QUERY XML|resources/egovframework/mapper/com/utl/sys/ssy/EgovSynchrnServer_SQL_altibase.xml|동기화대상서버정보 Altibase용 QUERY XML|
|QUERY XML|resources/egovframework/mapper/com/utl/sys/ssy/EgovSynchrnServer_SQL_cubrid.xml|동기화대상서버정보 Cubrid용 QUERY XML|
|QUERY XML|resources/egovframework/mapper/com/utl/sys/ssy/EgovSynchrnServer_SQL_maria.xml|동기화대상서버정보 Maria용 QUERY XML|
|QUERY XML|resources/egovframework/mapper/com/utl/sys/ssy/EgovSynchrnServer_SQL_mysql.xml|동기화대상서버정보 MySQL용 QUERY XML|
|QUERY XML|resources/egovframework/mapper/com/utl/sys/ssy/EgovSynchrnServer_SQL_oracle.xml|동기화대상서버정보 Oracle용 QUERY XML|
|QUERY XML|resources/egovframework/mapper/com/utl/sys/ssy/EgovSynchrnServer_SQL_postgres.xml|동기화대상서버정보 Postgres용 QUERY XML|
|QUERY XML|resources/egovframework/mapper/com/utl/sys/ssy/EgovSynchrnServer_SQL_tibero.xml|동기화대상서버정보 Tibero용 QUERY XML|
|QUERY XML|resources/egovframework/mapper/com/utl/sys/ssy/EgovSynchrnServer_SQL_goldilocks.xml|동기화대상서버정보 Goldilocks용 QUERY XML|
|Validator Rule XML|resources/egovframework/validator/validator-rules.xml|Validator Rule을 정의한 XML|
|Validator XML|resources/egovframework/validator/com/utl/sys/ssy/EgovSynchrnServer.xml|동기화대상서버정보 Validator XML|
|Message properties|resources/egovframework/message/com/utl/sys/ssy/message_ko.properties|동기화대상서버정보 Message properties(한글)|
|Message properties|resources/egovframework/message/com/utl/sys/ssy/message_en.properties|동기화대상서버정보 Message properties(영문)|
|Idgen XML|resources/egovframework/spring/com/idgn/context-idgn-SynchrnServer.xml|동기화대상서버정보 Id생성 Idgen XML|
==== 클래스 다이어그램 ====
{{:egovframework:com:utl:sys:ssy:SynchrnServer.png?740|}}
=== 관련테이블 ===
^테이블명^테이블명(영문)^비고^
|동기화서버정보|COMTNSYNCHRNSERVERINFO|파일 동기화대상 AP서버 정보를 관리한다.|
=== ID Generation 관련 DDL 및 DML ===
* ID Generation Service를 활용하기 위해서 Sequence 저장테이블인 COMTECOPSEQ에 **SYNCHRNSERVER_ID** 항목을 추가해야 한다.
CREATE TABLE COMTECOPSEQ ( table_name varchar(16) NOT NULL,
next_id DECIMAL(30) NOT NULL,
PRIMARY KEY (table_name)
);
INSERT INTO COMTECOPSEQ VALUES ('SYNCHRNSERVER_ID','0');
=== ID Generation 환경설정(context-idgn-SynchrnServer.xml) ===
==== 관련설정 ====
globals.properties 파일에 Globals.SynchrnServerPath 경로가 없을 경우 에러가 발생하므로, 반드시 해당 디렉토리를 생성해야 한다.
# 파일 동기화 컴포넌트에서 사용할 파일 업로드 경로(경로 설정은 반드시 절대경로를 사용해야함, 경로 뒤에 /를 붙여 주어야함.)
Globals.SynchrnServerPath = C:/egovframework/upload/Synch/
===== 관련화면 및 수행메뉴얼 =====
==== 동기화대상서버 목록조회 ====
^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|조회|/utl/sys/ssy/selectSynchrnServerList.do|selectSynchrnServerList|"synchrnServerDAO"|"selectSynchrnServerList"|
| | | |"synchrnServerDAO"|"selectSynchrnServerListTotCnt"|
동기화대상서버 목록은 페이지당 10건씩 조회되며 페이징은 10페이지씩 이루어진다.
검색조건은 서버명에 대해서 수행된다.
{{:egovframework:com:v3.9:utl:sys:ssy:파일동기화_목록.jpg|}}
조회 : 기 등록된 동기화대상서버 목록을 조회한다.\\
등록 : 동기화대상서버를 등록하기 위해서는 **등록 버튼**을 선택하여 **동기화대상서버 등록** 화면으로 이동한다.\\
상세조회 : 동기화대상서버의 상세정보를 조회하기 위해 **서버ID**를 선택하여 **동기화대상 서버정보 상세조회** 화면으로 이동한다.\\
동기화대상파일 등록 : 동기화처리를 위한 대상**파일**을 등록한다.\\
동기화대상파일 삭제 : 동기화대상 파일을 삭제한다.\\
----
==== 동기화대상서버 등록 ====
^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|저장|/utl/sys/ssy/addSynchrnServer.do|insertSynchrnServer|"synchrnServerDAO"|"insertSynchrnServer"|
|목록|/utl/sys/ssy/selectSynchrnServerList.do|selectSynchrnServerList|"synchrnServerDAO"|"selectSynchrnServerList"|
동기화대상서버의 속성정보를 입력한 뒤 등록한다.
{{:egovframework:com:v3.9:utl:sys:ssy:파일동기화_등록.jpg|}}
저장 : 신규 동기화대상서버를 등록하기 위해서는 동기화대상서버 속성을 입력한 뒤 하단의 **저장 버튼**을 통해서 동기화대상서버를 등록한다. **서버ID**는 등록시 자동으로 부여된다.\\
목록 : 동기화대상서버 목록조회 화면으로 이동한다.\\
----
==== 동기화대상서버 수정 ====
^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|저장|/utl/sys/ssy/updtSynchrnServer.do|updateSynchrnServer|"synchrnServerDAO"|"updateSynchrnServer"|
|삭제|/utl/sys/ssy/removeSynchrnServer.do|deleteSynchrnServer|"synchrnServerDAO"|"deleteSynchrnServer"|
동기화대상서버의 속성정보를 변경한 후 저장한다.
{{:egovframework:com:v3.9:utl:sys:ssy:파일동기화_수정.jpg|}}
저장 : 동기화대상서버를 수정하기 위해서는 동기화대상서버 속성을 변경한 뒤 하단의 **저장 버튼**을 통해서 동기화대상서버를 수정한다.\\
목록 : 동기화대상서버 목록조회 화면으로 이동한다.\\
----
==== 동기화대상서버 상세조회 ====
^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|조회|/utl/sys/ssy/getSynchrnServer.do|selectSynchrnServer|"synchrnServerDAO"|"selectSynchrnServer"|
동기화대상서버의 속성정보를 조회한다.
{{:egovframework:com:v3.9:utl:sys:ssy:파일동기화_상세.jpg|}}
수정 : 동기화대상서버를 수정하기 위해서는 하단의 **등록 버튼**을 선택한 뒤 동기화대상서버 수정 화면으로 이동한다.\\
삭제 : 기 등록된 동기화대상서버를 삭제하기 위해서는 하단의 **삭제 버튼**을 통해서 동기화대상서버를 삭제한다.\\
목록 : 동기화대상서버 목록조회 화면으로 이동한다.\\
동기화파일 다운로드 : **동기화대상서버**에 등록되어 있는 파일을 **동기화대상 컴포넌트가 설치된 서버**로 다운로드 한다.\\
동기화파일 삭제 : 동기화대상서버에 등록되어 있는 파일을 삭제한다.\\
----
==== 동기화대상 처리 ====
^Action^URL^Controller method^SQL Namespace^SQL QueryID^
|파일등록|/utl/sys/ssy/uploadFile.do|uploadFile| |
|파일삭제|/utl/sys/ssy/deleteFile.do|deleteFile| |
|동기화|/utl/sys/ssy/processSynchrn.do|processSynchrn|"synchrnServerDAO"|"processSynchrn"|
기 등록된 동기화대상서버를 대상으로 파일동기화 처리를 한다.
{{:egovframework:com:v3.9:utl:sys:ssy:파일동기화_목록.jpg|}}
파일등록 : 동기화 대상 파일을 등록한다..\\
파일삭제 : 동기화 대상 파일을 삭제한다.\\
동기화 : 상단의 **동기화 버튼**을 통해서 기 등록된 동기화대상서버를 대상으로 동기화 대상파일에 대하여 동기화처리를 한다.\\
----