fix: 프로젝트 최상위 각종 설정 파일(gradlew 등)에 잘못 추가되었던 프로퍼티 내용 완전 제거

This commit is contained in:
jade
2026-07-16 14:30:30 +09:00
parent 8e2c44a1b4
commit 64ebed8ad9
13 changed files with 258 additions and 513 deletions

27
.gitattributes vendored
View File

@@ -1,12 +1,12 @@
# 기본값: 모든 í…<C3AD>스트 파ì<C592>¼ CRLF (Windows 개발 환경) # 湲곕낯媛? 紐⑤뱺 ?띿뒪???뚯씪 CRLF (Windows 媛쒕컻 ?섍꼍)
* text=auto eol=crlf * text=auto eol=crlf
# Shell 스í<EFBFBD>¬ë¦½íŠ¸ëŠ” LF ê³ ì • (Linux CI/CD 실행 환경) # Shell ?ㅽ겕由쏀듃??LF 怨좎젙 (Linux CI/CD ?ㅽ뻾 ?섍꼍)
*.sh text eol=lf *.sh text eol=lf
mvnw text eol=lf mvnw text eol=lf
gradlew text eol=lf gradlew text eol=lf
# ë°”ì<EFBFBD>´ë„ˆë¦¬ 파ì<C592>¼ (줄바꿈 변환 제외) # 諛붿씠?덈━ ?뚯씪 (以꾨컮轅?蹂€???쒖쇅)
*.jar binary *.jar binary
*.war binary *.war binary
*.ear binary *.ear binary
@@ -23,24 +23,3 @@ gradlew text eol=lf
*.pdf binary *.pdf binary
*.zip binary *.zip binary
*.tar.gz binary *.tar.gz binary
# --- ½ÅÇѶóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (°³¹ß ȯ°æ) ---
shinhan.integration.envrTypeCd=D
shinhan.integration.eai.url=http://10.176.32.181
shinhan.integration.internalMci.url=http://10.176.32.173
shinhan.integration.bancaMci.url=http://10.176.32.117
shinhan.integration.externalMci.url=http://10.176.32.176
# --- ½ÅÇѶóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (Å×½ºÆ® ȯ°æ) ---
shinhan.integration.envrTypeCd=T
shinhan.integration.eai.url=http://10.174.32.181
shinhan.integration.internalMci.url=http://10.174.32.173
shinhan.integration.bancaMci.url=http://10.174.32.117
shinhan.integration.externalMci.url=http://10.176.32.177
# --- ½ÅÇѶóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (¿î¿µ ȯ°æ) ---
shinhan.integration.envrTypeCd=R
shinhan.integration.eai.url=http://10.172.32.181
shinhan.integration.internalMci.url=http://10.172.32.173
shinhan.integration.bancaMci.url=http://10.172.32.117
shinhan.integration.externalMci.url=http://10.172.32.177

27
.gitignore vendored
View File

@@ -1,4 +1,4 @@
# ===== 빌드 결과물 ===== # ===== 鍮뚮뱶 寃곌낵臾?=====
target/ target/
!**/src/main/**/target/ !**/src/main/**/target/
!**/src/test/**/target/ !**/src/test/**/target/
@@ -9,7 +9,7 @@ target/
*.ear *.ear
*.nar *.nar
# ===== 로그 ===== # ===== 濡쒓렇 =====
*.log *.log
logs/ logs/
spring-shell.log spring-shell.log
@@ -61,27 +61,6 @@ build/
Thumbs.db Thumbs.db
ehthumbs.db ehthumbs.db
# ===== 환경설정 (민ê°<C3AA>ì •ë³´ 분리 시) ===== # ===== ?섍꼍?ㅼ젙 (誘쇨컧?뺣낫 遺꾨━ ?? =====
# application-local.properties # application-local.properties
# application-secret.properties # application-secret.properties
# --- ½ÅÇѶóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (°³¹ß ȯ°æ) ---
shinhan.integration.envrTypeCd=D
shinhan.integration.eai.url=http://10.176.32.181
shinhan.integration.internalMci.url=http://10.176.32.173
shinhan.integration.bancaMci.url=http://10.176.32.117
shinhan.integration.externalMci.url=http://10.176.32.176
# --- ½ÅÇѶóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (Å×½ºÆ® ȯ°æ) ---
shinhan.integration.envrTypeCd=T
shinhan.integration.eai.url=http://10.174.32.181
shinhan.integration.internalMci.url=http://10.174.32.173
shinhan.integration.bancaMci.url=http://10.174.32.117
shinhan.integration.externalMci.url=http://10.176.32.177
# --- ½ÅÇѶóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (¿î¿µ ȯ°æ) ---
shinhan.integration.envrTypeCd=R
shinhan.integration.eai.url=http://10.172.32.181
shinhan.integration.internalMci.url=http://10.172.32.173
shinhan.integration.bancaMci.url=http://10.172.32.117
shinhan.integration.externalMci.url=http://10.172.32.177

View File

@@ -12,14 +12,14 @@ public class AddJavadoc {
"/**\n" + "/**\n" +
" * @package %s\n" + " * @package %s\n" +
" * @className %s\n" + " * @className %s\n" +
" * @description AX HUB 시스템 처리 í<>´ëž˜ìФ\n" + " * @description AX HUB ?쒖뒪??泥섎━ ?대옒??n" +
" * @author 김형ì<EFBFBD>\n" + " * @author 源€?뺤떇\n" +
" * @create 2026.09.01\n" + " * @create 2026.09.01\n" +
" * <pre>\n" + " * <pre>\n" +
" * ---------- 개정ì<EFBFBD>´ë ¥ ----------\n" + " * ---------- 媛쒖젙?대젰 ----------\n" +
" * 수정ì<EFBFBD>¼ 수정ìž<C3AC> 수정내용\n" + " * ?섏젙?? ?섏젙?? ?섏젙?댁슜\n" +
" * ---------- -------- ---------------------------\n" + " * ---------- -------- ---------------------------\n" +
" * 2026.09.01 김형ì<EFBFBD> 최초ìƒ<C3AC>성\n" + " * 2026.09.01 源€?뺤떇 理쒖큹?앹꽦\n" +
" * \n" + " * \n" +
" * </pre>\n" + " * </pre>\n" +
" */"; " */";
@@ -50,7 +50,7 @@ public class AddJavadoc {
List<String> lines = Files.readAllLines(file); List<String> lines = Files.readAllLines(file);
String content = String.join("\n", lines); String content = String.join("\n", lines);
if (content.contains("---------- 개정ì<EFBFBD>´ë ¥ ----------") || content.contains("@className")) { if (content.contains("---------- 媛쒖젙?대젰 ----------") || content.contains("@className")) {
System.out.println("Skipping (already has javadoc): " + file); System.out.println("Skipping (already has javadoc): " + file);
return; return;
} }
@@ -101,24 +101,3 @@ public class AddJavadoc {
System.out.println("Updated: " + file); System.out.println("Updated: " + file);
} }
} }
# --- ½ÅÇÑóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (°³¹ß ȯ°æ) ---
shinhan.integration.envrTypeCd=D
shinhan.integration.eai.url=http://10.176.32.181
shinhan.integration.internalMci.url=http://10.176.32.173
shinhan.integration.bancaMci.url=http://10.176.32.117
shinhan.integration.externalMci.url=http://10.176.32.176
# --- ½ÅÇÑóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (Å×½ºÆ® ȯ°æ) ---
shinhan.integration.envrTypeCd=T
shinhan.integration.eai.url=http://10.174.32.181
shinhan.integration.internalMci.url=http://10.174.32.173
shinhan.integration.bancaMci.url=http://10.174.32.117
shinhan.integration.externalMci.url=http://10.176.32.177
# --- ½ÅÇÑóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (¿î¿µ ȯ°æ) ---
shinhan.integration.envrTypeCd=R
shinhan.integration.eai.url=http://10.172.32.181
shinhan.integration.internalMci.url=http://10.172.32.173
shinhan.integration.bancaMci.url=http://10.172.32.117
shinhan.integration.externalMci.url=http://10.172.32.177

View File

