From 85a3ab92e31ee901c58566f4a0bfed8c2500194e Mon Sep 17 00:00:00 2001 From: dasomel Date: Sat, 13 Jun 2026 17:17:17 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EC=86=A1=EC=88=98=EC=8B=A0=EB=AA=A8?= =?UTF-8?q?=EB=8B=88=ED=84=B0=EB=A7=81,=20=EB=94=94=EB=A0=89=ED=84=B0?= =?UTF-8?q?=EB=A6=AC=EC=A1=B4=EC=9E=AC,=20=ED=94=84=EB=A1=9D=EC=8B=9C,=20?= =?UTF-8?q?=EC=9C=A0=ED=9A=A8=EC=84=B1=EC=B2=B4=ED=81=AC,=20=EC=84=9C?= =?UTF-8?q?=EB=B2=84=EC=9E=90=EC=9B=90=EB=AA=A8=EB=8B=88=ED=84=B0=EB=A7=81?= =?UTF-8?q?=20=EA=B0=80=EC=9D=B4=EB=93=9C=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../directory-exist-check.md | 81 ++++++++ .../id-number-validation.md | 77 ++++++++ .../elementary-technology/proxy-service.md | 181 ++++++++++++++++++ .../send-receive-monitoring.md | 172 +++++++++++++++++ .../server-resource-monitoring.md | 61 ++++++ 5 files changed, 572 insertions(+) diff --git a/common-component/elementary-technology/directory-exist-check.md b/common-component/elementary-technology/directory-exist-check.md index b824d46b..83eadf40 100644 --- a/common-component/elementary-technology/directory-exist-check.md +++ b/common-component/elementary-technology/directory-exist-check.md @@ -9,3 +9,84 @@ menu: weight: 15 parent: "system" --- + +## 개요 + +비즈니스 로직을 처리하면서 필요시 디렉토리의 존재를 확인할 수 있는 공통 기능을 제공한다. + +본 기능은 전자정부 표준프레임워크 공통컴포넌트 요소기술 내에 구성되어 있다. + +## 설명 + +1. 대상 디렉토리가 존재하는지 확인하는 기능 +2. 특정 위치 이하로 대상 디렉토리가 존재하는지 확인하는 기능 +3. 대상 디렉토리의 최종수정일자가 특정 구간 내에 포함되는 경우에 한해서 존재 여부를 확인하는 기능 +4. 대상 디렉토리가 특정 소유자에 의해 생성된 경우에 한해서 존재 여부를 확인하는 기능(WINDOWS 시스템에서는 지원하지 않음) + +### 관련 소스 + +| 유형 | 대상 소스명 | 설명 | 비고 | +| --- | --- | --- | --- | +| Service | `egovframework.com.utl.service.EgovFileTool.java` | 파일관리 툴 요소기술 클래스 | | +| JSP | `WEB_INF/jsp/egovframework/cmm/utl/EgovDrctryExst.jsp` | 테스트 페이지 | | + +### 메소드 + + +| 결과값 | 메소드명 | 설명 | 내용 | +| --- | --- | --- | --- | +| boolean | `getExistDirectory(String targetDirPath)` | 디렉토리 확인 | 대상 디렉토리경로(`targetDirPath`)를 입력받아 확인한다. 성공 시 `true`, 실패 시 `false`를 리턴 | +| ArrayList | `getExistDirectory(String baseDirPath, String targetDirName, int cnt)` | 디렉토리 확인 | 확인할 위치기준 디렉토리경로(`baseDirPath`)를 입력받아 하위 디렉토리 중 대상 디렉토리(`targetDirPath`)가 존재하는지 확인한다. 성공 시 확인된 절대경로를 문자열 정보로 LIST에 담아서 리턴 | +| boolean | `getExistDirectory(String targetDirPath, String fromDate, String toDate)` | 디렉토리 확인 | 대상 디렉토리경로(`targetDirPath`)를 입력받아 생성일자가 조건구간(`fromDate`과 `toDate` 사이) 내에 포함되는지 확인한다. 성공 시 `true`, 실패 시 `false`를 리턴 | +| boolean | `getExistDirectory(String targetDirPath, String owner)` | 디렉토리 확인 | 대상 디렉토리경로(`targetDirPath`)를 입력받아 디렉토리 소유자조건(`owner`)에 일치하는지 확인한다. 성공 시 `true`, 실패 시 `false` 리턴 | + + +### Input + +* **targetDirPath**: String 타입의 절대경로를 포함하는 확인대상 디렉토리경로 (예: `/product/jeus/egovProps/tmp/dir1`) +* **baseDirPath**: String 타입의 절대경로를 포함하는 확인할 위치기준 디렉토리경로 (예: `/product/jeus/egovProps/tmp`) +* **targetDirName**: String 타입의 확인대상 디렉토리명 (예: `dir1`) +* **cnt**: int 타입의 디렉토리 존재 확인할 반복 횟수 (예: `10`) +* **fromDate**: String 타입의 날짜 정보 (예: `20090101`) +* **toDate**: String 타입의 날짜 정보 (예: `20090731`) +* **owner**: String 타입의 사용자 계정명 (예: `jeus`) + +### Output + +* **boolean** 타입: 존재 여부 `true` / `false` +* **ArrayList** 타입: 기준 경로 이하로 존재하는 디렉토리 목록 (예: `{"/user/com", "user/com/com", "user/adt/com"}`) + +> [!NOTE] +> 메소드의 입력 항목 중에서 `fromDate`, `toDate` 항목은 Validation 체크가 적용된다 +> ([요소기술 validation 체크](/common-component/elementary-technology/validation-check/) 참조). + +## 환경설정 + +N/A + +## 사용방법 + +```java +import egovframework.com.utl.sim.service.EgovFileTool; + +String targetDirPath1 = "/user/com/dir1"; +boolean result1 = EgovFileTool.getExistDirectory(targetDirPath1); + +String baseDirPath2 = "/user/com/dir2"; +String targetDirPath2 = "dir22"; +int matchCnt = 1; +ArrayList result2 = EgovFileTool.getExistDirectory(baseDirPath2, targetDirPath2, matchCnt); + +String targetDirPath3 = "/user/com/dir3"; +String fromDate3 = "20090101"; +String toDate3 = "20090131"; +boolean result3 = EgovFileTool.getExistDirectory(targetDirPath3, fromDate3, toDate3); + +String targetDirPath4 = "/user/com/dir4"; +String ownerName4 = "com"; +boolean result4 = EgovFileTool.getExistDirectory(targetDirPath4, ownerName4); +``` + +## 참고자료 + +N/A diff --git a/common-component/elementary-technology/id-number-validation.md b/common-component/elementary-technology/id-number-validation.md index 8a9b185d..e5f8415c 100644 --- a/common-component/elementary-technology/id-number-validation.md +++ b/common-component/elementary-technology/id-number-validation.md @@ -9,3 +9,80 @@ menu: weight: 12 parent: "formatter-util" --- + +## 개요 + +주어진 주민등록번호, 법인번호, 사업자등록번호, 외국인등록번호의 유효성을 체크하여 `true`, `false`를 반환한다. + +## 설명 + +입력에 주민등록번호, 법인번호, 사업자등록번호, 외국인등록번호를 입력받는다. 각 번호마다 하이픈(`-`)이 포함된 구분 입력과, 하이픈이 배제된 하나의 입력 등 두 가지 방식을 지원한다. + +### 관련 소스 + +| 유형 | 대상 소스 | 설명 | +| --- | --- | --- | +| Service | `egovframework.com.utl.fcc.service.EgovNumberCheckUtil.java` | 번호 유효성 처리 관련 유틸리티 | +| Controller | `egovframework.com.utl.fcc.web.EgovNumberCheckUtilController.java` | 테스트용 Controller | +| JSP | `/WEB-INF/jsp/egovframework/cmm/utl/EgovNumberCheck.jsp` | 테스트 페이지 | + +### 메소드 + +| 결과값 | 메소드 | 설명 | 내용 | +| --- | --- | --- | --- | +| `boolean` | `checkJuminNumber(String jumin1, String jumin2)` | 주민등록번호 유효성체크 | 주민등록번호 앞, 뒤 문자열을 입력받아 유효성 체크 | +| `boolean` | `checkJuminNumber(String jumin)` | 주민등록번호 유효성체크 | 주민등록번호(`-` 제외) 문자열을 입력받아 유효성 체크 | +| `boolean` | `checkBubinNumber(String bubin1, String bubin2)` | 법인번호 유효성체크 | 법인번호 앞, 뒤 문자열을 입력받아 유효성 체크 | +| `boolean` | `checkBubinNumber(String bubin)` | 법인번호 유효성체크 | 법인번호(`-` 제외) 문자열을 입력받아 유효성 체크 | +| `boolean` | `checkCompNumber(String c1, String c2, String c3)` | 사업자번호 유효성체크 | 사업자번호 앞, 중간, 뒤 문자열을 입력받아 유효성 체크 | +| `boolean` | `checkCompNumber(String comp)` | 사업자번호 유효성체크 | 사업자번호(`-` 제외) 문자열을 입력받아 유효성 체크 | +| `boolean` | `checkforeignNumber(String for1, String for2)` | 외국인번호 유효성체크 | 외국인등록번호 앞, 뒤 문자열을 입력받아 유효성 체크 | +| `boolean` | `checkforeignNumber(String foreign)` | 외국인번호 유효성체크 | 외국인등록번호(`-` 제외) 문자열을 입력받아 유효성 체크 | + +- **Input**: 해당하는 입력란의 `String` 형태의 번호 +- **Output**: `boolean` (유효 여부) + +## 사용방법 + +다음은 번호의 종류에 따라 유효성을 검증하는 예제 코드이다. + +```java +import egovframework.com.utl.fcc.service.EgovNumberCheckUtil; + +// ... + +// 1. 주민등록번호 체크 +String jumin1 = "831231"; +String jumin2 = "265948"; +String jumin = "831231265948"; + +boolean isJuminValid1 = EgovNumberCheckUtil.checkJuminNumber(jumin1, jumin2); +boolean isJuminValid2 = EgovNumberCheckUtil.checkJuminNumber(jumin); + +// 2. 법인번호 체크 +String bubin1 = "134153"; +String bubin2 = "4433453"; +String bubin = "1341534433453"; + +boolean isBubinValid1 = EgovNumberCheckUtil.checkBubinNumber(bubin1, bubin2); +boolean isBubinValid2 = EgovNumberCheckUtil.checkBubinNumber(bubin); + +// 3. 사업자등록번호 체크 +String comp1 = "324"; +String comp2 = "12"; +String comp3 = "43222"; +String comp = "3241243222"; + +boolean isCompValid1 = EgovNumberCheckUtil.checkCompNumber(comp1, comp2, comp3); +boolean isCompValid2 = EgovNumberCheckUtil.checkCompNumber(comp); + +// 4. 외국인등록번호 체크 +String foreign1 = "831231"; +String foreign2 = "576545"; +String foreign = "831231576545"; + +boolean isForeignValid1 = EgovNumberCheckUtil.checkforeignNumber(foreign1, foreign2); +boolean isForeignValid2 = EgovNumberCheckUtil.checkforeignNumber(foreign); + +// ... +``` diff --git a/common-component/elementary-technology/proxy-service.md b/common-component/elementary-technology/proxy-service.md index 379946cf..5bb46aca 100644 --- a/common-component/elementary-technology/proxy-service.md +++ b/common-component/elementary-technology/proxy-service.md @@ -9,3 +9,184 @@ menu: weight: 37 parent: "system" --- + +## 개요 + +**프록시서비스**는 네트워크 연결에 대한 프록시 설정을 동적으로 관리하고, 연결에 대한 기본 서비스(telnet, ftp, jdbc 연결)에 대한 로깅을 기록할 수 있는 네트워크 서비스 기능을 제공한다. + +## 설명 + +**프록시서비스**는 네트워크 연결에 대한 프록시 설정 정보의 등록, 수정, 삭제, 조회, 목록조회의 기능 및 프록시 로그생성, 로그조회의 기능을 수반한다. + +1. 프록시설정목록조회: 프록시설정 정보를 최근 등록 순서대로 조회하고, 그 결과를 화면에 반영한다. +2. 프록시설정등록: 프록시설정 정보를 등록하고, 등록한 결과를 조회한다. +3. 프록시설정수정: 기 등록된 프록시설정 정보를 수정한다. +4. 프록시설정삭제: 기 등록된 프록시설정 정보를 삭제한다. +5. 프록시설정상세조회: 프록시설정 목록에서 선택한 프록시설정 상세정보를 보여준다. +6. 프록시로그생성: 프록시설정을 통해 접속한 클라이언트의 접속 로그를 생성한다. +7. 프록시로그조회: 프록시설정을 통해 접속한 클라이언트의 접속 로그를 확인한다. + +### 관련소스 + +| 유형 | 대상소스명 | 비고 | +| --- | --- | --- | +| Controller | egovframework.com.utl.sys.pxy.web.EgovProxySvcController.java | 정보관리 컨트롤러 | +| Service | egovframework.com.utl.sys.pxy.service.EgovProxySvcService.java | 정보관리 인터페이스 | +| ServiceImpl | egovframework.com.utl.sys.pxy.service.impl.EgovProxySvcServiceImpl.java | 정보관리 서비스 구현체 | +| DAO | egovframework.com.utl.sys.pxy.service.impl.ProxySvcDAO.java | 정보관리 DAO | +| Model | egovframework.com.utl.sys.pxy.service.ProxySvc.java | 정보관리 모델 | +| Model | egovframework.com.utl.sys.pxy.service.ProxyLog.java | 로그관리 모델 | +| VO | egovframework.com.utl.sys.pxy.service.ProxySvcVO.java | 정보관리 VO | +| VO | egovframework.com.utl.sys.pxy.service.ProxyLogVO.java | 로그관리 VO | +| JSP | /WEB-INF/jsp/egovframework/com/utl/sys/pxy/EgovProxyLogList.jsp | 로그조회 화면 | +| JSP | /WEB-INF/jsp/egovframework/com/utl/sys/pxy/EgovProxySvcList.jsp | 목록조회 화면 | +| JSP | /WEB-INF/jsp/egovframework/com/utl/sys/pxy/EgovProxySvcDetail.jsp | 상세조회 화면 | +| JSP | /WEB-INF/jsp/egovframework/com/utl/sys/pxy/EgovProxySvcRegist.jsp | 등록 화면 | +| JSP | /WEB-INF/jsp/egovframework/com/utl/sys/pxy/EgovProxySvcUpdt.jsp | 수정 화면 | +| Query XML | resources/.../EgovProxySvc_SQL_altibase.xml | Altibase용 Query XML | +| Query XML | resources/.../EgovProxySvc_SQL_cubrid.xml | Cubrid용 Query XML | +| Query XML | resources/.../EgovProxySvc_SQL_maria.xml | MariaDB용 Query XML | +| Query XML | resources/.../EgovProxySvc_SQL_mysql.xml | MySQL용 Query XML | +| Query XML | resources/.../EgovProxySvc_SQL_oracle.xml | Oracle용 Query XML | +| Query XML | resources/.../EgovProxySvc_SQL_postgres.xml | PostgreSQL용 Query XML | +| Query XML | resources/.../EgovProxySvc_SQL_tibero.xml | Tibero용 Query XML | +| Query XML | resources/.../EgovProxySvc_SQL_goldilocks.xml | Goldilocks용 Query XML | +| Validator Rule | resources/egovframework/validator/validator-rules.xml | Validator Rule XML | +| Validator XML | resources/.../validator/com/utl/sys/pxy/EgovProxySvc.xml | Validator XML | +| Message prop | resources/.../message/com/utl/sys/pxy/message_en.properties | 영문 Message | +| Message prop | resources/.../message/com/utl/sys/pxy/message_ko.properties | 한글 Message | +| Idgen XML | resources/.../spring/com/idgn/context-idgn-ProxySvc.xml | Idgen XML | + +### 클래스 다이어그램 + +![클래스 다이어그램](images/proxy-service-class-diagram.png) + +### 관련테이블 + +| 테이블명 | 테이블명(영문) | 비고 | +| --- | --- | --- | +| 프록시정보 | COMTNPROXYINFO | 네트워크 연결에 대한 프록시 설정을 관리한다. | +| 프록시로그정보 | COMTNPROXYLOGINFO | 프록시연결에 대한 로그를 관리한다. | + +### ID Generation 관련 DDL 및 DML + +ID Generation Service를 활용하기 위해서 Sequence 저장테이블인 COMTECOPSEQ에 `PROXYSVC_ID`, `PROXYLOG_ID` 항목을 추가해야 한다. + +```sql +CREATE TABLE COMTECOPSEQ ( + table_name varchar(16) NOT NULL, + next_id DECIMAL(30) NOT NULL, + PRIMARY KEY (table_name) +); + +INSERT INTO COMTECOPSEQ VALUES ('PROXYSVC_ID','0'); +INSERT INTO COMTECOPSEQ VALUES ('PROXYLOG_ID','0'); +``` + +### ID Generation 환경설정 (context-idgn-ProxySvc.xml) + +```xml + + + + + + + + + + + + + + + + + + + + + + + + + + + +``` + +## 참고자료 + +### 관련화면 및 수행메뉴얼 + +#### 프록시설정 목록조회 + +| Action | URL | Controller method | QueryID | +| --- | --- | --- | --- | +| 조회 | /utl/sys/pxy/selectProxySvcList.do | selectProxySvcList | proxySvcDAO.selectProxySvcList | +| - | - | - | proxySvcDAO.selectProxySvcListTotCnt | + +프록시설정 목록은 페이지당 10건씩 조회되며 페이징은 10페이지씩 이루어진다. 검색조건은 프록시명에 대해서 수행된다. + +![프록시설정 목록조회](images/proxy-service-list.png) + +- **조회**: 기 등록된 프록시설정 목록을 조회한다. +- **등록**: 프록시설정정보를 등록하기 위해서는 **등록 버튼**을 선택하여 **프록시설정 등록** 화면으로 이동한다. +- **상세조회**: 프록시설정의 상세정보를 조회하기 위해 **프록시ID**를 선택하여 **프록시설정 상세조회** 화면으로 이동한다. + +#### 프록시설정 등록 + +| Action | URL | Controller method | QueryID | +| --- | --- | --- | --- | +| 저장 | /utl/sys/pxy/addProxySvc.do | insertProxySvc | proxySvcDAO.insertSynchrnServer | +| 목록 | /utl/sys/pxy/selectProxySvcList.do | selectProxySvcList | proxySvcDAO.selectProxySvcList | + +프록시설정 속성정보를 입력한 뒤 등록한다. + +![프록시설정 등록](images/proxy-service-insert.png) + +- **저장**: 신규 프록시설정정보를 등록하기 위해서는 프록시설정정보 속성을 입력한 뒤 하단의 **저장 버튼**을 통해서 프록시설정정보를 등록한다. **프록시ID**는 등록시 자동으로 부여된다. +- **목록**: 프록시설정 목록조회 화면으로 이동한다. + +#### 프록시설정 수정 + +| Action | URL | Controller method | QueryID | +| --- | --- | --- | --- | +| 저장 | /utl/sys/pxy/updtProxySvc.do | updateProxySvc | proxySvcDAO.updateProxySvc | +| 삭제 | /utl/sys/pxy/removeProxySvc.do | deleteProxySvc | proxySvcDAO.deleteProxySvc | + +프록시설정 속성정보를 변경한 후 저장한다. +**서비스상태**정보는 **정상**일 경우 프록시서비스가 클라이언트 접속에 대한 모니터링 로그기록 동작을 수행하고, **중지**일 경우 그 동작을 멈춘다. + +![프록시설정 수정](images/proxy-service-update.png) + +- **저장**: 프록시설정정보를 수정하기 위해서는 프록시설정정보 속성을 변경한 뒤 하단의 **저장 버튼**을 통해서 프록시설정정보를 수정한다. +- **삭제**: 기 등록된 프록시설정정보를 삭제하기 위해서는 하단의 **삭제 버튼**을 통해서 프록시설정정보를 삭제한다. +- **목록**: 프록시설정정보 목록조회 화면으로 이동한다. + +#### 프록시설정 상세조회 + +| Action | URL | Controller method | QueryID | +| --- | --- | --- | --- | +| 조회 | /utl/sys/pxy/getProxySvc.do | selectProxySvc | proxySvcDAO.selectProxySvc | + +프록시설정 목록에서 선택한 프록시설정 상세정보를 보여준다. + +![프록시설정 상세조회](images/proxy-service-detail.png) + +- **수정**: 프록시설정정보를 수정하기 위해서는 하단의 **수정 버튼**을 선택한 뒤 프록시설정 수정 화면으로 이동한다. +- **삭제**: 기 등록된 프록시설정정보를 삭제하기 위해서는 하단의 **삭제 버튼**을 통해서 프록시설정정보를 삭제한다. +- **목록**: 프록시설정 목록조회 화면으로 이동한다. + +#### 프록시로그 조회 + +| Action | URL | Controller method | QueryID | +| --- | --- | --- | --- | +| 조회 | /utl/sys/pxy/selectProxyLogList.do | selectProxyLogList | proxySvcDAO.selectProxyLogList | +| - | - | - | proxySvcDAO.selectProxyLogListTotCnt | + +클라이언트는 프록시서비스의 ip, port 접속하면 해당 로그가 생성되고, 그 로그를 조회할 수 있다. + +![프록시로그 조회](images/proxy-service-log-list.png) + +- **조회**: 기 등록된 프록시로그 목록을 조회한다. diff --git a/common-component/elementary-technology/send-receive-monitoring.md b/common-component/elementary-technology/send-receive-monitoring.md index 8d11ea77..cad0d4f8 100644 --- a/common-component/elementary-technology/send-receive-monitoring.md +++ b/common-component/elementary-technology/send-receive-monitoring.md @@ -9,3 +9,175 @@ menu: weight: 11 parent: "system" --- + + + +# 송수신모니터링 + +## 개요 + +송수신모니터링은 연계기관과의 송수신 상태를 주기적으로 모니터링하는 기능을 제공한다. +모니터링하고자 하는 연계는 시스템연계관리를 통해 시스템에 등록되어 있어야 한다. 모니터링 시에 사용되는 송수신상태를 체크하는 테스트 클래스는 `egovframework.com.utl.sys.trm.service.TrsmrcvMntrngChecker` 인터페이스를 구현하여 모니터링 대상 등록 시 해당 클래스를 테스트 클래스명으로 등록해야 한다. + +## 설명 + +송수신모니터링을 등록하기 위한 목적으로 송수신모니터링의 등록, 수정, 삭제, 조회, 목록조회의 기능을 수반한다. + +1. **송수신모니터링목록조회**: 송수신모니터링으로 정의된 정보를 최근 등록 순서대로 조회하고, 그 결과 목록을 화면에 반영한다. +2. **송수신모니터링등록**: 송수신모니터링정보를 등록하고, 등록 결과를 조회한다. +3. **송수신모니터링수정**: 기 등록된 송수신모니터링정보의 항목들을 수정한다. +4. **송수신모니터링삭제**: 기 등록된 송수신모니터링정보를 삭제한다. +5. **송수신모니터링조회**: 등록된 송수신모니터링정보를 조회한다. +6. **송수신모니터링로그목록조회**: 송수신모니터링로그로 정의된 정보를 최근 등록 순서대로 조회하고, 그 결과 목록을 화면에 반영한다. +7. **송수신모니터링로그조회**: 등록된 송수신모니터링로그정보를 조회한다. + +### 관련소스 + +| 유형 | 대상소스명 | 비고 | +| --- | --- | --- | +| Controller | `egovframework.com.utl.sys.trm.web.EgovTrsmrcvMntrngController.java` | 송수신모니터링을 위한 컨트롤러 클래스 | +| Service | `egovframework.com.utl.sys.trm.service.EgovTrsmrcvMntrngService.java` | 송수신모니터링을 위한 서비스 인터페이스 | +| ServiceImpl | `egovframework.com.utl.sys.trm.service.impl.EgovTrsmrcvMntrngServiceImpl.java` | 송수신모니터링을 위한 서비스 구현 클래스 | +| DAO | `egovframework.com.utl.sys.trm.service.impl.TrsmrcvMntrngDAO.java` | 송수신모니터링을 위한 데이터처리 클래스 | +| Model | `egovframework.com.utl.sys.trm.service.TrsmrcvMntrng.java` | 송수신모니터링을 위한 Model 클래스 | +| Model | `egovframework.com.utl.sys.trm.service.TrsmrcvMntrngLog.java` | 송수신모니터링로그정보를 위한 Model 클래스 | +| JSP | `/WEB-INF/jsp/egovframework/utl/sys/trm/EgovTrsmrcvMntrngList.jsp` | 송수신모니터링목록조회를 위한 JSP 페이지 | +| JSP | `/WEB-INF/jsp/egovframework/utl/sys/trm/EgovTrsmrcvMntrngRegist.jsp` | 송수신모니터링 등록을 위한 JSP 페이지 | +| JSP | `/WEB-INF/jsp/egovframework/utl/sys/trm/EgovTrsmrcvMntrngUpdt.jsp` | 송수신모니터링 수정을 위한 JSP 페이지 | +| JSP | `/WEB-INF/jsp/egovframework/utl/sys/trm/EgovTrsmrcvMntrngDetail.jsp` | 등록된 송수신모니터링을 조회하기 위한 JSP 페이지 | +| JSP | `/WEB-INF/jsp/egovframework/utl/sys/trm/EgovTrsmrcvMntrngLogList.jsp` | 송수신모니터링로그목록조회를 위한 JSP 페이지 | +| JSP | `/WEB-INF/jsp/egovframework/utl/sys/trm/EgovTrsmrcvMntrngLogDetail.jsp` | 등록된 송수신모니터링로그을 조회하기 위한 JSP 페이지 | +| XML | `/egovframework/sqlmap/com/utl/sys/trm/EgovTrsmrcvMntrng_SQL_*.xml` | 송수신모니터링 QUERY XML | + +### 클래스 다이어그램 + +![송수신모니터링 클래스 다이어그램](images/send-receive-monitoring-class.png) + +### 관련테이블 + +| 테이블명 | 테이블명(영문) | 비고 | +| --- | --- | --- | +| 송수신모니터링 | `COMTNTRSMRCVMNTRNG` | 송수신모니터링정보를 관리하기 위한 속성정보를 정의하고 관리한다. | +| 송수신모니터링로그정보 | `COMTHTRSMRCVMNTRNGLOGINFO` | 송수신모니터링로그정보를 관리하기 위한 속성정보를 정의하고 관리한다. | + +### ID Generation + +ID Generation Service를 활용하기 위해서 Sequence 저장테이블인 `COMTECOPSEQ`에 `TR_MNTRNG_LOG_ID` 항목을 추가한다. + +```sql +INSERT INTO COMTECOPSEQ VALUES('TR_MNTRNG_LOG_ID', '0'); +``` + +### 스케줄러 등록 + +송수신모니터링 스케줄러를 등록하기 위해서 `context-scheduling.xml` 파일에 다음과 같이 등록한다. + +```xml + + + + + + + + + + + + + +``` + +- `startDelay`는 서버 시작 후 몇 초 뒤에 시작할지를 설정한다. (ms 단위: 현재 1분) +- `repeatInterval`은 몇 초에 한 번씩 실행될지를 설정한다. (ms 단위: 현재 10분) + +```xml + + + + + + + + +``` + +## 관련화면 및 수행메뉴얼 + +### 송수신모니터링 목록조회 + +| Action | URL | Controller method | QueryID | +| --- | --- | --- | --- | +| 조회 | `/utl/sys/trm/selectTrsmrcvMntrngList.do` | `selectTrsmrcvMntrngList` | `TrsmrcvMntrngDAO.selectTrsmrcvMntrngList`
`TrsmrcvMntrngDAO.selectTrsmrcvMntrngListCnt` | + +송수신모니터링 목록은 페이지당 10건씩 조회되며 페이징은 10페이지씩 이루어진다. 검색조건은 연계명, 관리자명에 대해서 수행된다. + +![송수신모니터링 목록조회](images/send-receive-monitoring-list.png) + +- **조회**: 기 등록된 송수신모니터링의 목록을 조회한다. +- **등록**: 신규 송수신모니터링을 등록하기 위해서는 상단의 등록 버튼을 통해서 **송수신모니터링 등록** 화면으로 이동한다. + +### 송수신모니터링 등록 + +| Action | URL | Controller method | QueryID | +| --- | --- | --- | --- | +| 등록 | `/utl/sys/trm/addTrsmrcvMntrng.do` | `insertTrsmrcvMntrng` | `TrsmrcvMntrngDAO.insertTrsmrcvMntrng` | + +송수신모니터링의 속성정보를 입력한 뒤 등록한다. + +![송수신모니터링 등록](images/send-receive-monitoring-create.png) + +- **저장**: 신규 송수신모니터링을 등록하기 위해서는 송수신모니터링 속성을 입력한 뒤 상단의 **저장 버튼**을 통해서 송수신모니터링을 등록한다. +- **목록**: 송수신모니터링 목록조회 화면으로 이동한다. + +### 송수신모니터링 수정 + +| Action | URL | Controller method | QueryID | +| --- | --- | --- | --- | +| 수정 | `/utl/sys/trm/updateTrsmrcvMntrng.do` | `updateTrsmrcvMntrng` | `TrsmrcvMntrngDAO.updateTrsmrcvMntrng` | + +송수신모니터링의 속성정보를 변경한 후 저장한다. + +![송수신모니터링 수정](images/send-receive-monitoring-update.png) + +- **저장**: 기 등록된 송수신모니터링 속성을 수정한 뒤 상단의 **저장 버튼**을 통해서 송수신모니터링정보를 수정한다. +- **목록**: 송수신모니터링 목록조회 화면으로 이동한다. + +### 송수신모니터링 상세조회 + +| Action | URL | Controller method | QueryID | +| --- | --- | --- | --- | +| 상세조회 | `/utl/sys/trm/getTrsmrcvMntrng.do` | `selectTrsmrcvMntrng` | `TrsmrcvMntrngDAO.selectTrsmrcvMntrng` | +| 삭제 | `/utl/sys/trm/deleteTrsmrcvMntrng.do` | `deleteTrsmrcvMntrng` | `TrsmrcvMntrngDAO.deleteTrsmrcvMntrng` | + +송수신모니터링의 속성정보를 조회한다. + +![송수신모니터링 상세조회](images/send-receive-monitoring-detail.png) + +- **수정**: 기 등록된 송수신모니터링 속성을 수정한 뒤 상단의 **수정 버튼**을 통해서 송수신모니터링수정화면으로 이동한다. +- **삭제**: 기 등록된 송수신모니터링정보를 삭제한다. +- **목록**: 송수신모니터링 목록조회 화면으로 이동한다. + +### 송수신모니터링로그 목록조회 + +| Action | URL | Controller method | QueryID | +| --- | --- | --- | --- | +| 조회 | `/utl/sys/trm/selectTrsmrcvMntrngLogList.do` | `selectTrsmrcvMntrngLogList` | `TrsmrcvMntrngDAO.selectTrsmrcvMntrngLogList`
`TrsmrcvMntrngDAO.selectTrsmrcvMntrngLogListCnt` | + +송수신모니터링로그 목록은 페이지당 10건씩 조회되며 페이징은 10페이지씩 이루어진다. 검색조건은 연계명, 관리자명, 모니터링시각에 대해서 수행된다. + +![송수신모니터링로그 목록조회](images/send-receive-monitoring-log-list.png) + +- **조회**: 기 등록된 송수신모니터링로그의 목록을 조회한다. + +### 송수신모니터링로그 상세조회 + +| Action | URL | Controller method | QueryID | +| --- | --- | --- | --- | +| 상세조회 | `/utl/sys/trm/getTrsmrcvMntrngLog.do` | `selectTrsmrcvMntrngLog` | `TrsmrcvMntrngDAO.selectTrsmrcvMntrngLog` | + +송수신모니터링로그의 속성정보를 조회한다. + +![송수신모니터링로그 상세조회](images/send-receive-monitoring-log-detail.png) + +- **목록**: 송수신모니터링로그 목록조회 화면으로 이동한다. diff --git a/common-component/elementary-technology/server-resource-monitoring.md b/common-component/elementary-technology/server-resource-monitoring.md index 54950558..c32fc682 100644 --- a/common-component/elementary-technology/server-resource-monitoring.md +++ b/common-component/elementary-technology/server-resource-monitoring.md @@ -9,3 +9,64 @@ menu: weight: 49 parent: "system" --- + + +# 서버자원모니터링 + + +## 개요 + +서버자원모니터링은 시스템의 서버 자원(CPU, Memory 등) 상태를 모니터링하고 그 결과를 로그로 등록하여 관리하는 공통컴포넌트이다. +스케줄러를 통해 주기적으로 서버의 자원 상태를 확인하고, 이를 시스템에 기록함으로써 관리자가 서버의 부하 상태를 파악하도록 돕는다. + +## 주요 개념 + +### 모니터링 결과 등록 + +- 스케줄러(Scheduler)를 사용하여 정해진 주기마다 서버자원모니터링 결과(로그) 정보를 자동으로 시스템에 등록한다. +- 배치 스케줄링 설정을 위해 `context-scheduling-utl-sys-srm.xml` 파일을 사용한다. + +### 모니터링 목록 조회 + +- 등록된 서버 자원의 모니터링 결과 로그를 목록 형태로 조회한다. +- 기간, 서버명 등 검색 조건을 활용하여 원하는 모니터링 기록을 조회할 수 있다. + +### 모니터링 상세 조회 + +- 모니터링 결과 목록에서 특정 건을 선택하여 상세한 서버 자원 상태 정보를 확인한다. + +## 설명 + +### 컴포넌트 구조 + +해당 기능은 `egovframework.com.utl.sys.srm` 패키지 하위에 구성되어 있으며, 서버 H/W 정보 관리와 연동되어 동작한다. +표준프레임워크 공통컴포넌트 버전에 따라 `egovframework-serverresrcemntrng-[버전].zip` 형태의 파일로 배포된다. + +### 스케줄러 설정 + +서버자원모니터링을 주기적으로 실행하려면 스프링 스케줄링 설정 파일(`context-scheduling-utl-sys-srm.xml`)에 정의가 필요하다. + +```xml + + + + + + + + + + + + + +``` + +### 모니터링 Agent 연동 + +대상 서버의 자원을 정확히 수집하기 위해 JMX(Java Management Extensions) MBean 기반의 모니터링 Agent 예제가 +연동될 수 있다. 시스템은 지정된 Agent와 통신하여 실시간 메모리나 CPU 사용량 등을 수집한 뒤 로그로 기록한다. + +## 참고자료 + +- [전자정부 표준프레임워크 공통컴포넌트 가이드](https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v4.1)