refactor: migrate all properties files to yaml
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 0s

This commit is contained in:
jade
2026-07-22 14:57:44 +09:00
parent 8d4e8fd976
commit c18efe251e
250 changed files with 879 additions and 638 deletions

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg;
package io.shinhanlife.dap.mcg;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.aop;
package io.shinhanlife.dap.mcg.aop;
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.audit;
package io.shinhanlife.dap.mcg.audit;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.config;
package io.shinhanlife.dap.mcg.config;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.config;
package io.shinhanlife.dap.mcg.config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.config;
package io.shinhanlife.dap.mcg.config;
/**
@@ -25,7 +25,7 @@ import java.util.stream.Collectors;
@Component
@ConfigurationProperties(prefix = "mcp")
/**
* application.properties의 mcp.* 설정을 Java 코드에서 사용하기 위한 설정 클래스입니다.
* application.yml의 mcp.* 설정을 Java 코드에서 사용하기 위한 설정 클래스입니다.
*
* API Key, 허용 Tool, 감사 로그, Redis Trace, Retry, Circuit Breaker,
* EIMS/Tool 서버 주소 같은 MCP Gateway 운영 설정을 한 곳에서 관리합니다.

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.config;
package io.shinhanlife.dap.mcg.config;
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
import org.springframework.context.annotation.Bean;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.dto;
package io.shinhanlife.dap.mcg.dto;
/**
* @package io.shinhanlife.dap.mcg.dto

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.dto;
package io.shinhanlife.dap.mcg.dto;
import lombok.Getter;
import lombok.Setter;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.guardrail;
package io.shinhanlife.dap.mcg.guardrail;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.guardrail;
package io.shinhanlife.dap.mcg.guardrail;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.guardrail;
package io.shinhanlife.dap.mcg.guardrail;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.messaging;
package io.shinhanlife.dap.mcg.messaging;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.presentation;
package io.shinhanlife.dap.mcg.presentation;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.presentation;
package io.shinhanlife.dap.mcg.presentation;
import io.shinhanlife.dap.mcg.service.KillSwitchService;
import lombok.RequiredArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.presentation;
package io.shinhanlife.dap.mcg.presentation;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.presentation;
package io.shinhanlife.dap.mcg.presentation;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.redis;
package io.shinhanlife.dap.mcg.redis;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.redis;
package io.shinhanlife.dap.mcg.redis;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.registry;
package io.shinhanlife.dap.mcg.registry;
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
import lombok.RequiredArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.resilience;
package io.shinhanlife.dap.mcg.resilience;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.resilience;
package io.shinhanlife.dap.mcg.resilience;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.resilience;
package io.shinhanlife.dap.mcg.resilience;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.resilience;
package io.shinhanlife.dap.mcg.resilience;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.resilience;
package io.shinhanlife.dap.mcg.resilience;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.resilience;
package io.shinhanlife.dap.mcg.resilience;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.resilience;
package io.shinhanlife.dap.mcg.resilience;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.resilience;
package io.shinhanlife.dap.mcg.resilience;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.security;
package io.shinhanlife.dap.mcg.security;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.security;
package io.shinhanlife.dap.mcg.security;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.security;
package io.shinhanlife.dap.mcg.security;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.service;
package io.shinhanlife.dap.mcg.service;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.service;
package io.shinhanlife.dap.mcg.service;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.service;
package io.shinhanlife.dap.mcg.service;
import io.shinhanlife.dap.common.mcp.security.SecurityProperties;
import io.shinhanlife.dap.mcg.registry.RedisRegistryService;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.sync;
package io.shinhanlife.dap.mcg.sync;
/**
* @package io.shinhanlife.dap.mcg.sync

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.sync;
package io.shinhanlife.dap.mcg.sync;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.sync;
package io.shinhanlife.dap.mcg.sync;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.sync;
package io.shinhanlife.dap.mcg.sync;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.sync;
package io.shinhanlife.dap.mcg.sync;
import io.shinhanlife.dap.mcg.dto.ToolMetadata;
import io.shinhanlife.dap.mcg.registry.RedisRegistryService;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.tool.large;
package io.shinhanlife.dap.mcg.tool.large;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.tool.large;
package io.shinhanlife.dap.mcg.tool.large;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.tool.large;
package io.shinhanlife.dap.mcg.tool.large;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.tool.result;
package io.shinhanlife.dap.mcg.tool.result;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.tool.result;
package io.shinhanlife.dap.mcg.tool.result;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.transport;
package io.shinhanlife.dap.mcg.transport;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.transport;
package io.shinhanlife.dap.mcg.transport;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.converter;
package io.shinhanlife.dap.sample.converter;
import io.shinhanlife.dap.sample.domain.model.AppliSystNtfyPatiModel;
import io.shinhanlife.dap.sample.dto.AppliSystNtfyRgiInDTO;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.domain.model;
package io.shinhanlife.dap.sample.domain.model;
import io.shinhanlife.glow.db.dto.AuditInfo;
import lombok.*;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.domain.repository;
package io.shinhanlife.dap.sample.domain.repository;
import io.shinhanlife.dap.sample.domain.model.AppliSystNtfyPatiModel;
import io.shinhanlife.dap.sample.dto.StrnTermListInDTO;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.domain.service;
package io.shinhanlife.dap.sample.domain.service;
import io.shinhanlife.dap.sample.dto.AppliSystNtfyRgiInDTO;
import io.shinhanlife.dap.sample.dto.StrnTermListInDTO;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.domain.service.impl;
package io.shinhanlife.dap.sample.domain.service.impl;
import io.shinhanlife.dap.sample.converter.SampleConverter;
import io.shinhanlife.dap.sample.domain.model.AppliSystNtfyPatiModel;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.dto;
package io.shinhanlife.dap.sample.dto;
import lombok.Getter;
import lombok.Setter;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.dto;
package io.shinhanlife.dap.sample.dto;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.dto;
package io.shinhanlife.dap.sample.dto;
import lombok.NoArgsConstructor;
import lombok.AllArgsConstructor;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.presentation;
package io.shinhanlife.dap.sample.presentation;
import io.shinhanlife.dap.sample.presentation.io.AppliSystNtfyPatiRequest;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.presentation.io;
package io.shinhanlife.dap.sample.presentation.io;
import lombok.*;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.presentation.io;
package io.shinhanlife.dap.sample.presentation.io;
import lombok.*;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.presentation.io;
package io.shinhanlife.dap.sample.presentation.io;
import io.shinhanlife.glow.PageInfo;
import lombok.*;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.presentation.io;
package io.shinhanlife.dap.sample.presentation.io;
import io.shinhanlife.glow.PageInfo;
import lombok.*;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.usecase;
package io.shinhanlife.dap.sample.usecase;
import io.shinhanlife.dap.sample.presentation.io.AppliSystNtfyPatiRequest;
import io.shinhanlife.dap.sample.presentation.io.AppliSystNtfyPatiResponse;

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.sample.usecase.impl;
package io.shinhanlife.dap.sample.usecase.impl;
import io.shinhanlife.dap.sample.converter.SampleConverter;
import io.shinhanlife.dap.sample.domain.service.GlowSampleService;

View File

@@ -1,19 +0,0 @@
# Dev 환경 전용 설정 (개발 서버 DB 연결 정보 등)
# spring.datasource.url=jdbc:oracle:thin:@//dev-db-host:1521/XEPDB1
# spring.datasource.driverClassName=oracle.jdbc.OracleDriver
# spring.datasource.username=dev_user
# spring.datasource.password=dev_password
# OCI (Oracle Cloud) 개발 환경 라우팅
mcp.gateway.fallback.routes.sms=http://144.24.70.100:8282
mcp.gateway.fallback.routes.email=http://144.24.70.100:8283
mcp.gateway.fallback.default-url=http://144.24.70.100:8284
mcp.gateway.fallback.routes.payment=http://144.24.70.100:8285
mcp.gateway.fallback.routes.hr=http://144.24.70.100:8284
# --- 신한라이프 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

View File

@@ -0,0 +1,31 @@
# Dev 환경 전용 설정 (개발 서버 DB 연결 정보 등)
# spring:
# datasource:
# url: jdbc:oracle:thin:@//dev-db-host:1521/XEPDB1
# driverClassName: oracle.jdbc.OracleDriver
# username: dev_user
# password: dev_password
# OCI (Oracle Cloud) 개발 환경 라우팅
mcp:
gateway:
fallback:
default-url: http://144.24.70.100:8284
routes:
sms: http://144.24.70.100:8282
email: http://144.24.70.100:8283
payment: http://144.24.70.100:8285
hr: http://144.24.70.100:8284
# --- 신한라이프 EAI/MCI 연계 IP 정보 (개발 환경) ---
shinhan:
integration:
envrTypeCd: D
eai:
url: http://10.176.32.181
internalMci:
url: http://10.176.32.173
bancaMci:
url: http://10.176.32.117
externalMci:
url: http://10.176.32.176

View File

@@ -1,27 +0,0 @@
# Local ?섍꼍 ?꾩슜 ?ㅼ젙 (H2 硫붾え由?DB ??
spring.datasource.url=jdbc:p6spy:h2:mem:testdb;DB_CLOSE_DELAY=-1;
spring.datasource.driverClassName=com.p6spy.engine.spy.P6SpyDriver
spring.datasource.username=sa
spring.datasource.password=password
spring.h2.console.enabled=true
# EIMS 동적 라우팅 접속 정보
eims.http.url=http://localhost:${server.port}/api/gateway
eims.tcp.host=127.0.0.1
eims.tcp.port=8090
eims.tcp.timeout=5000
eims.jsp.form.url=http://localhost:${server.port}/mock/jsp-form
eims.jsp.json.url=http://localhost:${server.port}/mock/jsp-json
eims.mci.url=http://localhost:${server.port}/api/mock/esb/api
eims.mcistring.url=http://localhost:${server.port}/api/mock/esb/string
# Gateway/Tool URLs
mcp.adapter.url=http://localhost:${server.port}/rpc/v1/execute
mcp.gateway.url=http://localhost:${server.port}/mcp/api/v1
mcp.tool.host=localhost
# Disable Kafka
spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration
# Suppress Kafka Connection Logs
logging.level.org.apache.kafka=ERROR

View File

@@ -0,0 +1,41 @@
# Local 환경 전용 설정 (H2 메모리 DB 등)
spring:
datasource:
url: jdbc:p6spy:h2:mem:testdb;DB_CLOSE_DELAY=-1;
driverClassName: com.p6spy.engine.spy.P6SpyDriver
username: sa
password: password
h2:
console:
enabled: true
autoconfigure:
exclude: org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration
eims:
http:
url: http://localhost:${server.port}/api/gateway
tcp:
host: 127.0.0.1
port: 8090
timeout: 5000
jsp:
form:
url: http://localhost:${server.port}/mock/jsp-form
json:
url: http://localhost:${server.port}/mock/jsp-json
mci:
url: http://localhost:${server.port}/api/mock/esb/api
mcistring:
url: http://localhost:${server.port}/api/mock/esb/string
mcp:
adapter:
url: http://localhost:${server.port}/rpc/v1/execute
gateway:
url: http://localhost:${server.port}/mcp/api/v1
tool:
host: localhost
logging:
level:
org.apache.kafka: ERROR

View File

@@ -1,12 +0,0 @@
# Prod 환경 전용 설정 (운영 서버 DB 연결 정보 등)
# spring.datasource.url=jdbc:oracle:thin:@//prod-db-host:1521/PROD
# spring.datasource.driverClassName=oracle.jdbc.OracleDriver
# spring.datasource.username=prod_user
# spring.datasource.password=prod_password
# --- 신한라이프 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

@@ -0,0 +1,20 @@
# Prod 환경 전용 설정 (운영 서버 DB 연결 정보 등)
# spring:
# datasource:
# url: jdbc:oracle:thin:@//prod-db-host:1521/PROD
# driverClassName: oracle.jdbc.OracleDriver
# username: prod_user
# password: prod_password
# --- 신한라이프 EAI/MCI 연계 IP 정보 (운영 환경) ---
shinhan:
integration:
envrTypeCd: R
eai:
url: http://10.172.32.181
internalMci:
url: http://10.172.32.173
bancaMci:
url: http://10.172.32.117
externalMci:
url: http://10.172.32.177

View File

@@ -1,52 +0,0 @@
spring.application.name=dap-admin
# Gateway Fallback Routing (For unregistered tools)
mcp.gateway.fallback.routes.sms=http://tool-sms:8082
mcp.gateway.fallback.routes.email=http://tool-email:8083
mcp.gateway.fallback.default-url=http://tool-other:8084
mcp.gateway.fallback.routes.payment=http://tool-payment:8085
mcp.gateway.fallback.routes.hr=http://tool-hr:8086
server.port=8081
server.http2.enabled=true
# 기본적으로 local 환경을 실행
spring.profiles.active=local
# MyBatis 공통 설정
mybatis.mapper-locations=classpath:mapper/**/*.xml
mybatis.type-aliases-package=
mybatis.configuration.map-underscore-to-camel-case=true
spring.sql.init.mode=always
logging.level.com.corundumstudio.socketio=DEBUG
# 우아한 종료 (Graceful Shutdown) 설정
server.shutdown=graceful
spring.lifecycle.timeout-per-shutdown-phase=20s
# Suppress Kafka Connection Logs
logging.level.org.apache.kafka=ERROR
# Spring AI MCP Server Settings
# spring.ai.mcp.server.protocol=STATELESS
mcp.agent-claims-required=false
mcp.trusted-claims-required=false
mcp.write-approval-required=false
mcp.default-page-size=100
mcp.max-page-size=500
mcp.max-pages-per-call=3
mcp.max-stream-bytes=1048576
mcp.max-response-bytes-from-tool=5242880
mcp.tool-registry-sync-interval-millis=5000
# API 보안 키 설정
mcp.security.tenant-domains.TESTER-DEV=ALL
mcp.security.tenant-domains.system=ALL
# Spring AI OpenAI / Gemini API Config
spring.ai.openai.api-key=AQ.Ab8RN6KFZggsQf8iooY1v_3h3vp2TIjiYB54dV4Yay3vVKEMtg
spring.ai.openai.base-url=https://generativelanguage.googleapis.com/v1beta/openai/
spring.ai.openai.chat.options.model=gemini-flash-latest
spring.ai.openai.chat.options.temperature=0.3