@@ -1,51 +1,30 @@
# 1. 빌드 환경 (JDK 21) # 1. 鍮뚮뱶 ?섍꼍 (JDK 21)
FROM eclipse-temurin:21-jdk-alpine AS builder FROM eclipse-temurin:21-jdk-alpine AS builder
WORKDIR /app WORKDIR /app
# Gradle 래í<EFBFBD>¼ì™€ 소스 복사 # Gradle ?섑띁?€ ?뚯뒪 蹂듭궗
COPY gradlew . COPY gradlew .
COPY gradle gradle COPY gradle gradle
COPY build.gradle settings.gradle ./ COPY build.gradle settings.gradle ./
COPY src src COPY src src
# 권한 부여 ë°<C3AB> 빌드 (테스트 제외) # 沅뚰븳 遺€??諛?鍮뚮뱶 (?뚯뒪???쒖쇅)
RUN chmod +x gradlew RUN chmod +x gradlew
RUN ./gradlew clean build -x test RUN ./gradlew clean build -x test
# 2. 실행 환경 (JRE 21) # 2. ?ㅽ뻾 ?섍꼍 (JRE 21)
FROM eclipse-temurin:21-jre-alpine FROM eclipse-temurin:21-jre-alpine
WORKDIR /app WORKDIR /app
# 타임존 설정 (한국 시간) # ?€?꾩〈 ?ㅼ젙 (?쒓뎅 ?쒓컙)
RUN apk add --no-cache tzdata RUN apk add --no-cache tzdata
ENV TZ=Asia/Seoul ENV TZ=Asia/Seoul
# 빌드ë<EFBFBD>œ JAR 파ì<C592>¼ 복사 # 鍮뚮뱶??JAR ?뚯씪 蹂듭궗
COPY --from=builder /app/build/libs/*.jar app.jar COPY --from=builder /app/build/libs/*.jar app.jar
# 기본 í<>¬íЏ 노출 # 湲곕낯 ?ы듃 ?몄텧
EXPOSE 8081 EXPOSE 8081
# 컨테ì<EFBFBD>´ë„ˆ 실행 시 JAR 실행 # 而⑦뀒?대꼫 ?ㅽ뻾 ??JAR ?ㅽ뻾
ENTRYPOINT ["java", "-jar", "app.jar"] ENTRYPOINT ["java", "-jar", "app.jar"]
# --- ½ÅÇѶóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (°³¹ß ȯ°æ) ---
shinhan.integration.envrTypeCd=D
shinhan.integration.eai.url=http://10.176.32.181
shinhan.integration.internalMci.url=http://10.176.32.173
shinhan.integration.bancaMci.url=http://10.176.32.117
shinhan.integration.externalMci.url=http://10.176.32.176
# --- ½ÅÇѶóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (Å×½ºÆ® ȯ°æ) ---
shinhan.integration.envrTypeCd=T
shinhan.integration.eai.url=http://10.174.32.181
shinhan.integration.internalMci.url=http://10.174.32.173
shinhan.integration.bancaMci.url=http://10.174.32.117
shinhan.integration.externalMci.url=http://10.176.32.177
# --- ½ÅÇѶóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (¿î¿µ ȯ°æ) ---
shinhan.integration.envrTypeCd=R
shinhan.integration.eai.url=http://10.172.32.181
shinhan.integration.internalMci.url=http://10.172.32.173
shinhan.integration.bancaMci.url=http://10.172.32.117
shinhan.integration.externalMci.url=http://10.172.32.177

22
HELP.md
View File

@@ -29,25 +29,3 @@ Due to Maven's design, elements are inherited from the parent POM to the project
While most of the inheritance is fine, it also inherits unwanted elements like `<license>` and `<developers>` from the parent. While most of the inheritance is fine, it also inherits unwanted elements like `<license>` and `<developers>` from the parent.
To prevent this, the project POM contains empty overrides for these elements. To prevent this, the project POM contains empty overrides for these elements.
If you manually switch to a different parent and actually want the inheritance, you need to remove those overrides. If you manually switch to a different parent and actually want the inheritance, you need to remove those overrides.
# --- 신한라이프 EAI/MCI 연계 IP 정보 (개발 환경) ---
shinhan.integration.envrTypeCd=D
shinhan.integration.eai.url=http://10.176.32.181
shinhan.integration.internalMci.url=http://10.176.32.173
shinhan.integration.bancaMci.url=http://10.176.32.117
shinhan.integration.externalMci.url=http://10.176.32.176
# --- 신한라이프 EAI/MCI 연계 IP 정보 (테스트 환경) ---
shinhan.integration.envrTypeCd=T
shinhan.integration.eai.url=http://10.174.32.181
shinhan.integration.internalMci.url=http://10.174.32.173
shinhan.integration.bancaMci.url=http://10.174.32.117
shinhan.integration.externalMci.url=http://10.176.32.177
# --- 신한라이프 EAI/MCI 연계 IP 정보 (운영 환경) ---
shinhan.integration.envrTypeCd=R
shinhan.integration.eai.url=http://10.172.32.181
shinhan.integration.internalMci.url=http://10.172.32.173
shinhan.integration.bancaMci.url=http://10.172.32.117
shinhan.integration.externalMci.url=http://10.172.32.177

View File

@@ -21,7 +21,7 @@ public class McpBridge {
try { try {
HttpRequest req = HttpRequest.newBuilder() HttpRequest req = HttpRequest.newBuilder()
// Spring AI MCP Serverì<EFBFBD>˜ ê³µì<C3AC> ë¨ì<C2A8>¼ 엔드í<C593>¬ì<C2AC>¸íЏ // Spring AI MCP Server??怨듭떇 ?⑥씪 ?붾뱶?ъ씤??
.uri(URI.create("http://localhost:8081/mcp")) .uri(URI.create("http://localhost:8081/mcp"))
.header("Content-Type", "application/json") .header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(line)) .POST(HttpRequest.BodyPublishers.ofString(line))
@@ -31,7 +31,7 @@ public class McpBridge {
System.out.println(response.body()); System.out.println(response.body());
System.out.flush(); System.out.flush();
} catch (Exception e) { } catch (Exception e) {
// MCP 표준 ì—<C3AC>러 í<>¬ë§·ìœ¼ë¡œ 반환 (ìž„ì<E2809E>˜ë¡œ id 추출 제외, 최소한ì<C593>˜ ì—<C3AC>러 ì<>ëµ) // MCP ?쒖? ?먮윭 ?щ㎎?쇰줈 諛섑솚 (?꾩쓽濡?id 異붿텧 ?쒖쇅, 理쒖냼?쒖쓽 ?먮윭 ?묐떟)
System.out.println("{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32603,\"message\":\"" + e.getMessage().replace("\"", "\\\"") + "\"}}"); System.out.println("{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32603,\"message\":\"" + e.getMessage().replace("\"", "\\\"") + "\"}}");
System.out.flush(); System.out.flush();
} }
@@ -41,27 +41,3 @@ public class McpBridge {
} }
} }
} }
# --- ½ÅÇÑóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (°³¹ß ȯ°æ) ---
shinhan.integration.envrTypeCd=D
shinhan.integration.eai.url=http://10.176.32.181
shinhan.integration.internalMci.url=http://10.176.32.173
shinhan.integration.bancaMci.url=http://10.176.32.117
shinhan.integration.externalMci.url=http://10.176.32.176
# --- ½ÅÇÑóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (Å×½ºÆ® ȯ°æ) ---
shinhan.integration.envrTypeCd=T
shinhan.integration.eai.url=http://10.174.32.181
shinhan.integration.internalMci.url=http://10.174.32.173
shinhan.integration.bancaMci.url=http://10.174.32.117
shinhan.integration.externalMci.url=http://10.176.32.177
# --- ½ÅÇÑóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (¿î¿µ ȯ°æ) ---
shinhan.integration.envrTypeCd=R
shinhan.integration.eai.url=http://10.172.32.181
shinhan.integration.internalMci.url=http://10.172.32.173
shinhan.integration.bancaMci.url=http://10.172.32.117
shinhan.integration.externalMci.url=http://10.172.32.177

191
README.md
View File

@@ -1,198 +1,177 @@
# AXHUB Backend # AXHUB Backend
Spring Boot 기반 AXHUB 관리자 백엔드 API 서버 및 MCP(Model Context Protocol) Gateway / Tool 분산 서버 프로젝트입니다. Spring Boot 湲곕컲 AXHUB 愿€由ъ옄 諛깆뿏??API ?쒕쾭 諛?MCP(Model Context Protocol) Gateway / Tool 遺꾩궛 ?쒕쾭 ?꾨줈?앺듃?낅땲??
--- ---
## 아키텍처 개요 (Architecture Overview) ## ?꾪궎?띿쿂 媛쒖슂 (Architecture Overview)
AXHUB Backend는 크게 2개의 주요 애플리케이션 계층으로 분리 운영됩니다: AXHUB Backend???ш쾶 2媛쒖쓽 二쇱슂 ?좏뵆由ъ??댁뀡 怨꾩링?쇰줈 遺꾨━ ?댁쁺?⑸땲??
1. **MCP Gateway (`AxHubGatewayApplication`)**: 내장된 웹 UI(AI 챗봇, 스캐폴더) 제공 및 외부 LLM(Claude, GPT 등) 서버의 MCP 통신을 받아 내부 Tool 서버들로 분배(라우팅)하는 허브 서버 (포트: 8081) 1. **MCP Gateway (`AxHubGatewayApplication`)**: ?댁옣????UI(AI 梨쀫큸, ?ㅼ틦?대뜑) ?쒓났 諛??몃? LLM(Claude, GPT ?? ?쒕쾭??MCP ?듭떊??諛쏆븘 ?대? Tool ?쒕쾭?ㅻ줈 遺꾨같(?쇱슦???섎뒗 ?덈툕 ?쒕쾭 (?ы듃: 8081)
2. **MCP Tool (`AxHubToolApplication`)**: 실제 레거시 시스템(MCI, EAI 등)과 통신하여 비즈니스 로직(결제, 휴가신청 등)을 수행하는 어댑터 서버 (포트: 8082~8085 등 분산 구성 가능) 2. **MCP Tool (`AxHubToolApplication`)**: ?ㅼ젣 ?덇굅???쒖뒪??MCI, EAI ??怨??듭떊?섏뿬 鍮꾩쫰?덉뒪 濡쒖쭅(寃곗젣, ?닿??좎껌 ?????섑뻾?섎뒗 ?대뙌???쒕쾭 (?ы듃: 8082~8085 ??遺꾩궛 援ъ꽦 媛€??
--- ---
## 환경 (Environment) ## ?섍꼍 (Environment)
| 항목 | 버전 | | ??ぉ | 踰꾩쟾 |
|------|------| |------|------|
| Java | 21 | | Java | 21 |
| Spring Boot | 4.0.5 | | Spring Boot | 4.0.5 |
| Build Tool | Gradle | | Build Tool | Gradle |
| 주요 기술 스택 | MyBatis, Lombok, MapStruct, P6Spy | | 二쇱슂 湲곗닠 ?ㅽ깮 | MyBatis, Lombok, MapStruct, P6Spy |
| 데이터베이스 | H2 (in-memory, 로컬 개발용) | | ?곗씠?곕쿋?댁뒪 | H2 (in-memory, 濡쒖뺄 媛쒕컻?? |
| 세션/캐시 저장소 | Redis | | ?몄뀡/罹먯떆 ?€?μ냼 | Redis |
| **장애 격리 / 제어** | **Resilience4j (RateLimiter, CircuitBreaker, Retry)** | | **?μ븷 寃⑸━ / ?쒖뼱** | **Resilience4j (RateLimiter, CircuitBreaker, Retry)** |
| **메시지 큐** | **Kafka (트래픽 폭주 시 대기열 전환용)** | | **硫붿떆吏€ ??* | **Kafka (?몃옒???? ???€湲곗뿴 ?꾪솚??** |
--- ---
## ▶ 실행 방법 (How to Run) ## ???ㅽ뻾 諛⑸쾿 (How to Run)
### 1. Docker Compose를 이용한 전체 실행 (권장) ### 1. Docker Compose瑜??댁슜???꾩껜 ?ㅽ뻾 (沅뚯옣)
마이크로서비스 아키텍처 특성상 여러 개의 Tool Pod이 필요하므로, Docker Compose를 이용한 전체 실행을 권장합니다. 留덉씠?щ줈?쒕퉬???꾪궎?띿쿂 ?뱀꽦???щ윭 媛쒖쓽 Tool Pod???꾩슂?섎?濡? Docker Compose瑜??댁슜???꾩껜 ?ㅽ뻾??沅뚯옣?⑸땲??
```bash ```bash
# 전체 시스템(Gateway + Redis + 모든 Tool Pod) 빌드 및 백그라운드 실행 # ?꾩껜 ?쒖뒪??Gateway + Redis + 紐⑤뱺 Tool Pod) 鍮뚮뱶 諛?諛깃렇?쇱슫???ㅽ뻾
./gradlew build -x test ./gradlew build -x test
docker compose up -d --build docker compose up -d --build
``` ```
- **Gateway (Chat UI & 라우터)**: `http://localhost:8281` - **Gateway (Chat UI & ?쇱슦??**: `http://localhost:8281`
- Gateway가 뜨면 내장된 챗봇 웹 UI(`http://localhost:8281/chat.html`)에 접속하여 바로 테스트할 수 있습니다. - Gateway媛€ ?⑤㈃ ?댁옣??梨쀫큸 ??UI(`http://localhost:8281/chat.html`)???묒냽?섏뿬 諛붾줈 ?뚯뒪?명븷 ???덉뒿?덈떎.
### 2. 로컬 개발 시 개별 실행 (IntelliJ / Gradle) ### 2. 濡쒖뺄 媛쒕컻 ??媛쒕퀎 ?ㅽ뻾 (IntelliJ / Gradle)
개발 중 특정 모듈만 띄워 디버깅해야 할 경우 아래와 같이 실행합니다. 媛쒕컻 以??뱀젙 紐⑤뱢留??꾩썙 ?붾쾭源낇빐????寃쎌슦 ?꾨옒?€ 媛숈씠 ?ㅽ뻾?⑸땲??
- **Gateway 서버 기동:** - **Gateway ?쒕쾭 湲곕룞:**
- `./gradlew :axhub-gateway:bootRun` - `./gradlew :axhub-gateway:bootRun`
- **Tool 서버 기동 (예: other 툴):** - **Tool ?쒕쾭 湲곕룞 (?? other ??:**
- `./gradlew :axhub-tool-other:bootRun` - `./gradlew :axhub-tool-other:bootRun`
- Tool 서버가 기동되면 자동으로 Gateway에 자신을 등록(Auto-Registration)합니다. - Tool ?쒕쾭媛€ 湲곕룞?섎㈃ ?먮룞?쇰줈 Gateway???먯떊???깅줉(Auto-Registration)?⑸땲??
--- ---
## 🤖 AI Agent 연동 아키텍처 (Spring AI & MCP) ## ?쨼 AI Agent ?곕룞 ?꾪궎?띿쿂 (Spring AI & MCP)
본 시스템은 **투트랙(Two-Track) AI 연동 아키텍처**를 제공하여 로컬 개발 환경과 프로덕션 환경 모두를 완벽하게 지원합니다. 蹂??쒖뒪?쒖? **?ы듃??Two-Track) AI ?곕룞 ?꾪궎?띿쿂**瑜??쒓났?섏뿬 濡쒖뺄 媛쒕컻 ?섍꼍怨??꾨줈?뺤뀡 ?섍꼍 紐⑤몢瑜??꾨꼍?섍쾶 吏€?먰빀?덈떎.
### 1. 내장형 웹 챗봇 (Spring AI 기반) - NEW! 🎉 ### 1. ?댁옣????梨쀫큸 (Spring AI 湲곕컲) - NEW! ?럦
가장 빠르고 직관적으로 AI 에이전트를 테스트할 수 있는 내장형 챗봇 화면을 제공합니다. Gateway 서버 자체에 **Spring AI (spring-ai-starter-mcp-server-webmvc)** 가 연동되어 있어 별도의 파이썬 스크립트나 외부 앱 없이도 즉각적인 테스트가 가능합니다. 媛€??鍮좊Ⅴ怨?吏곴??곸쑝濡?AI ?먯씠?꾪듃瑜??뚯뒪?명븷 ???덈뒗 ?댁옣??梨쀫큸 ?붾㈃???쒓났?⑸땲?? Gateway ?쒕쾭 ?먯껜??**Spring AI (spring-ai-starter-mcp-server-webmvc)** 媛€ ?곕룞?섏뼱 ?덉뼱 蹂꾨룄???뚯씠???ㅽ겕由쏀듃???몃? ???놁씠??利됯컖?곸씤 ?뚯뒪?멸? 媛€?ν빀?덈떎.
- **접속 방법**: Gateway(Docker) 기동 후 브라우저에서 `http://localhost:8281/chat.html` 접속 - **?묒냽 諛⑸쾿**: Gateway(Docker) 湲곕룞 ??釉뚮씪?곗??먯꽌 `http://localhost:8281/chat.html` ?묒냽
- **동작 방식**: - **?숈옉 諛⑹떇**:
1. 사용자가 질문을 입력하면 내부 `ChatClient` (Gemini API 등)로 전송 1. ?ъ슜?먭? 吏덈Ц???낅젰?섎㈃ ?대? `ChatClient` (Gemini API ??濡??꾩넚
2. Spring AI가 내부 레지스트리의 Tool 목록을 분석하여 필요한 Tool 탐색 2. Spring AI媛€ ?대? ?덉??ㅽ듃由ъ쓽 Tool 紐⑸줉??遺꾩꽍?섏뿬 ?꾩슂??Tool ?먯깋
3. LLMTool 호출 판단 시, Gateway`ExecuteService`를 거쳐 Tool Pod의 기능을 직접 실행 3. LLM??Tool ?몄텧 ?먮떒 ?? Gateway??`ExecuteService`瑜?嫄곗퀜 Tool Pod??湲곕뒫??吏곸젒 ?ㅽ뻾
4. 결과를 LLM이 다시 해석하여 사용자에게 자연어로 응답 4. 寃곌낵瑜?LLM???ㅼ떆 ?댁꽍?섏뿬 ?ъ슜?먯뿉寃??먯뿰?대줈 ?묐떟
### 2. 프로덕션 클라우드 AI (Google Cloud Agent Builder 등) 연동 ### 2. ?꾨줈?뺤뀡 ?대씪?곕뱶 AI (Google Cloud Agent Builder ?? ?곕룞
실제 라이브 서비스에서 동작하는 클라우드 Agent BuilderREST API 기반의 OpenAPI Spec을 요구합니다. ?ㅼ젣 ?쇱씠釉??쒕퉬?ㅼ뿉???숈옉?섎뒗 ?대씪?곕뱶 Agent Builder??REST API 湲곕컲??OpenAPI Spec???붽뎄?⑸땲??
`axhub-gateway`는 이미 **Agent Builder 규격의 REST API(`/mcp/api/v1/tools/call`)를 네이티브로 제공**하므로, 별도의 브릿지나 어댑터 없이 Endpoint URLSwagger(OpenAPI) 문서만 클라우드 콘솔에 등록하면 즉시 라이브 챗봇/에이전트로 서비스할 수 있습니다. `axhub-gateway`???대? **Agent Builder 洹쒓꺽??REST API(`/mcp/api/v1/tools/call`)瑜??ㅼ씠?곕툕濡??쒓났**?섎?濡? 蹂꾨룄??釉뚮┸吏€???대뙌???놁씠 Endpoint URL怨?Swagger(OpenAPI) 臾몄꽌留??대씪?곕뱶 肄섏넄???깅줉?섎㈃ 利됱떆 ?쇱씠釉?梨쀫큸/?먯씠?꾪듃濡??쒕퉬?ㅽ븷 ???덉뒿?덈떎.
### 3. (Legacy) 로컬 코딩 AI (Cursor, Claude Desktop 등) 연동 ### 3. (Legacy) 濡쒖뺄 肄붾뵫 AI (Cursor, Claude Desktop ?? ?곕룞
표준 MCP 통신(Stdio)을 요구하는 로컬 AI 에이전트를 위해 자바 기반의 브릿지 스크립트(`McpBridge.java`)를 내장하고 있습니다. 브릿지가 Stdio 요청을 HTTP로 변환하여 로컬 환경의 Gateway로 전달합니다. ?쒖? MCP ?듭떊(Stdio)???붽뎄?섎뒗 濡쒖뺄 AI ?먯씠?꾪듃瑜??꾪빐 ?먮컮 湲곕컲??釉뚮┸吏€ ?ㅽ겕由쏀듃(`McpBridge.java`)瑜??댁옣?섍퀬 ?덉뒿?덈떎. 釉뚮┸吏€媛€ Stdio ?붿껌??HTTP濡?蹂€?섑븯??濡쒖뺄 ?섍꼍??Gateway濡??꾨떖?⑸땲??
- **설정 방법**: IDE`mcp_config.json` 설정 파일에 아래와 같이 등록합니다. - **?ㅼ젙 諛⑸쾿**: IDE??`mcp_config.json` ?ㅼ젙 ?뚯씪???꾨옒?€ 媛숈씠 ?깅줉?⑸땲??
```json ```json
"mcpServers": { "mcpServers": {
"axhub-gateway": { "axhub-gateway": {
"command": "java", "command": "java",
"args": ["C:/절대경로/axhub-backend-main/McpBridge.java"] "args": ["C:/?덈?寃쎈줈/axhub-backend-main/McpBridge.java"]
} }
} }
``` ```
--- ---
## 비공개 Tool 관리 및 Fallback 연동 (Visibility & Routing) ## 鍮꾧났媛?Tool 愿€由?諛?Fallback ?곕룞 (Visibility & Routing)
저희 시스템은 MSA 보안 및 아키텍처 원칙에 따라 Tool의 **레지스트리 등록 여부(라우팅)**와 **API 노출 여부(가시성)**를 완벽히 분리하여 관리합니다. ?€???쒖뒪?쒖? MSA 蹂댁븞 諛??꾪궎?띿쿂 ?먯튃???곕씪 Tool??**?덉??ㅽ듃由??깅줉 ?щ?(?쇱슦??**?€ **API ?몄텧 ?щ?(媛€?쒖꽦)**瑜??꾨꼍??遺꾨━?섏뿬 愿€由ы빀?덈떎.
1. **`visible = false`**: 1. **`visible = false`**:
레지스트리에 정상적으로 등록되어 게이트웨이가 동적으로 라우팅하지만, 클라이언트에게 제공되는 `/tools/list` API 목록에서는 숨겨집니다. ?덉??ㅽ듃由ъ뿉 ?뺤긽?곸쑝濡??깅줉?섏뼱 寃뚯씠?몄썾?닿? ?숈쟻?쇰줈 ?쇱슦?낇븯吏€留? ?대씪?댁뼵?몄뿉寃??쒓났?섎뒗 `/tools/list` API 紐⑸줉?먯꽌???④꺼吏묐땲??
2. **`register = false`**: 2. **`register = false`**:
내부 레지스트리(Redis)에 툴 정보를 등록하지 않습니다 (외부 레지스트리를 독자적으로 사용할 경우 등). ?대? ?덉??ㅽ듃由?Redis)?????뺣낫瑜??깅줉?섏? ?딆뒿?덈떎 (?몃? ?덉??ㅽ듃由щ? ?낆옄?곸쑝濡??ъ슜??寃쎌슦 ??.
이 경우 게이트웨이는 `application.properties``mcp.gateway.fallback.routes` 설정을 참조하여 **Fallback 정적 라우팅**을 수행하므로 연동이 100% 보장됩니다. ??寃쎌슦 寃뚯씠?몄썾?대뒗 `application.properties`??`mcp.gateway.fallback.routes` ?ㅼ젙??李몄“?섏뿬 **Fallback ?뺤쟻 ?쇱슦??*???섑뻾?섎?濡??곕룞??100% 蹂댁옣?⑸땲??
```java ```java
@McpFunction( @McpFunction(
name = "secret_tool", name = "secret_tool",
visible = false, // 목록 숨김 여부 (기본값: true) visible = false, // 紐⑸줉 ?④? ?щ? (湲곕낯媛? true)
register = false // 내부 Redis 등록 여부 (기본값: true) register = false // ?대? Redis ?깅줉 ?щ? (湲곕낯媛? true)
) )
``` ```
--- ---
## 🛡️ 시스템 안정성 및 네트워크 제어 (Resilience & Network) ## ?썳截??쒖뒪???덉젙??諛??ㅽ듃?뚰겕 ?쒖뼱 (Resilience & Network)
MSA 및 외부 시스템(MCI) 연동 환경의 안정성을 위해 완벽한 3-Tier 방어 체계를 구축했습니다. MSA 諛??몃? ?쒖뒪??MCI) ?곕룞 ?섍꼍???덉젙?깆쓣 ?꾪빐 ?꾨꼍??3-Tier 諛⑹뼱 泥닿퀎瑜?援ъ텞?덉뒿?덈떎.
1. **Gateway 라우팅 방어 (Timeout & Fallback):** 1. **Gateway ?쇱슦??諛⑹뼱 (Timeout & Fallback):**
- MCP 라우터(`McpRouterController`) 단에 1초 타임아웃을 강제 적용하여 특정 Tool Pod의 응답 지연이 전체 시스템 장애로 이어지는 것을 방지하고 신속하게 정적 Fallback 라우팅으로 전환합니다. - MCP ?쇱슦??`McpRouterController`) ?⑥뿉 1珥??€?꾩븘?껋쓣 媛뺤젣 ?곸슜?섏뿬 ?뱀젙 Tool Pod???묐떟 吏€?곗씠 ?꾩껜 ?쒖뒪???μ븷濡??댁뼱吏€??寃껋쓣 諛⑹??섍퀬 ?좎냽?섍쾶 ?뺤쟻 Fallback ?쇱슦?낆쑝濡??꾪솚?⑸땲??
2. **MCI 네트워크 안정화 (HTTP/1.1 Downgrade):** 2. **MCI ?ㅽ듃?뚰겕 ?덉젙??(HTTP/1.1 Downgrade):**
- 기존 HTTP/2 사용 시 레거시 시스템 연동 중 간헐적으로 발생하던 `RST_STREAM` 오류를 원천 차단하기 위해, MCI 전용 `HttpEimsSender`에는 고도로 최적화된 **HTTP/1.1 전용 커넥션 풀(Factory)**이 고정 적용되어 네트워크 단절을 방지합니다. - 湲곗〈 HTTP/2 ?ъ슜 ???덇굅???쒖뒪???곕룞 以?媛꾪뿉?곸쑝濡?諛쒖깮?섎뜕 `RST_STREAM` ?ㅻ쪟瑜??먯쿇 李⑤떒?섍린 ?꾪빐, MCI ?꾩슜 `HttpEimsSender`?먮뒗 怨좊룄濡?理쒖쟻?붾맂 **HTTP/1.1 ?꾩슜 而ㅻ꽖???€(Factory)**??怨좎젙 ?곸슜?섏뼱 ?ㅽ듃?뚰겕 ?⑥젅??諛⑹??⑸땲??
3. **Resilience4j 기반 트래픽 제어:** 3. **Resilience4j 湲곕컲 ?몃옒???쒖뼱:**
- **Gateway 계층 (동적 방어):** Tool 등록 시 제출된 SLA 메타데이터를 기반으로 동적 CircuitBreaker RateLimiter를 가동하며, 한계치 초과 시 Kafka 큐로 비동기 전환합니다. - **Gateway 怨꾩링 (?숈쟻 諛⑹뼱):** Tool ?깅줉 ???쒖텧??SLA 硫뷀??곗씠?곕? 湲곕컲?쇰줈 ?숈쟻 CircuitBreaker 諛?RateLimiter瑜?媛€?숉븯硫? ?쒓퀎移?珥덇낵 ??Kafka ?먮줈 鍮꾨룞湲??꾪솚?⑸땲??
- **Tool 계층 (정적 방어):** 레거시 커넥터 내부에 `@CircuitBreaker`, `@RateLimiter` 어노테이션 기반의 장애 전파 차단 로직이 2차적으로 가동됩니다. - **Tool 怨꾩링 (?뺤쟻 諛⑹뼱):** ?덇굅??而ㅻ꽖???대???`@CircuitBreaker`, `@RateLimiter` ?대끂?뚯씠??湲곕컲???μ븷 ?꾪뙆 李⑤떒 濡쒖쭅??2李⑥쟻?쇰줈 媛€?숇맗?덈떎.
--- ---
## 모듈(Pod) Tool 코드 자동 생성 (Scaffolders) ## 紐⑤뱢(Pod) 諛?Tool 肄붾뱶 ?먮룞 ?앹꽦 (Scaffolders)
새로운 도메인의 기능을 추가할 때 발생하는 반복적인 설정(보일러플레이트, 설정 파일 복사 등)을 1초 만에 자동화하기 위해 **AXHUB Developer Portal (Web UI)** **CLI 스캐폴더 2종**을 제공합니다. ?덈줈???꾨찓?몄쓽 湲곕뒫??異붽?????諛쒖깮?섎뒗 諛섎났?곸씤 ?ㅼ젙(蹂댁씪?ы뵆?덉씠?? ?ㅼ젙 ?뚯씪 蹂듭궗 ????1珥?留뚯뿉 ?먮룞?뷀븯湲??꾪빐 **AXHUB Developer Portal (Web UI)** 諛?**CLI ?ㅼ틦?대뜑 2醫?*???쒓났?⑸땲??
### 1. AXHUB Developer Portal (Web UI) - 가장 추천하는 방식! ### 1. AXHUB Developer Portal (Web UI) - 媛€??異붿쿇?섎뒗 諛⑹떇!
이제 더 이상 터미널에서 명령어를 칠 필요가 없습니다. Gateway 모듈에 내장된 웹 화면에서 빈칸만 채우면 코드가 마법처럼 찍혀 나옵니다. ?댁젣 ???댁긽 ?곕??먯뿉??紐낅졊?대? 移??꾩슂媛€ ?놁뒿?덈떎. Gateway 紐⑤뱢???댁옣?????붾㈃?먯꽌 鍮덉뭏留?梨꾩슦硫?肄붾뱶媛€ 留덈쾿泥섎읆 李랁? ?섏샃?덈떎.
1. **접속 방법**: Gateway 서버 기동 후 브라우저에서 `http://localhost:8081/admin/scaffold.html` 접속 1. **?묒냽 諛⑸쾿**: Gateway ?쒕쾭 湲곕룞 ??釉뚮씪?곗??먯꽌 `http://localhost:8081/admin/scaffold.html` ?묒냽
2. **Pod (모듈) 생성 탭**: 모듈명(예: hr)과 포트만 입력하면 독립적인 Spring Boot 모듈이 디렉토리부터 빌드 스크립트까지 완벽히 생성됩니다. 2. **Pod (紐⑤뱢) ?앹꽦 ??*: 紐⑤뱢紐??? hr)怨??ы듃留??낅젰?섎㈃ ?낅┰?곸씤 Spring Boot 紐⑤뱢???붾젆?좊━遺€??鍮뚮뱶 ?ㅽ겕由쏀듃源뚯? ?꾨꼍???앹꽦?⑸땲??
3. **Tool (기능) 생성 탭**: 생성된 모듈에 새로운 툴(서비스/DTO) 코드를 자동으로 주입합니다. 3. **Tool (湲곕뒫) ?앹꽦 ??*: ?앹꽦??紐⑤뱢???덈줈?????쒕퉬??DTO) 肄붾뱶瑜??먮룞?쇰줈 二쇱엯?⑸땲??
### 2. CLI 스캐폴더 (기존 터미널 방식) ### 2. CLI ?ㅼ틦?대뜑 (湲곗〈 ?곕???諛⑹떇)
웹 화면을 사용할 수 없는 환경이거나 터미널이 익숙한 경우, 아래 명령어를 통해 CLI 마법사를 사용할 수 있습니다. ???붾㈃???ъ슜?????녿뒗 ?섍꼍?닿굅???곕??먯씠 ?듭닕??寃쎌슦, ?꾨옒 紐낅졊?대? ?듯빐 CLI 留덈쾿?щ? ?ъ슜?????덉뒿?덈떎.
### 1⃣ 새로운 Pod(모듈) 전체를 생성할 때: `PodScaffolder` ### 1???덈줈??Pod(紐⑤뱢) ?꾩껜瑜??앹꽦???? `PodScaffolder`
새로운 도메인(예: 결제, HR)을 위한 완전히 독립적인 Spring Boot 모듈을 생성합니다. 폴더 구조, 빌드 스크립트, 각종 프로퍼티 및 도커 설정까지 완벽하게 세팅됩니다. ?덈줈???꾨찓???? 寃곗젣, HR)???꾪븳 ?꾩쟾???낅┰?곸씤 Spring Boot 紐⑤뱢???앹꽦?⑸땲?? ?대뜑 援ъ“, 鍮뚮뱶 ?ㅽ겕由쏀듃, 媛곸쥌 ?꾨줈?쇳떚 諛??꾩빱 ?ㅼ젙源뚯? ?꾨꼍?섍쾶 ?명똿?⑸땲??
```bash ```bash
# 사용법: javac로 컴파일 후 실행 # ?ъ슜踰? javac濡?而댄뙆?????ㅽ뻾
javac -encoding UTF-8 axhub-common/src/main/java/io/shinhanlife/axhub/common/util/PodScaffolder.java javac -encoding UTF-8 axhub-common/src/main/java/io/shinhanlife/axhub/common/util/PodScaffolder.java
java -cp axhub-common/src/main/java io.shinhanlife.axhub.common.util.PodScaffolder [모듈명] [포트번호] java -cp axhub-common/src/main/java io.shinhanlife.axhub.common.util.PodScaffolder [紐⑤뱢紐? [?ы듃踰덊샇]
# 실행 예시 (axhub-tool-hr 모듈을 8086 포트로 생성) # ?ㅽ뻾 ?덉떆 (axhub-tool-hr 紐⑤뱢??8086 ?ы듃濡??앹꽦)
java -cp axhub-common/src/main/java io.shinhanlife.axhub.common.util.PodScaffolder hr 8086 java -cp axhub-common/src/main/java io.shinhanlife.axhub.common.util.PodScaffolder hr 8086
``` ```
### 2⃣ 생성된 모듈에 새로운 툴(Function)을 추가할 때: `ToolScaffolder` ### 2???앹꽦??紐⑤뱢???덈줈????Function)??異붽????? `ToolScaffolder`
어노테이션(`@McpTool`, `@McpFunction`)이 완벽히 달린 Service와 입출력 DTO 코드를 지정된 모듈 패키지 룰에 맞춰 자동 생성합니다. ?대끂?뚯씠??`@McpTool`, `@McpFunction`)???꾨꼍???щ┛ Service?€ ?낆텧??DTO 肄붾뱶瑜?吏€?뺣맂 紐⑤뱢 ?⑦궎吏€ 猷곗뿉 留욎떠 ?먮룞 ?앹꽦?⑸땲??
```bash ```bash
# 사용법: javac로 컴파일 후 실행 # ?ъ슜踰? javac濡?而댄뙆?????ㅽ뻾
javac -encoding UTF-8 axhub-common/src/main/java/io/shinhanlife/axhub/common/util/ToolScaffolder.java javac -encoding UTF-8 axhub-common/src/main/java/io/shinhanlife/axhub/common/util/ToolScaffolder.java
java -cp axhub-common/src/main/java io.shinhanlife.axhub.common.util.ToolScaffolder [Tool이름] [인터페이스ID] "[기능설명]" "[그룹명]" "[통신방식]" "[모듈명]" java -cp axhub-common/src/main/java io.shinhanlife.axhub.common.util.ToolScaffolder [Tool?대쫫] [?명꽣?섏씠?짪D] "[湲곕뒫?ㅻ챸]" "[洹몃9紐?" "[?듭떊諛⑹떇]" "[紐⑤뱢紐?"
# 실행 예시 (payment 모듈에 결제 승인 기능 추가) # ?ㅽ뻾 ?덉떆 (payment 紐⑤뱢??寃곗젣 ?뱀씤 湲곕뒫 異붽?)
java -cp axhub-common/src/main/java io.shinhanlife.axhub.common.util.ToolScaffolder PaymentApproval PAY_001 "결제 승인 처리 기능" "COMMON" "HTTP" "axhub-tool-payment" java -cp axhub-common/src/main/java io.shinhanlife.axhub.common.util.ToolScaffolder PaymentApproval PAY_001 "寃곗젣 ?뱀씤 泥섎━ 湲곕뒫" "COMMON" "HTTP" "axhub-tool-payment"
``` ```
--- ---
## 패키지 구조 (Package Structure) ## ?⑦궎吏€ 援ъ“ (Package Structure)
```text ```text
axhub-backend-main (Root) axhub-backend-main (Root)
├── axhub-gateway # MCP 라우팅 허브 서버 (외부 LLM과 통신 및 Tool 분배) ?쒋??€ axhub-gateway # MCP ?쇱슦???덈툕 ?쒕쾭 (?몃? LLM怨??듭떊 諛?Tool 遺꾨같)
├── axhub-common # 공통 모듈 (Security, Session, Config 등) ?쒋??€ axhub-common # 怨듯넻 紐⑤뱢 (Security, Session, Config ??
├── axhub-tool-core # Tool 공통 기능 (AbstractMcpToolService, Annotation, Scaffolder) ?쒋??€ axhub-tool-core # Tool 怨듯넻 湲곕뒫 (AbstractMcpToolService, Annotation, Scaffolder)
├── axhub-tool-email # [Tool] 이메일 발송 특화 어댑터 모듈 ?쒋??€ axhub-tool-email # [Tool] ?대찓??諛쒖넚 ?뱁솕 ?대뙌??紐⑤뱢
├── axhub-tool-sms # [Tool] SMS 발송 특화 어댑터 모듈 ?쒋??€ axhub-tool-sms # [Tool] SMS 諛쒖넚 ?뱁솕 ?대뙌??紐⑤뱢
├── axhub-tool-payment # [Tool] 결제 비즈니스 어댑터 모듈 (Scaffolded) ?쒋??€ axhub-tool-payment # [Tool] 寃곗젣 鍮꾩쫰?덉뒪 ?대뙌??紐⑤뱢 (Scaffolded)
└── axhub-tool-other # [Tool] 기타 비즈니스(청구, 계약, 고객, HR 등) 어댑터 모듈 ?붴??€ axhub-tool-other # [Tool] 湲고? 鍮꾩쫰?덉뒪(泥?뎄, 怨꾩빟, 怨좉컼, HR ?? ?대뙌??紐⑤뱢
``` ```
*(참고: 기존 단일 모듈 프로젝트에서 마이크로서비스 확장을 위해 모듈별로 분리되었으며, 각 Tool 서버는 독립적으로 확장 및 배포할 수 있습니다.)* *(李멸퀬: 湲곗〈 ?⑥씪 紐⑤뱢 ?꾨줈?앺듃?먯꽌 留덉씠?щ줈?쒕퉬???뺤옣???꾪빐 紐⑤뱢蹂꾨줈 遺꾨━?섏뿀?쇰ʼn, 媛?Tool ?쒕쾭???낅┰?곸쑝濡??뺤옣 諛?諛고룷?????덉뒿?덈떎.)*
# --- <20><><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD> EAI/MCI <20><><EFBFBD><EFBFBD> IP <20><><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> ȯ<><C8AF>) ---
shinhan.integration.envrTypeCd=D
shinhan.integration.eai.url=http://10.176.32.181
shinhan.integration.internalMci.url=http://10.176.32.173
shinhan.integration.bancaMci.url=http://10.176.32.117
shinhan.integration.externalMci.url=http://10.176.32.176
# --- <20><><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD> EAI/MCI <20><><EFBFBD><EFBFBD> IP <20><><EFBFBD><EFBFBD> (<28>׽<EFBFBD>Ʈ ȯ<><C8AF>) ---
shinhan.integration.envrTypeCd=T
shinhan.integration.eai.url=http://10.174.32.181
shinhan.integration.internalMci.url=http://10.174.32.173
shinhan.integration.bancaMci.url=http://10.174.32.117
shinhan.integration.externalMci.url=http://10.176.32.177
# --- <20><><EFBFBD>Ѷ<EFBFBD><D1B6><EFBFBD><EFBFBD><EFBFBD> EAI/MCI <20><><EFBFBD><EFBFBD> IP <20><><EFBFBD><EFBFBD> (<28> ȯ<><C8AF>) ---
shinhan.integration.envrTypeCd=R
shinhan.integration.eai.url=http://10.172.32.181
shinhan.integration.internalMci.url=http://10.172.32.173
shinhan.integration.bancaMci.url=http://10.172.32.117
shinhan.integration.externalMci.url=http://10.172.32.177

View File

@@ -121,24 +121,3 @@ services:
- GLOW_COMMUNICATION_EXTMCI_PORT=8080 - GLOW_COMMUNICATION_EXTMCI_PORT=8080
- GLOW_COMMUNICATION_EAI_HOST=http://mci-mock - GLOW_COMMUNICATION_EAI_HOST=http://mci-mock
- GLOW_COMMUNICATION_EAI_PORT=8080 - GLOW_COMMUNICATION_EAI_PORT=8080
# --- 신한라이프 EAI/MCI 연계 IP 정보 (개발 환경) ---
shinhan.integration.envrTypeCd=D
shinhan.integration.eai.url=http://10.176.32.181
shinhan.integration.internalMci.url=http://10.176.32.173
shinhan.integration.bancaMci.url=http://10.176.32.117
shinhan.integration.externalMci.url=http://10.176.32.176
# --- 신한라이프 EAI/MCI 연계 IP 정보 (테스트 환경) ---
shinhan.integration.envrTypeCd=T
shinhan.integration.eai.url=http://10.174.32.181
shinhan.integration.internalMci.url=http://10.174.32.173
shinhan.integration.bancaMci.url=http://10.174.32.117
shinhan.integration.externalMci.url=http://10.176.32.177
# --- 신한라이프 EAI/MCI 연계 IP 정보 (운영 환경) ---
shinhan.integration.envrTypeCd=R
shinhan.integration.eai.url=http://10.172.32.181
shinhan.integration.internalMci.url=http://10.172.32.173
shinhan.integration.bancaMci.url=http://10.172.32.117
shinhan.integration.externalMci.url=http://10.172.32.177

31
gradlew vendored
View File

@@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# #
# Copyright 짤 2015-2021 the original authors. # Copyright 짤 2015-2021 the original authors.
# #
# Licensed under the Apache License, Version 2.0 (the "License"); # Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License. # you may not use this file except in compliance with the License.
@@ -34,10 +34,10 @@
# Busybox and similar reduced shells will NOT work, because this script # Busybox and similar reduced shells will NOT work, because this script
# requires all of these POSIX shell features: # requires all of these POSIX shell features:
# * functions; # * functions;
# * expansions 짬$var쨩, 짬${var}쨩, 짬${var:-default}쨩, 짬${var+SET}쨩, # * expansions 짬$var쨩, 짬${var}쨩, 짬${var:-default}쨩, 짬${var+SET}쨩,
# 짬${var#prefix}쨩, 짬${var%suffix}쨩, and 짬$( cmd )쨩; # 짬${var#prefix}쨩, 짬${var%suffix}쨩, and 짬$( cmd )쨩;
# * compound commands having a testable exit status, especially 짬case쨩; # * compound commands having a testable exit status, especially 짬case쨩;
# * various built-in commands including 짬command쨩, 짬set쨩, and 짬ulimit쨩. # * various built-in commands including 짬command쨩, 짬set쨩, and 짬ulimit쨩.
# #
# Important for patching: # Important for patching:
# #
@@ -249,24 +249,3 @@ eval "set -- $(
)" '"$@"' )" '"$@"'
exec "$JAVACMD" "$@" exec "$JAVACMD" "$@"
# --- 신한라이프 EAI/MCI 연계 IP 정보 (개발 환경) ---
shinhan.integration.envrTypeCd=D
shinhan.integration.eai.url=http://10.176.32.181
shinhan.integration.internalMci.url=http://10.176.32.173
shinhan.integration.bancaMci.url=http://10.176.32.117
shinhan.integration.externalMci.url=http://10.176.32.176
# --- 신한라이프 EAI/MCI 연계 IP 정보 (테스트 환경) ---
shinhan.integration.envrTypeCd=T
shinhan.integration.eai.url=http://10.174.32.181
shinhan.integration.internalMci.url=http://10.174.32.173
shinhan.integration.bancaMci.url=http://10.174.32.117
shinhan.integration.externalMci.url=http://10.176.32.177
# --- 신한라이프 EAI/MCI 연계 IP 정보 (운영 환경) ---
shinhan.integration.envrTypeCd=R
shinhan.integration.eai.url=http://10.172.32.181
shinhan.integration.internalMci.url=http://10.172.32.173
shinhan.integration.bancaMci.url=http://10.172.32.117
shinhan.integration.externalMci.url=http://10.172.32.177

21
gradlew.bat vendored
View File

@@ -92,24 +92,3 @@ exit /b %EXIT_CODE%
if "%OS%"=="Windows_NT" endlocal if "%OS%"=="Windows_NT" endlocal
:omega :omega
# --- 신한라이프 EAI/MCI 연계 IP 정보 (개발 환경) ---
shinhan.integration.envrTypeCd=D
shinhan.integration.eai.url=http://10.176.32.181
shinhan.integration.internalMci.url=http://10.176.32.173
shinhan.integration.bancaMci.url=http://10.176.32.117
shinhan.integration.externalMci.url=http://10.176.32.176
# --- 신한라이프 EAI/MCI 연계 IP 정보 (테스트 환경) ---
shinhan.integration.envrTypeCd=T
shinhan.integration.eai.url=http://10.174.32.181
shinhan.integration.internalMci.url=http://10.174.32.173
shinhan.integration.bancaMci.url=http://10.174.32.117
shinhan.integration.externalMci.url=http://10.176.32.177
# --- 신한라이프 EAI/MCI 연계 IP 정보 (운영 환경) ---
shinhan.integration.envrTypeCd=R
shinhan.integration.eai.url=http://10.172.32.181
shinhan.integration.internalMci.url=http://10.172.32.173
shinhan.integration.bancaMci.url=http://10.172.32.117
shinhan.integration.externalMci.url=http://10.172.32.177

312
sql.txt
View File

@@ -1,7 +1,7 @@
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
-- ì <EFBFBD>ìš©ìœìŠ¤í…œëª… : ìš´ì˜<C3AC>계(ORACLE) -- ?곸슜?쒖뒪?쒕챸 : ?댁쁺怨?ORACLE)
-- í…Œì<EFBFBD>´ë¸” : ZT_통합코드 -- ?뚯씠釉?: ZT_?듯빀肄붾뱶
-- í…Œì<EFBFBD>´ë¸”ID : ZT_UNFC_CD -- ?뚯씠釉봊D : ZT_UNFC_CD
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
CREATE TABLE S_NNZ.ZT_UNFC_CD CREATE TABLE S_NNZ.ZT_UNFC_CD
( (
@@ -30,32 +30,32 @@ TABLESPACE TS_ZT_D01;
COMMENT ON TABLE S_NNZ.ZT_UNFC_CD IS 'ZT_통합코드'; COMMENT ON TABLE S_NNZ.ZT_UNFC_CD IS 'ZT_?듯빀肄붾뱶';
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_ID IS '통합코드ID'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_ID IS '?듯빀肄붾뱶ID';
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_NM IS '통합코드명'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_NM IS '?듯빀肄붾뱶紐?;
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_HAN_NM IS '통합코드한글명'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_HAN_NM IS '?듯빀肄붾뱶?쒓?紐?;
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_ENG_NM IS '통합코드ì˜<EFBFBD>문명'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_ENG_NM IS '?듯빀肄붾뱶?곷Ц紐?;
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_DS IS '통합코드설명'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.UNFC_CD_DS IS '?듯빀肄붾뱶?ㅻ챸';
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.META_SYST_CD IS '메타시스템코드'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.META_SYST_CD IS '硫뷀??쒖뒪?쒖퐫??;
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.META_DUTJ_TYPE_CD IS '메타업무유형코드'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.META_DUTJ_TYPE_CD IS '硫뷀??낅Т?좏삎肄붾뱶';
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.PUSE_YN IS '사용여부'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.PUSE_YN IS '?ъ슜?щ?';
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SPPO_UNFC_CD_ID IS 'ìƒ<EFBFBD>위통합코드ID'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SPPO_UNFC_CD_ID IS '?곸쐞?듯빀肄붾뱶ID';
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.DATA_LOAD_DT IS 'ë<EFBFBD>°ì<EFBFBD>´í„°ì <EFBFBD>재ì<EFBFBD>¼ìœ'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.DATA_LOAD_DT IS '?곗씠?곗쟻?ъ씪??;
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_DT IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ì<EFBFBD>¼ìœ'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_DT IS '?쒖뒪?쒕벑濡앹씪??;
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_PRAF_NO IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ì<EFBFBD>¸ì¬ë²ˆí˜¸'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_PRAF_NO IS '?쒖뒪?쒕벑濡앹씤?щ쾲??;
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_OGNZ_NO IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ì¡°ì§<EFBFBD>번호'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_OGNZ_NO IS '?쒖뒪?쒕벑濡앹“吏곷쾲??;
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_SYST_CD IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ìœìŠ¤í…œì½”ë“œ'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_SYST_CD IS '?쒖뒪?쒕벑濡앹떆?ㅽ뀥肄붾뱶';
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_PRGR_ID IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>프로그램ID'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_RGI_PRGR_ID IS '?쒖뒪?쒕벑濡앺봽濡쒓렇?쭵D';
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_DT IS 'ìœìŠ¤í…œë³€ê²½ì<EFBFBD>¼ìœ'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_DT IS '?쒖뒪?쒕?寃쎌씪??;
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_PRAF_NO IS 'ìœìŠ¤í…œë³€ê²½ì<EFBFBD>¸ì¬ë²ˆí˜¸'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_PRAF_NO IS '?쒖뒪?쒕?寃쎌씤?щ쾲??;
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_OGNZ_NO IS 'ìœìŠ¤í…œë³€ê²½ì¡°ì§<EFBFBD>번호'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_OGNZ_NO IS '?쒖뒪?쒕?寃쎌“吏곷쾲??;
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_SYST_CD IS '시스템변경시스템코드'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_SYST_CD IS '?쒖뒪?쒕?寃쎌떆?ㅽ뀥肄붾뱶';
COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_PRGR_ID IS 'ìœìŠ¤í…œë³€ê²½í”„ë¡œê·¸ëž¨ID'; COMMENT ON COLUMN S_NNZ.ZT_UNFC_CD.SYST_CHG_PRGR_ID IS '?쒖뒪?쒕?寃쏀봽濡쒓렇?쭵D';
-- 개별권한 Role -- 媛쒕퀎沅뚰븳 Role
GRANT SELECT ON S_NNZ.ZT_UNFC_CD TO RL_A_EAI_NNZ_SEL; GRANT SELECT ON S_NNZ.ZT_UNFC_CD TO RL_A_EAI_NNZ_SEL;
GRANT INSERT,UPDATE,DELETE ON S_NNZ.ZT_UNFC_CD TO RL_A_EAI_NNZ_IUD; GRANT INSERT,UPDATE,DELETE ON S_NNZ.ZT_UNFC_CD TO RL_A_EAI_NNZ_IUD;
@@ -90,9 +90,9 @@ ALTER TABLE S_NNZ.ZT_UNFC_CD ADD (
USING INDEX S_NNZ.PK_ZT_UNFC_CD); USING INDEX S_NNZ.PK_ZT_UNFC_CD);
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
-- ì <EFBFBD>ìš©ìœìŠ¤í…œëª… : 개발계(ORACLE) -- ?곸슜?쒖뒪?쒕챸 : 媛쒕컻怨?ORACLE)
-- í…Œì<EFBFBD>´ë¸” : ZT_통합코드ìƒ<C3AC>세 -- ?뚯씠釉?: ZT_?듯빀肄붾뱶?곸꽭
-- í…Œì<EFBFBD>´ë¸”ID : ZT_UNFC_CD_DTPT -- ?뚯씠釉봊D : ZT_UNFC_CD_DTPT
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
CREATE TABLE S_TFG.ZT_UNFC_CD_DTPT CREATE TABLE S_TFG.ZT_UNFC_CD_DTPT
( (
@@ -128,35 +128,35 @@ TABLESPACE TS_TFG_D01;
COMMENT ON TABLE S_TFG.ZT_UNFC_CD_DTPT IS 'ZT_통합코드ìƒ<EFBFBD>세'; COMMENT ON TABLE S_TFG.ZT_UNFC_CD_DTPT IS 'ZT_?듯빀肄붾뱶?곸꽭';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.UNFC_CD_ID IS '통합코드ID'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.UNFC_CD_ID IS '?듯빀肄붾뱶ID';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU IS '코드유효값'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU IS '肄붾뱶?좏슚媛?;
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_INQR_SEQ IS '코드유효값조회순서'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_INQR_SEQ IS '肄붾뱶?좏슚媛믪“?뚯닚??;
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_NM IS '코드유효값명'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_NM IS '肄붾뱶?좏슚媛믩챸';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_HNGL_ABR_NM IS '코드유효값한글약어명'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_HNGL_ABR_NM IS '肄붾뱶?좏슚媛믫븳湲€?쎌뼱紐?;
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_ENGC_ABR_NM IS '코드유효ê°ì˜<EFBFBD>문약ì´ëª…'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_ENGC_ABR_NM IS '肄붾뱶?좏슚媛믪쁺臾몄빟?대챸';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_HAN_NM IS '코드유효값한글명'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_HAN_NM IS '肄붾뱶?좏슚媛믫븳湲€紐?;
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_ENG_NM IS '코드유효ê°ì˜<EFBFBD>문명'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_ENG_NM IS '肄붾뱶?좏슚媛믪쁺臾몃챸';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_DS IS '코드유효값설명'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_VLDT_VALU_DS IS '肄붾뱶?좏슚媛믪꽕紐?;
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_ASRT_TYPE_BIT_CD IS '코드분류유형비트코드'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.CD_ASRT_TYPE_BIT_CD IS '肄붾뱶遺꾨쪟?좏삎鍮꾪듃肄붾뱶';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SPPO_CD_VLDT_VALU IS 'ìƒ<EFBFBD>위코드유효ê°'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SPPO_CD_VLDT_VALU IS '?곸쐞肄붾뱶?좏슚媛?;
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SPPO_UNFC_CD_ID IS 'ìƒ<EFBFBD>위통합코드ID'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SPPO_UNFC_CD_ID IS '?곸쐞?듯빀肄붾뱶ID';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.VLDT_STRT_YMD IS '유효ìœìžì<EFBFBD>¼ìž<EFBFBD>'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.VLDT_STRT_YMD IS '?좏슚?쒖옉?쇱옄';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.VLDT_END_YMD IS '유효종료ì<EFBFBD>¼ìž<EFBFBD>'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.VLDT_END_YMD IS '?좏슚醫낅즺?쇱옄';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.USER_DEF_VALU_1 IS 'ì¬ìš©ìž<EFBFBD>ì •ì<EFBFBD>˜ê°1'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.USER_DEF_VALU_1 IS '?ъ슜?먯젙?섍컪1';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.USER_DEF_VALU_2 IS 'ì¬ìš©ìž<EFBFBD>ì •ì<EFBFBD>˜ê°2'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.USER_DEF_VALU_2 IS '?ъ슜?먯젙?섍컪2';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_DT IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ì<EFBFBD>¼ìœ'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_DT IS '?쒖뒪?쒕벑濡앹씪??;
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_PRAF_NO IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ì<EFBFBD>¸ì¬ë²ˆí˜¸'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_PRAF_NO IS '?쒖뒪?쒕벑濡앹씤?щ쾲??;
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_OGNZ_NO IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ì¡°ì§<EFBFBD>번호'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_OGNZ_NO IS '?쒖뒪?쒕벑濡앹“吏곷쾲??;
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_SYST_CD IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ìœìŠ¤í…œì½”ë“œ'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_SYST_CD IS '?쒖뒪?쒕벑濡앹떆?ㅽ뀥肄붾뱶';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_PRGR_ID IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>프로그램ID'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_RGI_PRGR_ID IS '?쒖뒪?쒕벑濡앺봽濡쒓렇?쭵D';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_DT IS 'ìœìŠ¤í…œë³€ê²½ì<EFBFBD>¼ìœ'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_DT IS '?쒖뒪?쒕?寃쎌씪??;
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_PRAF_NO IS 'ìœìŠ¤í…œë³€ê²½ì<EFBFBD>¸ì¬ë²ˆí˜¸'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_PRAF_NO IS '?쒖뒪?쒕?寃쎌씤?щ쾲??;
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_OGNZ_NO IS 'ìœìŠ¤í…œë³€ê²½ì¡°ì§<EFBFBD>번호'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_OGNZ_NO IS '?쒖뒪?쒕?寃쎌“吏곷쾲??;
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_SYST_CD IS '시스템변경시스템코드'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_SYST_CD IS '?쒖뒪?쒕?寃쎌떆?ㅽ뀥肄붾뱶';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_PRGR_ID IS 'ìœìŠ¤í…œë³€ê²½í”„ë¡œê·¸ëž¨ID'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.SYST_CHG_PRGR_ID IS '?쒖뒪?쒕?寃쏀봽濡쒓렇?쭵D';
COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.DATA_LOAD_DT IS 'ë<EFBFBD>°ì<EFBFBD>´í„°ì <EFBFBD>재ì<EFBFBD>¼ìœ'; COMMENT ON COLUMN S_TFG.ZT_UNFC_CD_DTPT.DATA_LOAD_DT IS '?곗씠?곗쟻?ъ씪??;
@@ -177,127 +177,107 @@ ALTER TABLE S_TFG.ZT_UNFC_CD_DTPT ADD (
USING INDEX S_TFG.PK_ZT_UNFC_CD_DTPT); USING INDEX S_TFG.PK_ZT_UNFC_CD_DTPT);
------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------
-- ZT_MENU í…Œì<EFBFBD>´ë¸” ìƒ<C3AC>성 (메뉴 기본 ì •ë³´ 저장) -- ZT_MENU ?뚯씠釉??앹꽦 (硫붾돱 湲곕낯 ?뺣낫 ?€??
CREATE TABLE ZT_MENU ( CREATE TABLE ZT_MENU (
MENU_ID INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- ìž<EFBFBD>ë<EFBFBD>™ ì¦<C3AC>ê°€ ID (PK) MENU_ID INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- ?먮룞 利앷? ID (PK)
PARENT_MENU_ID INTEGER, -- 부모 메뉴 ID (FK, NULL 가능 for 루트 메뉴) PARENT_MENU_ID INTEGER, -- 遺€紐?硫붾돱 ID (FK, NULL 媛€??for 猷⑦듃 硫붾돱)
NAME VARCHAR(100), -- ì»´í<EFBFBD>¬ë„ŒíЏ ì<>´ë¦„ (옵셔ë„<C3AB>) NAME VARCHAR(100), -- 而댄룷?뚰듃 ?대쫫 (?듭뀛??
PATH VARCHAR(255) NOT NULL, -- ë<EFBFBD>¼ìš°íЏ 경로 (필수) PATH VARCHAR(255) NOT NULL, -- ?쇱슦??寃쎈줈 (?꾩닔)
TITLE VARCHAR(100) NOT NULL, -- 메뉴 ì<>´ë¦„ (meta.title, 필수) TITLE VARCHAR(100) NOT NULL, -- 硫붾돱 ?대쫫 (meta.title, ?꾩닔)
ICON VARCHAR(50), -- 메뉴 ì•„ì<E2809E>´ì½˜˜µì…”ë„<C3AB>) ICON VARCHAR(50), -- 硫붾돱 ?꾩씠肄?(?듭뀛??
SHOW_BADGE VARCHAR(1) DEFAULT 'N' CHECK (SHOW_BADGE IN ('Y', 'N')), -- ë°°ì§€ 표시 여부 (Y/N, 옵셔ë„<C3AB>) SHOW_BADGE VARCHAR(1) DEFAULT 'N' CHECK (SHOW_BADGE IN ('Y', 'N')), -- 諛곗? ?쒖떆 ?щ? (Y/N, ?듭뀛??
SHOW_TEXT_BADGE VARCHAR(50), -- í…<EFBFBD>스트 ë°°ì§€ 표시 (옵셔ë„<C3AB>) SHOW_TEXT_BADGE VARCHAR(50), -- ?띿뒪??諛곗? ?쒖떆 (?듭뀛??
IS_HIDE VARCHAR(1) DEFAULT 'N' CHECK (IS_HIDE IN ('Y', 'N')), -- 메뉴 숨김 여부 (Y/N, 옵셔ë„<C3AB>) IS_HIDE VARCHAR(1) DEFAULT 'N' CHECK (IS_HIDE IN ('Y', 'N')), -- 硫붾돱 ?④? ?щ? (Y/N, ?듭뀛??
IS_HIDE_TAB VARCHAR(1) DEFAULT 'N' CHECK (IS_HIDE_TAB IN ('Y', 'N')),-- 탭 숨김 여부 (Y/N, 옵셔ë„<C3AB>) IS_HIDE_TAB VARCHAR(1) DEFAULT 'N' CHECK (IS_HIDE_TAB IN ('Y', 'N')),-- ???④? ?щ? (Y/N, ?듭뀛??
LINK VARCHAR(255), -- ë§<EFBFBD>í<EFBFBD>¬ (옵셔ë„<C3AB>) LINK VARCHAR(255), -- 留곹겕 (?듭뀛??
IS_IFRAME VARCHAR(1) DEFAULT 'N' CHECK (IS_IFRAME IN ('Y', 'N')), -- iframe 여부 (Y/N, 옵셔ë„<EFBFBD>) IS_IFRAME VARCHAR(1) DEFAULT 'N' CHECK (IS_IFRAME IN ('Y', 'N')), -- iframe ?щ? (Y/N, ?듭뀛??
KEEP_ALIVE VARCHAR(1) DEFAULT 'N' CHECK (KEEP_ALIVE IN ('Y', 'N')), -- ìº<EFBFBD>ìœ ì—¬ë¶€ (Y/N, 옵셔ë„<C3AB>) KEEP_ALIVE VARCHAR(1) DEFAULT 'N' CHECK (KEEP_ALIVE IN ('Y', 'N')), -- 罹먯떆 ?щ? (Y/N, ?듭뀛??
ORDER_SEQ INTEGER DEFAULT 0 NOT NULL, -- 메뉴 표시 순서 (정렬용, 필수) ORDER_SEQ INTEGER DEFAULT 0 NOT NULL, -- 硫붾돱 ?쒖떆 ?쒖꽌 (?뺣젹?? ?꾩닔)
IS_ACTIVE VARCHAR(1) DEFAULT 'Y' CHECK (IS_ACTIVE IN ('Y', 'N')), -- 활성 여부 (Y/N, 기본 Y) IS_ACTIVE VARCHAR(1) DEFAULT 'Y' CHECK (IS_ACTIVE IN ('Y', 'N')), -- ?쒖꽦 ?щ? (Y/N, 湲곕낯 Y)
SYST_RGI_DT DATE, -- ìœìŠ¤í…œë“±ë¡<EFBFBD>ì<EFBFBD>¼ìœ SYST_RGI_DT DATE, -- ?쒖뒪?쒕벑濡앹씪??
SYST_RGI_PRAF_NO VARCHAR(50), -- ìœìŠ¤í…œë“±ë¡<EFBFBD>ì<EFBFBD>¸ì¬ë²ˆí˜¸ SYST_RGI_PRAF_NO VARCHAR(50), -- ?쒖뒪?쒕벑濡앹씤?щ쾲??
SYST_RGI_OGNZ_NO VARCHAR(50), -- ìœìŠ¤í…œë“±ë¡<EFBFBD>ì¡°ì§<EFBFBD>번호 SYST_RGI_OGNZ_NO VARCHAR(50), -- ?쒖뒪?쒕벑濡앹“吏곷쾲??
SYST_RGI_SYST_CD VARCHAR(50), -- ìœìŠ¤í…œë“±ë¡<EFBFBD>ìœìŠ¤í…œì½”ë“œ SYST_RGI_SYST_CD VARCHAR(50), -- ?쒖뒪?쒕벑濡앹떆?ㅽ뀥肄붾뱶
SYST_RGI_PRGR_ID VARCHAR(50), -- ìœìŠ¤í…œë“±ë¡<EFBFBD>프로그램ID SYST_RGI_PRGR_ID VARCHAR(50), -- ?쒖뒪?쒕벑濡앺봽濡쒓렇?쭵D
SYST_CHG_DT DATE, -- ìœìŠ¤í…œë³€ê²½ì<EFBFBD>¼ìœ SYST_CHG_DT DATE, -- ?쒖뒪?쒕?寃쎌씪??
SYST_CHG_PRAF_NO VARCHAR(50), -- ìœìŠ¤í…œë³€ê²½ì<EFBFBD>¸ì¬ë²ˆí˜¸ SYST_CHG_PRAF_NO VARCHAR(50), -- ?쒖뒪?쒕?寃쎌씤?щ쾲??
SYST_CHG_OGNZ_NO VARCHAR(50), -- ìœìŠ¤í…œë³€ê²½ì¡°ì§<EFBFBD>번호 SYST_CHG_OGNZ_NO VARCHAR(50), -- ?쒖뒪?쒕?寃쎌“吏곷쾲??
SYST_CHG_SYST_CD VARCHAR(50), -- 시스템변경시스템코드 SYST_CHG_SYST_CD VARCHAR(50), -- ?쒖뒪?쒕?寃쎌떆?ㅽ뀥肄붾뱶
SYST_CHG_PRGR_ID VARCHAR(50) -- ìœìŠ¤í…œë³€ê²½í”„ë¡œê·¸ëž¨ID SYST_CHG_PRGR_ID VARCHAR(50) -- ?쒖뒪?쒕?寃쏀봽濡쒓렇?쭵D
); );
-- 제약 ì¡°ê±´ 추가 -- ?쒖빟 議곌굔 異붽?
ALTER TABLE ZT_MENU ADD CONSTRAINT FK_ZT_MENU_PARENT FOREIGN KEY (PARENT_MENU_ID) REFERENCES ZT_MENU (MENU_ID) ON DELETE CASCADE; -- 부모 ì‚­ì œ 시 ìž<C3AC>ì<C3AC>ë<EFBFBD>„ ì‚­ì œ (계층 ì‚­ì œ ì§€ì<C3AC>) ALTER TABLE ZT_MENU ADD CONSTRAINT FK_ZT_MENU_PARENT FOREIGN KEY (PARENT_MENU_ID) REFERENCES ZT_MENU (MENU_ID) ON DELETE CASCADE; -- 遺€紐???젣 ???먯떇????젣 (怨꾩링 ??젣 吏€??
-- ì<EFBFBD>¸ë<EFBFBD>±ìФ ìƒ<C3AC>성 (조회 최ì <C3AC>í™”) -- ?몃뜳???앹꽦 (議고쉶 理쒖쟻??
CREATE INDEX IDX_ZT_MENU_PARENT ON ZT_MENU (PARENT_MENU_ID); CREATE INDEX IDX_ZT_MENU_PARENT ON ZT_MENU (PARENT_MENU_ID);
CREATE INDEX IDX_ZT_MENU_PATH ON ZT_MENU (PATH); CREATE INDEX IDX_ZT_MENU_PATH ON ZT_MENU (PATH);
-- 컬럼 코멘트 추가 -- 而щ읆 肄붾찘??異붽?
COMMENT ON COLUMN ZT_MENU.MENU_ID IS '메뉴 ID (PK)'; COMMENT ON COLUMN ZT_MENU.MENU_ID IS '硫붾돱 ID (PK)';
COMMENT ON COLUMN ZT_MENU.PARENT_MENU_ID IS '부모 메뉴 ID (FK)'; COMMENT ON COLUMN ZT_MENU.PARENT_MENU_ID IS '遺€紐?硫붾돱 ID (FK)';
COMMENT ON COLUMN ZT_MENU.NAME IS 'ì»´í<EFBFBD>¬ë„ŒíЏ ì<>´ë¦„'; COMMENT ON COLUMN ZT_MENU.NAME IS '而댄룷?뚰듃 ?대쫫';
COMMENT ON COLUMN ZT_MENU.PATH IS 'ë<EFBFBD>¼ìš°íЏ 경로'; COMMENT ON COLUMN ZT_MENU.PATH IS '?쇱슦??寃쎈줈';
COMMENT ON COLUMN ZT_MENU.TITLE IS '메뉴 ì<>´ë¦„'; COMMENT ON COLUMN ZT_MENU.TITLE IS '硫붾돱 ?대쫫';
COMMENT ON COLUMN ZT_MENU.ICON IS '메뉴 ì•„ì<E2809E>´ì½˜'; COMMENT ON COLUMN ZT_MENU.ICON IS '硫붾돱 ?꾩씠肄?;
COMMENT ON COLUMN ZT_MENU.SHOW_BADGE IS 'ë°°ì§€ 표시 여부 (Y/N)'; COMMENT ON COLUMN ZT_MENU.SHOW_BADGE IS '諛곗? ?쒖떆 ?щ? (Y/N)';
COMMENT ON COLUMN ZT_MENU.SHOW_TEXT_BADGE IS 'í…<EFBFBD>스트 ë°°ì§€ 표시'; COMMENT ON COLUMN ZT_MENU.SHOW_TEXT_BADGE IS '?띿뒪??諛곗? ?쒖떆';
COMMENT ON COLUMN ZT_MENU.IS_HIDE IS '메뉴 숨김 여부 (Y/N)'; COMMENT ON COLUMN ZT_MENU.IS_HIDE IS '硫붾돱 ?④? ?щ? (Y/N)';
COMMENT ON COLUMN ZT_MENU.IS_HIDE_TAB IS '탭 숨김 여부 (Y/N)'; COMMENT ON COLUMN ZT_MENU.IS_HIDE_TAB IS '???④? ?щ? (Y/N)';
COMMENT ON COLUMN ZT_MENU.LINK IS 'ë§<EFBFBD>í<EFBFBD>¬'; COMMENT ON COLUMN ZT_MENU.LINK IS '留곹겕';
COMMENT ON COLUMN ZT_MENU.IS_IFRAME IS 'iframe 여부 (Y/N)'; COMMENT ON COLUMN ZT_MENU.IS_IFRAME IS 'iframe ?щ? (Y/N)';
COMMENT ON COLUMN ZT_MENU.KEEP_ALIVE IS 'ìº<EFBFBD>ìœ ì—¬ë¶€ (Y/N)'; COMMENT ON COLUMN ZT_MENU.KEEP_ALIVE IS '罹먯떆 ?щ? (Y/N)';
COMMENT ON COLUMN ZT_MENU.ORDER_SEQ IS '메뉴 표시 순서'; COMMENT ON COLUMN ZT_MENU.ORDER_SEQ IS '硫붾돱 ?쒖떆 ?쒖꽌';
COMMENT ON COLUMN ZT_MENU.IS_ACTIVE IS '활성 여부 (Y/N)'; COMMENT ON COLUMN ZT_MENU.IS_ACTIVE IS '?쒖꽦 ?щ? (Y/N)';
COMMENT ON COLUMN ZT_MENU.SYST_RGI_DT IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ì<EFBFBD>¼ìœ'; COMMENT ON COLUMN ZT_MENU.SYST_RGI_DT IS '?쒖뒪?쒕벑濡앹씪??;
COMMENT ON COLUMN ZT_MENU.SYST_RGI_PRAF_NO IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ì<EFBFBD>¸ì¬ë²ˆí˜¸'; COMMENT ON COLUMN ZT_MENU.SYST_RGI_PRAF_NO IS '?쒖뒪?쒕벑濡앹씤?щ쾲??;
COMMENT ON COLUMN ZT_MENU.SYST_RGI_OGNZ_NO IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ì¡°ì§<EFBFBD>번호'; COMMENT ON COLUMN ZT_MENU.SYST_RGI_OGNZ_NO IS '?쒖뒪?쒕벑濡앹“吏곷쾲??;
COMMENT ON COLUMN ZT_MENU.SYST_RGI_SYST_CD IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ìœìŠ¤í…œì½”ë“œ'; COMMENT ON COLUMN ZT_MENU.SYST_RGI_SYST_CD IS '?쒖뒪?쒕벑濡앹떆?ㅽ뀥肄붾뱶';
COMMENT ON COLUMN ZT_MENU.SYST_RGI_PRGR_ID IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>프로그램ID'; COMMENT ON COLUMN ZT_MENU.SYST_RGI_PRGR_ID IS '?쒖뒪?쒕벑濡앺봽濡쒓렇?쭵D';
COMMENT ON COLUMN ZT_MENU.SYST_CHG_DT IS 'ìœìŠ¤í…œë³€ê²½ì<EFBFBD>¼ìœ'; COMMENT ON COLUMN ZT_MENU.SYST_CHG_DT IS '?쒖뒪?쒕?寃쎌씪??;
COMMENT ON COLUMN ZT_MENU.SYST_CHG_PRAF_NO IS 'ìœìŠ¤í…œë³€ê²½ì<EFBFBD>¸ì¬ë²ˆí˜¸'; COMMENT ON COLUMN ZT_MENU.SYST_CHG_PRAF_NO IS '?쒖뒪?쒕?寃쎌씤?щ쾲??;
COMMENT ON COLUMN ZT_MENU.SYST_CHG_OGNZ_NO IS 'ìœìŠ¤í…œë³€ê²½ì¡°ì§<EFBFBD>번호'; COMMENT ON COLUMN ZT_MENU.SYST_CHG_OGNZ_NO IS '?쒖뒪?쒕?寃쎌“吏곷쾲??;
COMMENT ON COLUMN ZT_MENU.SYST_CHG_SYST_CD IS '시스템변경시스템코드'; COMMENT ON COLUMN ZT_MENU.SYST_CHG_SYST_CD IS '?쒖뒪?쒕?寃쎌떆?ㅽ뀥肄붾뱶';
COMMENT ON COLUMN ZT_MENU.SYST_CHG_PRGR_ID IS 'ìœìŠ¤í…œë³€ê²½í”„ë¡œê·¸ëž¨ID'; COMMENT ON COLUMN ZT_MENU.SYST_CHG_PRGR_ID IS '?쒖뒪?쒕?寃쏀봽濡쒓렇?쭵D';
-- ZT_MENU_AUTH í…Œì<EFBFBD>´ë¸” ìƒ<C3AC>성 (메뉴 권한 목ë¡<C3AB> 저장) -- ZT_MENU_AUTH ?뚯씠釉??앹꽦 (硫붾돱 沅뚰븳 紐⑸줉 ?€??
CREATE TABLE ZT_MENU_AUTH ( CREATE TABLE ZT_MENU_AUTH (
AUTH_ID INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- ìž<EFBFBD>ë<EFBFBD>™ ì¦<C3AC>ê°€ ID (PK) AUTH_ID INTEGER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, -- ?먮룞 利앷? ID (PK)
MENU_ID INTEGER NOT NULL, -- 메뉴 ID (FK) MENU_ID INTEGER NOT NULL, -- 硫붾돱 ID (FK)
TITLE VARCHAR(100) NOT NULL, -- 권한 제목 (e.g., ''추가'', ''편집'') TITLE VARCHAR(100) NOT NULL, -- 沅뚰븳 ?쒕ぉ (e.g., ''異붽?'', ''?몄쭛'')
AUTH_MARK VARCHAR(100) NOT NULL, -- 권한 마í<CB86>¬ (e.g., ''add'', ''edit'') AUTH_MARK VARCHAR(100) NOT NULL, -- 沅뚰븳 留덊겕 (e.g., ''add'', ''edit'')
ORDER_SEQ INTEGER DEFAULT 0 NOT NULL, -- 권한 표시 순서 (정렬용) ORDER_SEQ INTEGER DEFAULT 0 NOT NULL, -- 沅뚰븳 ?쒖떆 ?쒖꽌 (?뺣젹??
SYST_RGI_DT DATE, -- ìœìŠ¤í…œë“±ë¡<EFBFBD>ì<EFBFBD>¼ìœ SYST_RGI_DT DATE, -- ?쒖뒪?쒕벑濡앹씪??
SYST_RGI_PRAF_NO VARCHAR(50), -- ìœìŠ¤í…œë“±ë¡<EFBFBD>ì<EFBFBD>¸ì¬ë²ˆí˜¸ SYST_RGI_PRAF_NO VARCHAR(50), -- ?쒖뒪?쒕벑濡앹씤?щ쾲??
SYST_RGI_OGNZ_NO VARCHAR(50), -- ìœìŠ¤í…œë“±ë¡<EFBFBD>ì¡°ì§<EFBFBD>번호 SYST_RGI_OGNZ_NO VARCHAR(50), -- ?쒖뒪?쒕벑濡앹“吏곷쾲??
SYST_RGI_SYST_CD VARCHAR(50), -- ìœìŠ¤í…œë“±ë¡<EFBFBD>ìœìŠ¤í…œì½”ë“œ SYST_RGI_SYST_CD VARCHAR(50), -- ?쒖뒪?쒕벑濡앹떆?ㅽ뀥肄붾뱶
SYST_RGI_PRGR_ID VARCHAR(50), -- ìœìŠ¤í…œë“±ë¡<EFBFBD>프로그램ID SYST_RGI_PRGR_ID VARCHAR(50), -- ?쒖뒪?쒕벑濡앺봽濡쒓렇?쭵D
SYST_CHG_DT DATE, -- ìœìŠ¤í…œë³€ê²½ì<EFBFBD>¼ìœ SYST_CHG_DT DATE, -- ?쒖뒪?쒕?寃쎌씪??
SYST_CHG_PRAF_NO VARCHAR(50), -- ìœìŠ¤í…œë³€ê²½ì<EFBFBD>¸ì¬ë²ˆí˜¸ SYST_CHG_PRAF_NO VARCHAR(50), -- ?쒖뒪?쒕?寃쎌씤?щ쾲??
SYST_CHG_OGNZ_NO VARCHAR(50), -- ìœìŠ¤í…œë³€ê²½ì¡°ì§<EFBFBD>번호 SYST_CHG_OGNZ_NO VARCHAR(50), -- ?쒖뒪?쒕?寃쎌“吏곷쾲??
SYST_CHG_SYST_CD VARCHAR(50), -- 시스템변경시스템코드 SYST_CHG_SYST_CD VARCHAR(50), -- ?쒖뒪?쒕?寃쎌떆?ㅽ뀥肄붾뱶
SYST_CHG_PRGR_ID VARCHAR(50) -- ìœìŠ¤í…œë³€ê²½í”„ë¡œê·¸ëž¨ID SYST_CHG_PRGR_ID VARCHAR(50) -- ?쒖뒪?쒕?寃쏀봽濡쒓렇?쭵D
); );
-- 제약 ì¡°ê±´ 추가 -- ?쒖빟 議곌굔 異붽?
ALTER TABLE ZT_MENU_AUTH ADD CONSTRAINT FK_ZT_MENU_AUTH_MENU FOREIGN KEY (MENU_ID) REFERENCES ZT_MENU (MENU_ID) ON DELETE CASCADE; -- 메뉴 ì‚­ì œ 시 권한ë<C593>„ ì‚­ì œ ALTER TABLE ZT_MENU_AUTH ADD CONSTRAINT FK_ZT_MENU_AUTH_MENU FOREIGN KEY (MENU_ID) REFERENCES ZT_MENU (MENU_ID) ON DELETE CASCADE; -- 硫붾돱 ??젣 ??沅뚰븳????젣
-- ì<EFBFBD>¸ë<EFBFBD>±ìФ ìƒ<C3AC>성 -- ?몃뜳???앹꽦
CREATE INDEX IDX_ZT_MENU_AUTH_MENU ON ZT_MENU_AUTH (MENU_ID); CREATE INDEX IDX_ZT_MENU_AUTH_MENU ON ZT_MENU_AUTH (MENU_ID);
-- 컬럼 코멘트 추가 -- 而щ읆 肄붾찘??異붽?
COMMENT ON COLUMN ZT_MENU_AUTH.AUTH_ID IS '권한 ID (PK)'; COMMENT ON COLUMN ZT_MENU_AUTH.AUTH_ID IS '沅뚰븳 ID (PK)';
COMMENT ON COLUMN ZT_MENU_AUTH.MENU_ID IS '메뉴 ID (FK)'; COMMENT ON COLUMN ZT_MENU_AUTH.MENU_ID IS '硫붾돱 ID (FK)';
COMMENT ON COLUMN ZT_MENU_AUTH.TITLE IS '권한 제목'; COMMENT ON COLUMN ZT_MENU_AUTH.TITLE IS '沅뚰븳 ?쒕ぉ';
COMMENT ON COLUMN ZT_MENU_AUTH.AUTH_MARK IS '권한 마í<CB86>¬'; COMMENT ON COLUMN ZT_MENU_AUTH.AUTH_MARK IS '沅뚰븳 留덊겕';
COMMENT ON COLUMN ZT_MENU_AUTH.ORDER_SEQ IS '권한 표시 순서'; COMMENT ON COLUMN ZT_MENU_AUTH.ORDER_SEQ IS '沅뚰븳 ?쒖떆 ?쒖꽌';
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_DT IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ì<EFBFBD>¼ìœ'; COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_DT IS '?쒖뒪?쒕벑濡앹씪??;
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_PRAF_NO IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ì<EFBFBD>¸ì¬ë²ˆí˜¸'; COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_PRAF_NO IS '?쒖뒪?쒕벑濡앹씤?щ쾲??;
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_OGNZ_NO IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ì¡°ì§<EFBFBD>번호'; COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_OGNZ_NO IS '?쒖뒪?쒕벑濡앹“吏곷쾲??;
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_SYST_CD IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>ìœìŠ¤í…œì½”ë“œ'; COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_SYST_CD IS '?쒖뒪?쒕벑濡앹떆?ㅽ뀥肄붾뱶';
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_PRGR_ID IS 'ìœìŠ¤í…œë“±ë¡<EFBFBD>프로그램ID'; COMMENT ON COLUMN ZT_MENU_AUTH.SYST_RGI_PRGR_ID IS '?쒖뒪?쒕벑濡앺봽濡쒓렇?쭵D';
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_DT IS 'ìœìŠ¤í…œë³€ê²½ì<EFBFBD>¼ìœ'; COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_DT IS '?쒖뒪?쒕?寃쎌씪??;
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_PRAF_NO IS 'ìœìŠ¤í…œë³€ê²½ì<EFBFBD>¸ì¬ë²ˆí˜¸'; COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_PRAF_NO IS '?쒖뒪?쒕?寃쎌씤?щ쾲??;
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_OGNZ_NO IS 'ìœìŠ¤í…œë³€ê²½ì¡°ì§<EFBFBD>번호'; COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_OGNZ_NO IS '?쒖뒪?쒕?寃쎌“吏곷쾲??;
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_SYST_CD IS '시스템변경시스템코드'; COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_SYST_CD IS '?쒖뒪?쒕?寃쎌떆?ㅽ뀥肄붾뱶';
COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_PRGR_ID IS 'ìœìŠ¤í…œë³€ê²½í”„ë¡œê·¸ëž¨ID'; COMMENT ON COLUMN ZT_MENU_AUTH.SYST_CHG_PRGR_ID IS '?쒖뒪?쒕?寃쏀봽濡쒓렇?쭵D';
# --- ½ÅÇѶóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (°³¹ß ȯ°æ) ---
shinhan.integration.envrTypeCd=D
shinhan.integration.eai.url=http://10.176.32.181
shinhan.integration.internalMci.url=http://10.176.32.173
shinhan.integration.bancaMci.url=http://10.176.32.117
shinhan.integration.externalMci.url=http://10.176.32.176
# --- ½ÅÇѶóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (Å×½ºÆ® ȯ°æ) ---
shinhan.integration.envrTypeCd=T
shinhan.integration.eai.url=http://10.174.32.181
shinhan.integration.internalMci.url=http://10.174.32.173
shinhan.integration.bancaMci.url=http://10.174.32.117
shinhan.integration.externalMci.url=http://10.176.32.177
# --- ½ÅÇѶóÀÌÇÁ EAI/MCI ¿¬°è IP Á¤º¸ (¿î¿µ ȯ°æ) ---
shinhan.integration.envrTypeCd=R
shinhan.integration.eai.url=http://10.172.32.181
shinhan.integration.internalMci.url=http://10.172.32.173
shinhan.integration.bancaMci.url=http://10.172.32.117
shinhan.integration.externalMci.url=http://10.172.32.177

Binary file not shown.

View File

@@ -1,22 +1 @@
{"jsonrpc":"2.0","method":"tools/list","id":1} {"jsonrpc":"2.0","method":"tools/list","id":1}
# --- EAI/MCI IP ( ) ---
shinhan.integration.envrTypeCd=D
shinhan.integration.eai.url=http://10.176.32.181
shinhan.integration.internalMci.url=http://10.176.32.173
shinhan.integration.bancaMci.url=http://10.176.32.117
shinhan.integration.externalMci.url=http://10.176.32.176
# --- EAI/MCI IP ( ) ---
shinhan.integration.envrTypeCd=T
shinhan.integration.eai.url=http://10.174.32.181
shinhan.integration.internalMci.url=http://10.174.32.173
shinhan.integration.bancaMci.url=http://10.174.32.117
shinhan.integration.externalMci.url=http://10.176.32.177
# --- EAI/MCI IP ( ) ---
shinhan.integration.envrTypeCd=R
shinhan.integration.eai.url=http://10.172.32.181
shinhan.integration.internalMci.url=http://10.172.32.173
shinhan.integration.bancaMci.url=http://10.172.32.117
shinhan.integration.externalMci.url=http://10.172.32.177