Merge branch 'jenkins_with_weblogic' into devs/sso

# Conflicts:
#	readme.md
#	src/main/java/com/eactive/ext/kjb/util/KjbPropertyInjector.java
This commit is contained in:
Rinjae
2026-01-08 17:47:26 +09:00
302 changed files with 85257 additions and 897 deletions
+31
View File
@@ -0,0 +1,31 @@
CREATE TABLE EMSADM.API_HISTORY
(
API_ID VARCHAR2(30),
SEQ NUMBER(22),
SAVEDDATA CLOB,
USERID VARCHAR2(20),
SAVEDDT VARCHAR2(14)
)
LOB (SAVEDDATA) STORE AS SECUREFILE (TABLESPACE TS_AGW_D01)
TABLESPACE TS_EMS_D01;
COMMENT ON TABLE EMSADM.API_HISTORY IS 'API 변경이력 테이블';
COMMENT ON COLUMN EMSADM.API_HISTORY.API_ID IS 'API ID(TSEAIHE01.EAISVCNAME)';
COMMENT ON COLUMN EMSADM.API_HISTORY.SEQ IS 'Sequence 값';
COMMENT ON COLUMN EMSADM.API_HISTORY.SAVEDDATA IS '변경저장 정보';
COMMENT ON COLUMN EMSADM.API_HISTORY.USERID IS '사용자ID';
COMMENT ON COLUMN EMSADM.API_HISTORY.SAVEDDT IS '저장일시';
CREATE UNIQUE INDEX EMSADM.PK_API_HISTORY ON EMSADM.API_HISTORY
(API_ID, SEQ)
TABLESPACE TS_EMS_I01;
ALTER TABLE EMSADM.API_HISTORY ADD (
CONSTRAINT PK_API_HISTORY
PRIMARY KEY
(API_ID, SEQ)
USING INDEX EMSADM.PK_API_HISTORY
ENABLE VALIDATE);
GRANT DELETE, INSERT, SELECT, UPDATE ON EMSADM.API_HISTORY TO RL_EMS_ALL;
GRANT SELECT ON EMSADM.API_HISTORY TO RL_EMS_SEL;
+5
View File
@@ -0,0 +1,5 @@
# ObpGwMetricHourJob
- Job명 : ObpGwMetricHourJob
- 설명 : GW 시간당 거래 지표 - OBP 과금기초데이터
- com.eactive.eai.rms.onl.common.service.ObpGwMetricHourJob
- aggregation.hour.range : 집계 범위(최대 24로 제한)
+64
View File
@@ -0,0 +1,64 @@
- url
- 요청 clientId
- 거래정보
- 기존 샘플
```
{
"clientId": "8cd49ec6bdf82502e053030011ac7064",
"header": {
"x-request-id": "22617829,22617831,22617833,22617835",
"traceId": "8d41a04141794275abc3691b525cf2a9",
"content-length": "75194",
"x-forwarded-for": "117.52.3.143",
"x-user-no": "29024601",
"accept": "application/json, application/cbor, application/*+json",
"x-partner-id": "KWANGJU_BANK",
"via": "1.1 localhost:20443",
"authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkODBiMDJmZDVmYmM0MjNhOWYyZTk5YzY1MzgwODY5YyIsInNpbXBsZXEiOiJkYjJmODVmNTQ4ZmY3Njk3MmMwZTA2YjBiMWUwNDBmYWIyNjczNTI2ODI0ZjE1M2RiODAzNDQ4MzRhMDIzNzk3IiwidHJhY2VfaWQiOiJiMGU3MjNkOTY2NTM0N2QxYmFiZmYzZTIwYzZiMjIxYSIsImdyYW50X3R5cGUiOiJjbGllbnRfY3JlZGVudGlhbHMiLCJyZXNvdXJjZSI6IjhjZDViYTczMzgzOTJkNTdlMDUzMDMwMDExYWM4YmUxIiwic2NvcGUiOiJvb2IiLCJzaW1wbGUiOiIxZjNmODYwY2U4ODkxNTVkNDAxYWZjNmE5YTIxZjQ3OTYwNTczNzVhZjI3NzdkY2Y2YTMyZjQ3ZTAxOTc0ZGFiYWY5MTM0ODEzOGFkMTBjMDg3N2FkYTRmZDhhZmVhMmZkMDIzMjVkYTIzYTBkZThlNjMyODRjYzBhMjNjY2VlZjU0NDAyZjdhYzU2NmE5NmM0MmFjZDg4YjI0ZmE2NWQ2NWRiMzcwZDEyMTg2ZjY5ZDkzNmNhYjM0MTcyZDk1NzdkMzNlNDk2MTYxMzczMTY0YjJmMTdjMTk0YWRkZjYyMWIwZmJjNDViNWMzNjUyNzU5MTY2NWQ2NDg1NGE0OWUyYWNmNzM4NDdmZDVkYWZkNDY1Zjg3ZDU5ZTU1N2ZiNWNlN2Y3Njk1NGU2YTg4YjE1ZWFhN2JlNDhmODk5NmVmN2QxYmRjMDg1MjMwOGM5NDc1MzdmMDc1Y2JhZTBmYTM5OTBhZmYzMTY0ZGZlOGVmYTg3YmFlZDgyYjQyYjcyMDA3ZTg4YTM3NmU5MjUyMzZiMGIwZjE5MzM2MDNlN2ExMzNkMzI4YzBkM2JhNWY0OTExNjMyYWFlZmRkZjI5OTk4N2FmMjY3MjIyZTM2ZWI5ZmNlMzg0OWIyODNmN2Q3Yzc4NTQ0MjRlZWE2YTBmYzQ0ZWFmOTNiNzY1ZGQ2YWE5ZWQzNGFlOWEyNTU5OWFmZDM1NTkwOWQ3YjViNDUxYjM4NTc4OTdiMTM2ZjQyNmQ4ODkwZTljZWFiZTQ3NWRjYTEiLCJleHAiOjE3NjU5NjEwMDksInRva2VuX3R5cGUiOiJCZWFyZXIiLCJleHBpcmVzX2luIjozNjAwfQ.G-KC8DPeBBM40NoD7yQs6Y552PAExlz-V_DhehmqMuc",
"x-loan-token": "HOkND9Wb2PGjcV/h1pdpeMyVia8",
"x-forwarded-server": "localhost",
"x-forwarded-host": "apit.kjbank.com:20443",
"key-event-id": "BSST5OEP7G",
"host": "192.168.246.16:28184",
"content-type": "application/json;charset=UTF-8",
"connection": "Keep-Alive",
"accept-encoding": "gzip,deflate",
"user-agent": "Apache-HttpClient/4.5.13 (Java/17.0.12)"
},
"queryString": "",
"body": {
"data": {
"agreeIdentifyInfo": true,
"joinDate": "20191217",
"corporateNumber": "1248100998",
"agreePersonalCreditInfo": true,
"ci": "CI85100722580288510072258028851007225802885100722580288510072258028851007225802885100722",
"name": "박주희",
"salary": 33000000,
"jobType": "01",
"rrn": "8510072037827"
},
"requestProducts": [
{
"loanReqNo": "T000022617829",
"loanProductId": "01535"
},
{
"loanReqNo": "T000022617831",
"loanProductId": "0531"
},
{
"loanReqNo": "T000022617833",
"loanProductId": "0607"
},
{
"loanReqNo": "T000022617835",
"loanProductId": "0608"
}
]
},
"exdata": "",
"txDate": "20251217"
}
```
+2
View File
@@ -0,0 +1,2 @@
GET http://192.168.240.176:30100/monitoring/test/empty-json/null.json
+79
View File
@@ -0,0 +1,79 @@
# 🚀 Spring Legacy (Non-Boot) 핫스왑 환경 구축 가이드
본 가이드는 폐쇄망(Air-gapped) 환경에서 **JRebel** 대안으로 \*\*JetBrains Runtime(JBR)\*\*과 **HotswapAgent**를 사용하여, 서버 재시작 없이 Java 코드를 즉시 반영하는 방법을 설명합니다.
## 1\. 외부망 준비물 (반입 리스트)
폐쇄망으로 반입해야 할 필수 파일입니다.
| 항목 | 용도 | 다운로드 링크 (예시) |
| :--- | :--- | :--- |
| **JBR (JetBrains Runtime)** | DCEVM이 내장된 JDK | [JBR GitHub Releases](https://github.com/JetBrains/JetBrainsRuntime/releases) |
| **HotswapAgent.jar** | Spring Bean 설정 갱신용 | [HotswapAgent Releases](https://github.com/HotswapProjects/HotswapAgent/releases) |
> **주의**: JBR 버전은 프로젝트의 Java 버전(8, 11, 17 등)과 일치시켜 다운로드하세요.
-----
## 2\. IDE(IntelliJ / Eclipse) 환경 설정
### 2.1 JDK(JBR) 등록
1. 반입한 JBR 압축을 풉니다 (예: `C:\dev\jbr`).
2. **IntelliJ**: `Project Structure` \> `SDKs` \> `Add JDK` 후 해당 경로 지정.
3. **Eclipse**: `Preferences` \> `Java` \> `Installed JREs` \> `Add` 후 해당 경로 지정.
### 2.2 VM 옵션 추가
서버(Tomcat 등)의 실행 구성(Run/Debug Configuration)에 아래의 **VM Options**를 추가합니다.
```bash
# 클래스 구조 변경(필드/메서드 추가) 허용
-XX:+AllowEnhancedClassRedefinition
# Spring Bean 설정 및 리소스 실시간 반영 (경로 주의)
-javaagent:C:\path\to\hotswap-agent.jar
-XX:HotswapAgent=fatjar
-Dhotswap.agent.disablePlugin=org.hotswap.agent.plugin.ibatis.IBatisPlugin,org.hotswap.agent.plugin.mybatis.MyBatisPlugin
```
-----
## 3\. IDE별 세부 최적화 설정
### IntelliJ IDEA
1. **컴파일러 설정**:
- `Settings` \> `Build, Execution, Deployment` \> `Compiler`
- **Build project automatically** 체크
2. **고급 설정**:
- `Settings` \> `Advanced Settings`
- **Allow auto-make to start even if developed application is currently running** 체크
3. **업데이트 정책**:
- Tomcat 설정 내 `On 'Update' action``On frame deactivation`을 **Update classes and resources**로 변경.
### Eclipse
1. **Auto Build**: `Project` \> `Build Automatically` 체크 확인.
2. **Debug 모드**: 반드시 **Debug** 모드로 서버를 실행해야 핫스왑이 작동합니다.
-----
## 4\. 실제 개발 워크플로우
1. **서버 실행**: 반드시 **Debug 모드**로 실행합니다.
2. **코드 수정**: 메서드 로직, 필드 추가, 새로운 `@Service` 생성 등을 수행합니다.
3. **반영 (Compile)**:
- **IntelliJ**: `Ctrl + Shift + F9` (현재 파일 재컴파일) 또는 `Ctrl + F9` (전체 빌드).
- **Eclipse**: 저장(`Ctrl + S`) 시 자동 컴파일 및 반영.
4. **확인**: 서버 재시작 없이 브라우저에서 새로고침하여 결과를 확인합니다.
-----
## 5\. 주요 주의사항 (Troubleshooting)
* **상속 구조 변경**: 클래스의 부모를 바꾸거나 인터페이스를 변경하는 수준의 큰 수정은 서버 재시작이 필요할 수 있습니다.
* **정적 변수(Static)**: `static` 필드의 초기값 변경은 핫스왑 후에도 이전 값이 유지될 수 있습니다.
* **폐쇄망 라이브러리**: `hotswap-agent.jar` 외에 특정 프레임워크(예: MyBatis, Hibernate) 전용 플러그인이 필요한 경우, HotswapAgent 설정 파일(`hotswap-agent.properties`)을 통해 제어할 수 있습니다.