View File

@@ -0,0 +1,58 @@
spring:
application:
name: dap-admin
profiles:
active: local
sql:
init:
mode: always
lifecycle:
timeout-per-shutdown-phase: 20s
ai:
openai:
api-key: AQ.Ab8RN6KFZggsQf8iooY1v_3h3vp2TIjiYB54dV4Yay3vVKEMtg
base-url: https://generativelanguage.googleapis.com/v1beta/openai/
chat:
options:
model: gemini-flash-latest
temperature: 0.3
server:
port: 8081
http2:
enabled: true
shutdown: graceful
mcp:
gateway:
fallback:
default-url: http://tool-other:8084
routes:
sms: http://tool-sms:8082
email: http://tool-email:8083
payment: http://tool-payment:8085
hr: http://tool-hr:8086
agent-claims-required: false
trusted-claims-required: false
write-approval-required: false
default-page-size: 100
max-page-size: 500
max-pages-per-call: 3
max-stream-bytes: 1048576
max-response-bytes-from-tool: 5242880
tool-registry-sync-interval-millis: 5000
security:
tenant-domains:
TESTER-DEV: ALL
system: ALL
mybatis:
mapper-locations: classpath:mapper/**/*.xml
type-aliases-package: ""
configuration:
map-underscore-to-camel-case: true
logging:
level:
com.corundumstudio.socketio: DEBUG
org.apache.kafka: ERROR

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg;
package io.shinhanlife.dap.mcg;
/**

View File

@@ -1,4 +1,4 @@
package io.shinhanlife.dap.mcg.tool.large;
package io.shinhanlife.dap.mcg.tool.large;
/**