From 4015207b8665ad986979ca8cddd78de33f121ef1 Mon Sep 17 00:00:00 2001 From: jade Date: Fri, 24 Jul 2026 23:52:55 +0900 Subject: [PATCH] fix: map Nginx 8281 to host 8080 to restore Apache proxy connection --- .gitea/workflows/deploy.yml | 10 +- README.md | 18 +--- cleanup.py | 40 ++++++++ .../presentation/ScaffoldingController.java | 4 +- .../src/main/resources/application-dev.yml | 2 - .../src/main/resources/application-local.yml | 2 - .../main/resources/static/admin/scaffold.html | 2 - dap-tool-email/Dockerfile | 19 ---- dap-tool-email/build.gradle | 12 --- .../dap/mcc/dto/EmailSendRequest.java | 40 -------- .../mcc/email/DapToolEmailApplication.java | 30 ------ .../dap/mcc/service/EmailToolService.java | 7 -- .../service/impl/EmailToolServiceImpl.java | 52 ---------- .../src/main/resources/application-dev.yml | 36 ------- .../src/main/resources/application-local.yml | 39 -------- .../src/main/resources/application.yml | 15 --- .../src/main/resources/logback-spring.xml | 39 -------- dap-tool-payment/Dockerfile | 19 ---- dap-tool-payment/build.gradle | 10 -- .../dap/mcc/dto/PaymentApprovalRequest.java | 26 ----- .../dap/mcc/dto/PaymentApprovalResponse.java | 27 ------ .../payment/DapToolPaymentApplication.java | 30 ------ .../mcc/service/PaymentApprovalService.java | 7 -- .../impl/PaymentApprovalServiceImpl.java | 57 ----------- .../src/main/resources/application-dev.yml | 36 ------- .../src/main/resources/application-local.yml | 39 -------- .../src/main/resources/application.yml | 15 --- .../src/main/resources/logback-spring.xml | 39 -------- .../src/main/resources/static/index.html | 43 --------- docker-compose.yml | 94 +------------------ nginx/conf.d/default.conf | 25 ----- settings.gradle | 2 - 32 files changed, 47 insertions(+), 789 deletions(-) create mode 100644 cleanup.py delete mode 100644 dap-tool-email/Dockerfile delete mode 100644 dap-tool-email/build.gradle delete mode 100644 dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/dto/EmailSendRequest.java delete mode 100644 dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/email/DapToolEmailApplication.java delete mode 100644 dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/service/EmailToolService.java delete mode 100644 dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/service/impl/EmailToolServiceImpl.java delete mode 100644 dap-tool-email/src/main/resources/application-dev.yml delete mode 100644 dap-tool-email/src/main/resources/application-local.yml delete mode 100644 dap-tool-email/src/main/resources/application.yml delete mode 100644 dap-tool-email/src/main/resources/logback-spring.xml delete mode 100644 dap-tool-payment/Dockerfile delete mode 100644 dap-tool-payment/build.gradle delete mode 100644 dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/dto/PaymentApprovalRequest.java delete mode 100644 dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/dto/PaymentApprovalResponse.java delete mode 100644 dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/payment/DapToolPaymentApplication.java delete mode 100644 dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/service/PaymentApprovalService.java delete mode 100644 dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/service/impl/PaymentApprovalServiceImpl.java delete mode 100644 dap-tool-payment/src/main/resources/application-dev.yml delete mode 100644 dap-tool-payment/src/main/resources/application-local.yml delete mode 100644 dap-tool-payment/src/main/resources/application.yml delete mode 100644 dap-tool-payment/src/main/resources/logback-spring.xml delete mode 100644 dap-tool-payment/src/main/resources/static/index.html diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index abd5c8f5..f3064c9b 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -50,19 +50,15 @@ jobs: echo "Building and starting $TARGET containers sequentially to prevent OOM..." ACTIVE_PROFILE=dev docker compose build gateway-$TARGET ACTIVE_PROFILE=dev docker compose build tool-sms-$TARGET - ACTIVE_PROFILE=dev docker compose build tool-email-$TARGET ACTIVE_PROFILE=dev docker compose build tool-other-$TARGET - ACTIVE_PROFILE=dev docker compose build tool-payment-$TARGET ACTIVE_PROFILE=dev docker compose up -d gateway-$TARGET sleep 5 ACTIVE_PROFILE=dev docker compose up -d tool-sms-$TARGET sleep 5 - ACTIVE_PROFILE=dev docker compose up -d tool-email-$TARGET sleep 5 ACTIVE_PROFILE=dev docker compose up -d tool-other-$TARGET sleep 5 - ACTIVE_PROFILE=dev docker compose up -d tool-payment-$TARGET # 4.5. 제거할 컨테이너 (포트 충돌 방지, Nginx 제외) echo "Finding and killing legacy containers holding our ports..." @@ -97,7 +93,7 @@ jobs: echo "Restarting Nginx to apply rollback..." docker compose restart nginx || true echo "Stopping failed $TARGET containers..." - docker compose stop gateway-$TARGET tool-sms-$TARGET tool-email-$TARGET tool-other-$TARGET tool-payment-$TARGET + docker compose stop gateway-$TARGET tool-sms-$TARGET tool-other-$TARGET exit 1 # ?�이?�라???�패 처리 (구버?��? 그�?�??��??? fi @@ -111,13 +107,13 @@ jobs: cp ./nginx/${OLD_TARGET}.conf ./nginx/conf.d/default.conf docker compose exec -T nginx nginx -s reload || true echo "Stopping failed $TARGET containers..." - docker compose stop gateway-$TARGET tool-sms-$TARGET tool-email-$TARGET tool-other-$TARGET tool-payment-$TARGET + docker compose stop gateway-$TARGET tool-sms-$TARGET tool-other-$TARGET exit 1 fi # 7. 구버??종료 echo "Traffic switched successfully. Stopping old $OLD_TARGET containers..." - docker compose stop gateway-$OLD_TARGET tool-sms-$OLD_TARGET tool-email-$OLD_TARGET tool-other-$OLD_TARGET tool-payment-$OLD_TARGET + docker compose stop gateway-$OLD_TARGET tool-sms-$OLD_TARGET tool-other-$OLD_TARGET # 가비�? �?�� docker system prune -f diff --git a/README.md b/README.md index beeee3bc..29b36a33 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# DAP Backend +# DAP Backend Spring Boot 기반 DAP 관리자 백엔드 API 서버 및 MCP(Model Context Protocol) Gateway / Tool 분산 서버 프로젝트입니다. @@ -149,20 +149,4 @@ java -cp dap-common/src/main/java io.shinhanlife.dap.lib.util.ToolScaffolder Pay --- -## 패키지 구조 (Package Structure) - -```text -dap-backend-main (Root) -├── dap-gateway # MCP 라우팅 허브 서버 (외부 LLM과 통신 및 Tool 분배) -├── dap-common # 공통 모듈 (Security, Session, Config 등) -├── dap-tool-core # Tool 공통 기능 (AbstractMcpToolService, Annotation, Scaffolder) -├── dap-tool-email # [Tool] 이메일 발송 특화 어댑터 모듈 -├── dap-tool-sms # [Tool] SMS 발송 특화 어댑터 모듈 -├── dap-tool-payment # [Tool] 결제 비즈니스 어댑터 모듈 (Scaffolded) -└── dap-tool-other # [Tool] 기타 비즈니스(청구, 계약, 고객, HR 등) 어댑터 모듈 -``` - -*(참고: 기존 단일 모듈 프로젝트에서 마이크로서비스 확장을 위해 모듈별로 분리되었으며, 각 Tool 서버는 독립적으로 확장 및 배포할 수 있습니다.)* -# Auto Deploy Test -# Final Deploy Verify diff --git a/cleanup.py b/cleanup.py new file mode 100644 index 00000000..bc9687f9 --- /dev/null +++ b/cleanup.py @@ -0,0 +1,40 @@ +import re + +# 1. Clean docker-compose.yml +with open('docker-compose.yml', 'r', encoding='utf-8') as f: + content = f.read() + +# Remove tool-email and tool-payment blocks +content = re.sub(r'^\s*tool-(email|payment)-(blue|green):.*?^\s*- SPRING_PROFILES_ACTIVE=\$\{ACTIVE_PROFILE:-local\}\n\n?', '', content, flags=re.MULTILINE | re.DOTALL) +# Remove MCP fallback routes +content = re.sub(r'^\s*- MCP_GATEWAY_FALLBACK_ROUTES_(EMAIL|PAYMENT)=.*?\n', '', content, flags=re.MULTILINE) + +with open('docker-compose.yml', 'w', encoding='utf-8') as f: + f.write(content) + +# 2. Clean deploy.yml +with open('.gitea/workflows/deploy.yml', 'r', encoding='utf-8') as f: + lines = f.readlines() + +new_lines = [] +for line in lines: + if 'tool-email' in line or 'tool-payment' in line: + # For lines that have multiple tools (like docker compose stop), just remove the specific ones + if 'docker compose stop' in line: + line = re.sub(r' tool-(email|payment)-\$[A-Z_]+', '', line) + new_lines.append(line) + else: + new_lines.append(line) + +with open('.gitea/workflows/deploy.yml', 'w', encoding='utf-8') as f: + f.writelines(new_lines) + +# 3. Clean nginx/conf.d/default.conf +with open('nginx/conf.d/default.conf', 'r', encoding='utf-8') as f: + content = f.read() + +content = re.sub(r'upstream tool-(email|payment) \{.*?\n\}\n\n?', '', content, flags=re.MULTILINE | re.DOTALL) +content = re.sub(r'server \{\n\s+listen 828[35];.*?\n\}\n\n?', '', content, flags=re.MULTILINE | re.DOTALL) + +with open('nginx/conf.d/default.conf', 'w', encoding='utf-8') as f: + f.write(content) diff --git a/dap-gateway/src/main/java/io/shinhanlife/dap/mcg/presentation/ScaffoldingController.java b/dap-gateway/src/main/java/io/shinhanlife/dap/mcg/presentation/ScaffoldingController.java index c9e604a5..acca7904 100644 --- a/dap-gateway/src/main/java/io/shinhanlife/dap/mcg/presentation/ScaffoldingController.java +++ b/dap-gateway/src/main/java/io/shinhanlife/dap/mcg/presentation/ScaffoldingController.java @@ -96,12 +96,12 @@ public class ScaffoldingController { File[] files = dir.listFiles(f -> f.isDirectory() && f.getName().startsWith("dap-tool-") && !f.getName().equals("dap-tool-core")); if (files == null || files.length == 0) { - return List.of("dap-tool-other", "dap-tool-email", "dap-tool-hr", "dap-tool-payment", "dap-tool-sms"); + return List.of("dap-tool-other", "dap-tool-hr", "dap-tool-sms"); } return Arrays.stream(files).map(File::getName).sorted().collect(Collectors.toList()); } catch (Exception e) { - return List.of("dap-tool-other", "dap-tool-email", "dap-tool-hr", "dap-tool-payment", "dap-tool-sms"); + return List.of("dap-tool-other", "dap-tool-hr", "dap-tool-sms"); } } } diff --git a/dap-gateway/src/main/resources/application-dev.yml b/dap-gateway/src/main/resources/application-dev.yml index 2eb969f7..a1697e1e 100644 --- a/dap-gateway/src/main/resources/application-dev.yml +++ b/dap-gateway/src/main/resources/application-dev.yml @@ -13,8 +13,6 @@ mcp: default-url: http://nginx:8284 routes: sms: http://nginx:8282 - email: http://nginx:8283 - payment: http://nginx:8285 hr: http://nginx:8284 # --- 신한라이프 EAI/MCI 연계 IP 정보 (개발 환경) --- diff --git a/dap-gateway/src/main/resources/application-local.yml b/dap-gateway/src/main/resources/application-local.yml index 261a2ad0..d9eb29f7 100644 --- a/dap-gateway/src/main/resources/application-local.yml +++ b/dap-gateway/src/main/resources/application-local.yml @@ -37,8 +37,6 @@ mcp: 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-other:8084 tool: host: localhost diff --git a/dap-gateway/src/main/resources/static/admin/scaffold.html b/dap-gateway/src/main/resources/static/admin/scaffold.html index 67ff9208..732f1a19 100644 --- a/dap-gateway/src/main/resources/static/admin/scaffold.html +++ b/dap-gateway/src/main/resources/static/admin/scaffold.html @@ -486,9 +486,7 @@
Destination Pod directory.
diff --git a/dap-tool-email/Dockerfile b/dap-tool-email/Dockerfile deleted file mode 100644 index 95d23f53..00000000 --- a/dap-tool-email/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM eclipse-temurin:21-jdk-alpine AS builder -WORKDIR /app -COPY gradlew . -COPY gradle gradle -COPY build.gradle settings.gradle ./ - -COPY dap-tool-core dap-tool-core -COPY dap-tool-email dap-tool-email -RUN chmod +x gradlew -RUN ./gradlew clean :dap-tool-email:build -x test - -FROM eclipse-temurin:21-jre-alpine -WORKDIR /app -RUN apk add --no-cache tzdata -ENV TZ=Asia/Seoul -COPY --from=builder /app/dap-tool-email/build/libs/*-SNAPSHOT.jar app.jar -EXPOSE 8083 -ENTRYPOINT ["java", "-jar", "app.jar"] - diff --git a/dap-tool-email/build.gradle b/dap-tool-email/build.gradle deleted file mode 100644 index 554427fc..00000000 --- a/dap-tool-email/build.gradle +++ /dev/null @@ -1,12 +0,0 @@ -plugins { - id 'org.springframework.boot' -} - -dependencies { - implementation project(':dap-tool-core') -} - -dependencies { - compileOnly 'org.projectlombok:lombok:1.18.32' - annotationProcessor 'org.projectlombok:lombok:1.18.32' -} diff --git a/dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/dto/EmailSendRequest.java b/dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/dto/EmailSendRequest.java deleted file mode 100644 index b07bdccc..00000000 --- a/dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/dto/EmailSendRequest.java +++ /dev/null @@ -1,40 +0,0 @@ -package io.shinhanlife.dap.mcc.dto; - -import lombok.Builder; -import lombok.NoArgsConstructor; -import lombok.AllArgsConstructor; - -import io.shinhanlife.dap.lib.annotation.McpParameter; -import lombok.Getter; -import lombok.Setter; - -/** - * @package io.shinhanlife.dap.mcc.dto - * @className EmailSendRequest - * @description AX HUB 시스템 처리 클래스 - * @author 0986406 - * @create 2026.09.01 - *
- * ---------- 개정이력 ----------
- * 수정일      수정자    수정내용
- * ---------- -------- ---------------------------
- * 2026.09.01  0986406    최초생성
- * 
- * 
- */ -@Getter -@Setter -@Builder -@NoArgsConstructor -@AllArgsConstructor -public class EmailSendRequest { - - @McpParameter(description = "수신자 이메일 주소", required = true) - private String emailAddress; - - @McpParameter(description = "이메일 제목", required = true) - private String subject; - - @McpParameter(description = "이메일 본문 내용", required = true) - private String body; -} \ No newline at end of file diff --git a/dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/email/DapToolEmailApplication.java b/dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/email/DapToolEmailApplication.java deleted file mode 100644 index 2d8f2b56..00000000 --- a/dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/email/DapToolEmailApplication.java +++ /dev/null @@ -1,30 +0,0 @@ -package io.shinhanlife.dap.mcc.email; - - -/** - * @package io.shinhanlife.dap.mcc.email - * @className DapToolEmailApplication - * @description AX HUB 시스템 처리 클래스 - * @author 0986406 - * @create 2026.09.01 - *
- * ---------- 개정이력 ----------
- * 수정일      수정자    수정내용
- * ---------- -------- ---------------------------
- * 2026.09.01  0986406    최초생성
- * 
- * 
- */ -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.context.properties.ConfigurationPropertiesScan; -import org.springframework.cache.annotation.EnableCaching; - -@SpringBootApplication(scanBasePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib.adapter", "io.shinhanlife.dap.lib.mcp", "io.shinhanlife.dap.lib.config", "io.shinhanlife.dap.lib.integration"}) -@ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib.adapter", "io.shinhanlife.dap.lib.mcp", "io.shinhanlife.dap.lib.config", "io.shinhanlife.dap.lib.integration"}) -@EnableCaching -public class DapToolEmailApplication { - public static void main(String[] args) { - SpringApplication.run(DapToolEmailApplication.class, args); - } -} diff --git a/dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/service/EmailToolService.java b/dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/service/EmailToolService.java deleted file mode 100644 index 5a21e92a..00000000 --- a/dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/service/EmailToolService.java +++ /dev/null @@ -1,7 +0,0 @@ -package io.shinhanlife.dap.mcc.service; - -import io.shinhanlife.dap.mcc.dto.*; - -public interface EmailToolService { - Object sendEmail(EmailSendRequest req); -} diff --git a/dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/service/impl/EmailToolServiceImpl.java b/dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/service/impl/EmailToolServiceImpl.java deleted file mode 100644 index f03d1921..00000000 --- a/dap-tool-email/src/main/java/io/shinhanlife/dap/mcc/service/impl/EmailToolServiceImpl.java +++ /dev/null @@ -1,52 +0,0 @@ -package io.shinhanlife.dap.mcc.service.impl; - -import io.shinhanlife.dap.lib.annotation.McpFunction; -import io.shinhanlife.dap.lib.annotation.McpTool; -import io.shinhanlife.dap.mcc.service.EmailToolService; -import io.shinhanlife.dap.mcc.service.AbstractMcpToolService; -import io.shinhanlife.dap.mcc.dto.EmailSendRequest; -import lombok.extern.slf4j.Slf4j; - -import java.util.HashMap; -import java.util.Map; - -/** - * @package io.shinhanlife.dap.mcc.email - * @className EmailToolService - * @description AX HUB 시스템 처리 클래스 - * @author 0986406 - * @create 2026.09.01 - *
- * ---------- 개정이력 ----------
- * 수정일      수정자    수정내용
- * ---------- -------- ---------------------------
- * 2026.09.01  0986406    최초생성
- * 
- * 
- */ -@Slf4j -@McpTool(routingType = "EAI", categoryKey = "notification") -public class EmailToolServiceImpl extends AbstractMcpToolService implements EmailToolService { - - @McpFunction(register = false, displayName = "send_email 툴", name = "send_email", description = "이메일 발송", prompt = "고객에게 이메일을 발송해줘.", mappingId = "EMAIL_SEND_001") - @Override - public Object sendEmail(EmailSendRequest req) { - log.info("[Email] 이메일 발송 요청 수신. 수신자: {}", req.getEmailAddress()); - - // EAI 연동을 위한 파라미터 변환 - Map payload = new HashMap<>(); - payload.put("address", req.getEmailAddress()); - payload.put("subject", req.getSubject()); - payload.put("content", req.getBody()); - - // 레거시 시스템 연동 (EAI) - Map result = executeLegacy("EAI", "EMAIL_SEND_001", payload); - - // 결과 가공 - if ("SUCCESS".equals(result.get("status"))) { - result.put("message", "이메일이 성공적으로 발송되었습니다."); - } - - return result; - } -} \ No newline at end of file diff --git a/dap-tool-email/src/main/resources/application-dev.yml b/dap-tool-email/src/main/resources/application-dev.yml deleted file mode 100644 index a404673d..00000000 --- a/dap-tool-email/src/main/resources/application-dev.yml +++ /dev/null @@ -1,36 +0,0 @@ -# OCI ?대씪?곕뱶 ?섍꼍 ?꾩슜 ?ㅼ젙 -server: - port: ${PORT:8083} - -axhub: - gateway: - url: https://axhubmcp.devjun.net - -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 - -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 \ No newline at end of file diff --git a/dap-tool-email/src/main/resources/application-local.yml b/dap-tool-email/src/main/resources/application-local.yml deleted file mode 100644 index 13593bf4..00000000 --- a/dap-tool-email/src/main/resources/application-local.yml +++ /dev/null @@ -1,39 +0,0 @@ -# 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 - -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: - security: - tenant-domains: - mcp-client-1: CUSTOMER,COMMON - mcp-client-2: ALL - -axhub: - gateway: - url: http://localhost:8081 - tool: - url: ${AXHUB_TOOL_URL:http://localhost:${server.port}} \ No newline at end of file diff --git a/dap-tool-email/src/main/resources/application.yml b/dap-tool-email/src/main/resources/application.yml deleted file mode 100644 index a47f2c1b..00000000 --- a/dap-tool-email/src/main/resources/application.yml +++ /dev/null @@ -1,15 +0,0 @@ -server: - port: 8083 -spring: - application: - name: dap-tool-email - profiles: - active: local -logging: - level: - org.apache.kafka: ERROR -mcp: - namespace: "" - security: - tenant-domains: - TESTER-DEV: ALL \ No newline at end of file diff --git a/dap-tool-email/src/main/resources/logback-spring.xml b/dap-tool-email/src/main/resources/logback-spring.xml deleted file mode 100644 index c6fc2d52..00000000 --- a/dap-tool-email/src/main/resources/logback-spring.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - ${LOG_PATTERN} - - - - - - - - - /swlog/dap-tool-email/A01/${HOSTNAME}_A01.log - - - /swlog/dap-tool-email/A01/${HOSTNAME}_A01_%d{yyyyMMdd}.log - - 30 - - - ${LOG_PATTERN} - - - - - - - - - - - - diff --git a/dap-tool-payment/Dockerfile b/dap-tool-payment/Dockerfile deleted file mode 100644 index a4942606..00000000 --- a/dap-tool-payment/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM eclipse-temurin:21-jdk-alpine AS builder -WORKDIR /app -COPY gradlew . -COPY gradle gradle -COPY build.gradle settings.gradle ./ - -COPY dap-tool-core dap-tool-core -COPY dap-tool-payment dap-tool-payment -RUN chmod +x gradlew -RUN ./gradlew clean :dap-tool-payment:build -x test - -FROM eclipse-temurin:21-jre-alpine -WORKDIR /app -RUN apk add --no-cache tzdata -ENV TZ=Asia/Seoul -COPY --from=builder /app/dap-tool-payment/build/libs/*-SNAPSHOT.jar app.jar -EXPOSE 8085 -ENTRYPOINT ["java", "-jar", "app.jar"] - diff --git a/dap-tool-payment/build.gradle b/dap-tool-payment/build.gradle deleted file mode 100644 index ee86f304..00000000 --- a/dap-tool-payment/build.gradle +++ /dev/null @@ -1,10 +0,0 @@ -plugins { - id 'org.springframework.boot' -} -dependencies { - implementation project(':dap-tool-core') -} -dependencies { - compileOnly 'org.projectlombok:lombok:1.18.32' - annotationProcessor 'org.projectlombok:lombok:1.18.32' -} diff --git a/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/dto/PaymentApprovalRequest.java b/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/dto/PaymentApprovalRequest.java deleted file mode 100644 index 616e0f4a..00000000 --- a/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/dto/PaymentApprovalRequest.java +++ /dev/null @@ -1,26 +0,0 @@ -package io.shinhanlife.dap.mcc.dto; - -import com.fasterxml.jackson.annotation.JsonInclude; -import lombok.Data; - -/** - * @package io.shinhanlife.dap.mcc.dto - * @className PaymentApprovalRequest - * @description AX HUB 시스템 처리 클래스 - * @author 0986406 - * @create 2026.09.01 - *
- * ---------- 개정이력 ----------
- * 수정일      수정자    수정내용
- * ---------- -------- ---------------------------
- * 2026.09.01  0986406    최초생성
- *
- * 
- */ -@Data -@JsonInclude(JsonInclude.Include.NON_NULL) -public class PaymentApprovalRequest { - private String accountNumber; - private long amount; - private String paymentMethod; -} diff --git a/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/dto/PaymentApprovalResponse.java b/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/dto/PaymentApprovalResponse.java deleted file mode 100644 index f0c1f71a..00000000 --- a/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/dto/PaymentApprovalResponse.java +++ /dev/null @@ -1,27 +0,0 @@ -package io.shinhanlife.dap.mcc.dto; - -import com.fasterxml.jackson.annotation.JsonInclude; -import lombok.Data; - -/** - * @package io.shinhanlife.dap.mcc.dto - * @className PaymentApprovalResponse - * @description AX HUB 시스템 처리 클래스 - * @author 0986406 - * @create 2026.09.01 - *
- * ---------- 개정이력 ----------
- * 수정일      수정자    수정내용
- * ---------- -------- ---------------------------
- * 2026.09.01  0986406    최초생성
- *
- * 
- */ -@Data -@JsonInclude(JsonInclude.Include.NON_NULL) -public class PaymentApprovalResponse { - private String status; - private String message; - private String transactionId; - private long approvedAmount; -} diff --git a/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/payment/DapToolPaymentApplication.java b/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/payment/DapToolPaymentApplication.java deleted file mode 100644 index ee06bc1c..00000000 --- a/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/payment/DapToolPaymentApplication.java +++ /dev/null @@ -1,30 +0,0 @@ -package io.shinhanlife.dap.mcc.payment; - - -/** - * @package io.shinhanlife.dap.mcc.payment - * @className DapToolPaymentApplication - * @description AX HUB 시스템 처리 클래스 - * @author 0986406 - * @create 2026.09.01 - *
- * ---------- 개정이력 ----------
- * 수정일      수정자    수정내용
- * ---------- -------- ---------------------------
- * 2026.09.01  0986406    최초생성
- * 
- * 
- */ -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.context.properties.ConfigurationPropertiesScan; -import org.springframework.cache.annotation.EnableCaching; - -@SpringBootApplication(scanBasePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib.adapter", "io.shinhanlife.dap.lib.mcp", "io.shinhanlife.dap.lib.config", "io.shinhanlife.dap.lib.integration"}) -@ConfigurationPropertiesScan(basePackages = {"io.shinhanlife.dap.mcc", "io.shinhanlife.dap.lib.adapter", "io.shinhanlife.dap.lib.mcp", "io.shinhanlife.dap.lib.config", "io.shinhanlife.dap.lib.integration"}) -@EnableCaching -public class DapToolPaymentApplication { - public static void main(String[] args) { - SpringApplication.run(DapToolPaymentApplication.class, args); - } -} diff --git a/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/service/PaymentApprovalService.java b/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/service/PaymentApprovalService.java deleted file mode 100644 index 12c96c50..00000000 --- a/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/service/PaymentApprovalService.java +++ /dev/null @@ -1,7 +0,0 @@ -package io.shinhanlife.dap.mcc.service; - -import io.shinhanlife.dap.mcc.dto.*; - -public interface PaymentApprovalService { - Object execute(PaymentApprovalRequest req); -} diff --git a/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/service/impl/PaymentApprovalServiceImpl.java b/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/service/impl/PaymentApprovalServiceImpl.java deleted file mode 100644 index 969fde52..00000000 --- a/dap-tool-payment/src/main/java/io/shinhanlife/dap/mcc/service/impl/PaymentApprovalServiceImpl.java +++ /dev/null @@ -1,57 +0,0 @@ -package io.shinhanlife.dap.mcc.service.impl; - -import io.shinhanlife.dap.lib.annotation.McpFunction; -import io.shinhanlife.dap.lib.annotation.McpTool; -import io.shinhanlife.dap.mcc.service.PaymentApprovalService; -import io.shinhanlife.dap.mcc.service.AbstractMcpToolService; -import io.shinhanlife.dap.mcc.dto.PaymentApprovalRequest; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; - -import java.util.Map; -import java.util.UUID; - -/** - * @package io.shinhanlife.dap.mcc.service - * @className PaymentApprovalService - * @description AX HUB 시스템 처리 클래스 - * @author 0986406 - * @create 2026.09.01 - *
- * ---------- 개정이력 ----------
- * 수정일      수정자    수정내용
- * ---------- -------- ---------------------------
- * 2026.09.01  0986406    최초생성
- * 
- * 
- */ -@Slf4j -@Service -@McpTool( - routingType = "MCI", - categoryKey = "payment" -) -public class PaymentApprovalServiceImpl extends AbstractMcpToolService implements PaymentApprovalService { - - @McpFunction(register = false, displayName = "paymentapproval 툴", name = "paymentapproval", - description = "결제 승인 처리", - prompt = "결제 승인 처리 해줘.", - mappingId = "PAY_001" - ) - @Override - public Object execute(PaymentApprovalRequest req) { - log.info("[Payment] 결제 승인 요청 수신. 계좌: {}, 금액: {}", req.getAccountNumber(), req.getAmount()); - - // 레거시 연동 - Map result = executeLegacy("MCI", "PAY_001", req); - - // 가짜 데이터 응답 매핑 (AI 에이전트가 그럴듯하게 보여주기 위함) - if ("SUCCESS".equals(result.get("status"))) { - result.put("transactionId", "TX_" + UUID.randomUUID().toString().substring(0, 8).toUpperCase()); - result.put("approvedAmount", req.getAmount()); - result.put("message", "결제가 성공적으로 승인되었습니다."); - } - - return result; - } -} diff --git a/dap-tool-payment/src/main/resources/application-dev.yml b/dap-tool-payment/src/main/resources/application-dev.yml deleted file mode 100644 index efc12152..00000000 --- a/dap-tool-payment/src/main/resources/application-dev.yml +++ /dev/null @@ -1,36 +0,0 @@ -# OCI ?대씪?곕뱶 ?섍꼍 ?꾩슜 ?ㅼ젙 -server: - port: ${PORT:8085} - -axhub: - gateway: - url: https://axhubmcp.devjun.net - -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 - -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 \ No newline at end of file diff --git a/dap-tool-payment/src/main/resources/application-local.yml b/dap-tool-payment/src/main/resources/application-local.yml deleted file mode 100644 index 13593bf4..00000000 --- a/dap-tool-payment/src/main/resources/application-local.yml +++ /dev/null @@ -1,39 +0,0 @@ -# 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 - -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: - security: - tenant-domains: - mcp-client-1: CUSTOMER,COMMON - mcp-client-2: ALL - -axhub: - gateway: - url: http://localhost:8081 - tool: - url: ${AXHUB_TOOL_URL:http://localhost:${server.port}} \ No newline at end of file diff --git a/dap-tool-payment/src/main/resources/application.yml b/dap-tool-payment/src/main/resources/application.yml deleted file mode 100644 index 8b9ecbdc..00000000 --- a/dap-tool-payment/src/main/resources/application.yml +++ /dev/null @@ -1,15 +0,0 @@ -server: - port: 8085 -spring: - application: - name: dap-tool-payment - profiles: - active: local -logging: - level: - org.apache.kafka: ERROR -mcp: - namespace: "" - security: - tenant-domains: - TESTER-DEV: ALL \ No newline at end of file diff --git a/dap-tool-payment/src/main/resources/logback-spring.xml b/dap-tool-payment/src/main/resources/logback-spring.xml deleted file mode 100644 index 94e367ca..00000000 --- a/dap-tool-payment/src/main/resources/logback-spring.xml +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - ${LOG_PATTERN} - - - - - - - - - /swlog/dap-tool-payment/A01/${HOSTNAME}_A01.log - - - /swlog/dap-tool-payment/A01/${HOSTNAME}_A01_%d{yyyyMMdd}.log - - 30 - - - ${LOG_PATTERN} - - - - - - - - - - - - diff --git a/dap-tool-payment/src/main/resources/static/index.html b/dap-tool-payment/src/main/resources/static/index.html deleted file mode 100644 index b8b20ae0..00000000 --- a/dap-tool-payment/src/main/resources/static/index.html +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - Payment Tool - - - -
-

💳 Payment Tool

-

Axhub Payment Module is successfully running!

-
- - diff --git a/docker-compose.yml b/docker-compose.yml index 4ffdeef7..afff4d04 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -46,7 +46,7 @@ services: nginx: image: nginx:latest ports: - - "8281:8281" + - "8080:8281" - "8282:8282" - "8283:8283" - "8284:8284" @@ -82,8 +82,6 @@ services: - SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local} - MCP_GATEWAY_FALLBACK_DEFAULT_URL=http://tool-other-blue:8084 - MCP_GATEWAY_FALLBACK_ROUTES_SMS=http://tool-sms-blue:8082 - - MCP_GATEWAY_FALLBACK_ROUTES_EMAIL=http://tool-email-blue:8083 - - MCP_GATEWAY_FALLBACK_ROUTES_PAYMENT=http://tool-payment-blue:8085 - MCP_GATEWAY_FALLBACK_ROUTES_HR=http://tool-other-blue:8084 tool-sms-blue: @@ -107,28 +105,6 @@ services: - GLOW_COMMUNICATION_EAI_HOMT=http://mci-mock - GLOW_COMMUNICATION_EAI_PORT=8080 - SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local} - - tool-email-blue: - build: - context: . - dockerfile: dap-tool-email/Dockerfile - depends_on: - - redis - environment: - - TZ=Asia/Seoul - - SPRING_REDIS_HOST=redis - - SPRING_REDIS_PORT=6379 - - SPRING_DATA_REDIS_PORT=6379 - - AXHUB_GATEWAY_URL=http://gateway-blue:8081 - - AXHUB_TOOL_URL=http://tool-email-blue:8083 - - GLOW_COMMUNICATION_MCI_HOMT=http://mci-mock - - GLOW_COMMUNICATION_MCI_PORT=8080 - - GLOW_COMMUNICATION_EXTMCI_HOMT=http://mci-mock - - GLOW_COMMUNICATION_EXTMCI_PORT=8080 - - GLOW_COMMUNICATION_EAI_HOMT=http://mci-mock - - GLOW_COMMUNICATION_EAI_PORT=8080 - - SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local} - tool-other-blue: build: context: . @@ -149,28 +125,6 @@ services: - GLOW_COMMUNICATION_EAI_HOMT=http://mci-mock - GLOW_COMMUNICATION_EAI_PORT=8080 - SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local} - - tool-payment-blue: - build: - context: . - dockerfile: dap-tool-payment/Dockerfile - depends_on: - - redis - environment: - - TZ=Asia/Seoul - - SPRING_REDIS_HOST=redis - - SPRING_REDIS_PORT=6379 - - SPRING_DATA_REDIS_PORT=6379 - - AXHUB_GATEWAY_URL=http://gateway-blue:8081 - - AXHUB_TOOL_URL=http://tool-payment-blue:8085 - - GLOW_COMMUNICATION_MCI_HOMT=http://mci-mock - - GLOW_COMMUNICATION_MCI_PORT=8080 - - GLOW_COMMUNICATION_EXTMCI_HOMT=http://mci-mock - - GLOW_COMMUNICATION_EXTMCI_PORT=8080 - - GLOW_COMMUNICATION_EAI_HOMT=http://mci-mock - - GLOW_COMMUNICATION_EAI_PORT=8080 - - SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local} - # ========================================== # GREEN SERVICES # ========================================== @@ -194,8 +148,6 @@ services: - SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local} - MCP_GATEWAY_FALLBACK_DEFAULT_URL=http://tool-other-green:8084 - MCP_GATEWAY_FALLBACK_ROUTES_SMS=http://tool-sms-green:8082 - - MCP_GATEWAY_FALLBACK_ROUTES_EMAIL=http://tool-email-green:8083 - - MCP_GATEWAY_FALLBACK_ROUTES_PAYMENT=http://tool-payment-green:8085 - MCP_GATEWAY_FALLBACK_ROUTES_HR=http://tool-other-green:8084 tool-sms-green: @@ -219,28 +171,6 @@ services: - GLOW_COMMUNICATION_EAI_HOMT=http://mci-mock - GLOW_COMMUNICATION_EAI_PORT=8080 - SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local} - - tool-email-green: - build: - context: . - dockerfile: dap-tool-email/Dockerfile - depends_on: - - redis - environment: - - TZ=Asia/Seoul - - SPRING_REDIS_HOST=redis - - SPRING_REDIS_PORT=6379 - - SPRING_DATA_REDIS_PORT=6379 - - AXHUB_GATEWAY_URL=http://gateway-green:8081 - - AXHUB_TOOL_URL=http://tool-email-green:8083 - - GLOW_COMMUNICATION_MCI_HOMT=http://mci-mock - - GLOW_COMMUNICATION_MCI_PORT=8080 - - GLOW_COMMUNICATION_EXTMCI_HOMT=http://mci-mock - - GLOW_COMMUNICATION_EXTMCI_PORT=8080 - - GLOW_COMMUNICATION_EAI_HOMT=http://mci-mock - - GLOW_COMMUNICATION_EAI_PORT=8080 - - SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local} - tool-other-green: build: context: . @@ -262,28 +192,6 @@ services: - GLOW_COMMUNICATION_EAI_PORT=8080 - SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local} - tool-payment-green: - build: - context: . - dockerfile: dap-tool-payment/Dockerfile - depends_on: - - redis - environment: - - TZ=Asia/Seoul - - SPRING_REDIS_HOST=redis - - SPRING_REDIS_PORT=6379 - - SPRING_DATA_REDIS_PORT=6379 - - AXHUB_GATEWAY_URL=http://gateway-green:8081 - - AXHUB_TOOL_URL=http://tool-payment-green:8085 - - GLOW_COMMUNICATION_MCI_HOMT=http://mci-mock - - GLOW_COMMUNICATION_MCI_PORT=8080 - - GLOW_COMMUNICATION_EXTMCI_HOMT=http://mci-mock - - GLOW_COMMUNICATION_EXTMCI_PORT=8080 - - GLOW_COMMUNICATION_EAI_HOMT=http://mci-mock - - GLOW_COMMUNICATION_EAI_PORT=8080 - - SPRING_PROFILES_ACTIVE=${ACTIVE_PROFILE:-local} - - diff --git a/nginx/conf.d/default.conf b/nginx/conf.d/default.conf index 41151918..26208a36 100644 --- a/nginx/conf.d/default.conf +++ b/nginx/conf.d/default.conf @@ -6,18 +6,10 @@ upstream tool-sms { server tool-sms-blue:8082; } -upstream tool-email { - server tool-email-blue:8083; -} - upstream tool-other { server tool-other-blue:8084; } -upstream tool-payment { - server tool-payment-blue:8085; -} - server { listen 8281; location / { @@ -36,15 +28,6 @@ server { } } -server { - listen 8283; - location / { - proxy_pass http://tool-email; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - } -} - server { listen 8284; location / { @@ -54,11 +37,3 @@ server { } } -server { - listen 8285; - location / { - proxy_pass http://tool-payment; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - } -} diff --git a/settings.gradle b/settings.gradle index b4d9ba3f..d8bd5482 100644 --- a/settings.gradle +++ b/settings.gradle @@ -3,6 +3,4 @@ rootProject.name = 'dap-admin' include 'dap-gateway' include 'dap-tool-core' include 'dap-tool-sms' -include 'dap-tool-email' include 'dap-tool-other' -include 'dap-tool-payment'