refactor: apply MSA naming standard for DTOs and Scaffold template (Req->Request, Res->Response)
Some checks failed
Deploy to OCIWP / deploy (push) Failing after 30s

This commit is contained in:
jade
2026-07-24 10:07:50 +09:00
parent 438c190447
commit fc8c3da666
63 changed files with 205 additions and 171 deletions

View File

@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.dto;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className BalanceReq
* @className BalanceRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -19,7 +19,7 @@ import io.shinhanlife.dap.mcc.annotation.McpParameter;
import lombok.Data;
@Data
public class BalanceReq {
public class BalanceRequest {
@McpParameter(description = "고객의 계좌번호 (- 제외)", required = true)
private String accountNumber;
}

View File

@@ -3,7 +3,7 @@ package io.shinhanlife.dap.mcc.dto;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className BalanceRes
* @className BalanceResponse
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -18,7 +18,7 @@ package io.shinhanlife.dap.mcc.dto;
import lombok.Data;
@Data
public class BalanceRes {
public class BalanceResponse {
private String status;
private String message;
private String accountNumber;

View File

@@ -10,7 +10,7 @@ import lombok.Setter;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className BillingProcessReq
* @className BillingProcessRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -27,7 +27,7 @@ import lombok.Setter;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BillingProcessReq {
public class BillingProcessRequest {
@McpParameter(description = "처리할 청구 접수 번호", required = true)
private String billingId;

View File

@@ -10,7 +10,7 @@ import lombok.Setter;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className BillingStatusReq
* @className BillingStatusRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -27,7 +27,7 @@ import lombok.Setter;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BillingStatusReq {
public class BillingStatusRequest {
@McpParameter(description = "조회할 청구 접수 번호", required = true)
private String billingId;

View File

@@ -10,7 +10,7 @@ import lombok.Setter;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className BondCheckReq
* @className BondCheckRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -27,7 +27,7 @@ import lombok.Setter;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BondCheckReq {
public class BondCheckRequest {
@McpParameter(description = "확인하고자 하는 디지털 증권 발행 금액", required = true)
private Long amount;

View File

@@ -10,7 +10,7 @@ import lombok.Setter;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className BondIssueReq
* @className BondIssueRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -27,7 +27,7 @@ import lombok.Setter;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class BondIssueReq {
public class BondIssueRequest {
@McpParameter(description = "발행할 디지털 증권 금액", required = true)
private Long amount;

View File

@@ -10,7 +10,7 @@ import lombok.Setter;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className ContractDetailReq
* @className ContractDetailRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -27,7 +27,7 @@ import lombok.Setter;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ContractDetailReq {
public class ContractDetailRequest {
@McpParameter(description = "고객명", required = true)
private String customerName;

View File

@@ -10,7 +10,7 @@ import lombok.Setter;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className ContractStatusReq
* @className ContractStatusRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -27,7 +27,7 @@ import lombok.Setter;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class ContractStatusReq {
public class ContractStatusRequest {
@McpParameter(description = "고객명", required = true)
private String customerName;

View File

@@ -10,7 +10,7 @@ import lombok.Setter;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className CustomerDetailReq
* @className CustomerDetailRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -27,7 +27,7 @@ import lombok.Setter;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CustomerDetailReq {
public class CustomerDetailRequest {
@McpParameter(description = "고객명", required = true)
private String customerName;

View File

@@ -10,7 +10,7 @@ import lombok.Setter;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className CustomerGradeReq
* @className CustomerGradeRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -27,7 +27,7 @@ import lombok.Setter;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CustomerGradeReq {
public class CustomerGradeRequest {
@McpParameter(description = "고객 이름 (예: 김신한)", required = true)
private String customerName;

View File

@@ -10,7 +10,7 @@ import lombok.Setter;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className LeaveCountReq
* @className LeaveCountRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -27,7 +27,7 @@ import lombok.Setter;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LeaveCountReq {
public class LeaveCountRequest {
@McpParameter(description = "연차 내역을 조회할 사원 번호", required = true)
private String employeeId;

View File

@@ -7,14 +7,14 @@ import java.util.List;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className MciSampleStringRes
* @className MciSampleStringResponse
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
*/
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MciSampleStringRes {
public class MciSampleStringResponse {
@GlowMciFieldInfo(order = 1, length = 10, description = "이름")
private String name;

View File

@@ -12,7 +12,7 @@ import lombok.Data;
* @create 2026.09.01
*/
@Data
public class Onnba3011Req {
public class Onnba3011Request {
@JsonPropertyDescription("통합기계약보험 (유형: gs, 길이: 72)")
@JsonProperty("unfcPrbuIrcoAddu")
@@ -39,8 +39,8 @@ public class Onnba3011Req {
private String unfcPvsCalReqYn;
@JsonPropertyDescription("한국신용정보 (길이: 1)")
@JsonProperty("kcisPymmTnnrReq")
private String kcisPymmTnnrReq;
@JsonProperty("kcisPymmTnnrRequest")
private String kcisPymmTnnrRequest;
@JsonPropertyDescription("한도초과여부 (길이: 1)")
@JsonProperty("lmovYn")

View File

@@ -5,7 +5,7 @@ import lombok.Data;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className SampleStringReq
* @className SampleStringRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -19,6 +19,6 @@ import lombok.Data;
*/
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SampleStringReq {
public class SampleStringRequest {
private String query;
}

View File

@@ -6,7 +6,7 @@ import lombok.Data;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className SampleStringRes
* @className SampleStringResponse
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -20,7 +20,7 @@ import lombok.Data;
*/
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SampleStringRes {
public class SampleStringResponse {
@GlowTrgmField(order = 1, length = 10, description = "이름")
private String name;

View File

@@ -9,7 +9,7 @@ import lombok.ToString;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className TemplateDownloadReq
* @className TemplateDownloadRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -26,7 +26,7 @@ import lombok.ToString;
@ToString
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@AllArgsConstructor
public class TemplateDownloadReq {
public class TemplateDownloadRequest {
/**
* 다운로드할 템플릿의 종류 ID (: CUSTOMER_EXCEL, PRODUCT_PDF )

View File

@@ -10,7 +10,7 @@ import lombok.Setter;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className VacationRegisterReq
* @className VacationRegisterRequest
* @description AX HUB 시스템 처리 클래스
* @author 0986406
* @create 2026.09.01
@@ -27,7 +27,7 @@ import lombok.Setter;
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class VacationRegisterReq {
public class VacationRegisterRequest {
@McpParameter(description = "연차를 등록할 사원 번호", required = true)
private String employeeId;

View File

@@ -5,7 +5,7 @@ import com.fasterxml.jackson.annotation.JsonPropertyDescription;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className WeatherReq
* @className WeatherRequest
* @description 기상 조회 요청 클래스
* @author 0986406
* @create 2026.07.14
@@ -17,7 +17,7 @@ import com.fasterxml.jackson.annotation.JsonPropertyDescription;
*
* </pre>
*/
public record WeatherReq(
public record WeatherRequest(
@JsonProperty(required = true, value = "city")
@JsonPropertyDescription("날씨를 조회할 도시 이름 (예: 서울, 부산, 제주)")
String city

View File

@@ -2,7 +2,7 @@ package io.shinhanlife.dap.mcc.dto;
/**
* @package io.shinhanlife.dap.mcc.dto
* @className WeatherRes
* @className WeatherResponse
* @description 기상 조회 응답 클래스
* @author 0986406
* @create 2026.07.14
@@ -14,7 +14,7 @@ package io.shinhanlife.dap.mcc.dto;
*
* </pre>
*/
public record WeatherRes(
public record WeatherResponse(
String city,
double temperature,
double windSpeed,

View File

@@ -1,7 +1,7 @@
package io.shinhanlife.dap.mcc.infra.itrf.mci.cfp.a.io;
import io.shinhanlife.dap.common.integration.mci.component.AxhubMciComponent;
import io.shinhanlife.dap.mcc.dto.Onnba3011Req;
import io.shinhanlife.dap.mcc.dto.Onnba3011Request;
import io.shinhanlife.glow.communication.dto.Transfer;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -46,7 +46,7 @@ public class MciCfpaClient {
* @param inDto 입력 DTO
* @return 출력 객체
*/
public Object callCfpa0001(Onnba3011Req inDto) throws Exception {
public Object callCfpa0001(Onnba3011Request inDto) throws Exception {
// 인터페이스 호출
Transfer<Object> resTransfer = mci.callTo(INTERFACE_CODE, inDto, Object.class);

View File

@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface BalanceService {
Object execute(BalanceReq req);
Object execute(BalanceRequest req);
}

View File

@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface BillingProcessService {
Object getStatus(BillingStatusReq req);
Object getStatus(BillingStatusRequest req);
}

View File

@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface BondIssueService {
Object check(BondCheckReq req);
Object check(BondCheckRequest req);
}

View File

@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface CommonUtilityService {
Object registerVacation(VacationRegisterReq req);
Object registerVacation(VacationRegisterRequest req);
}

View File

@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface ContractInquiryService {
Object getStatus(ContractStatusReq req);
Object getStatus(ContractStatusRequest req);
}

View File

@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface CustomerInfoService {
Object getGrade(CustomerGradeReq req);
Object getGrade(CustomerGradeRequest req);
}

View File

@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface DailyQuoteToolService {
io.shinhanlife.dap.mcc.service.impl.DailyQuoteToolServiceImpl.DailyQuoteRes execute(io.shinhanlife.dap.mcc.service.impl.DailyQuoteToolServiceImpl.DailyQuoteReq req);
io.shinhanlife.dap.mcc.service.impl.DailyQuoteToolServiceImpl.DailyQuoteResponse execute(io.shinhanlife.dap.mcc.service.impl.DailyQuoteToolServiceImpl.DailyQuoteRequest req);
}

View File

@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface ExchangeRateToolService {
io.shinhanlife.dap.mcc.service.impl.ExchangeRateToolServiceImpl.ExchangeRateRes execute(io.shinhanlife.dap.mcc.service.impl.ExchangeRateToolServiceImpl.ExchangeRateReq req);
io.shinhanlife.dap.mcc.service.impl.ExchangeRateToolServiceImpl.ExchangeRateResponse execute(io.shinhanlife.dap.mcc.service.impl.ExchangeRateToolServiceImpl.ExchangeRateRequest req);
}

View File

@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface OnnbaMciToolService {
Object callOnnba3011(Onnba3011Req req);
Object callOnnba3011(Onnba3011Request req);
}

View File

@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface SampleStringToolService {
Object execute(SampleStringReq req);
Object execute(SampleStringRequest req);
}

View File

@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface TemplateUtilityService {
java.util.Map<String, Object> getTemplateFileUrl(TemplateDownloadReq req);
java.util.Map<String, Object> getTemplateFileUrl(TemplateDownloadRequest req);
}

View File

@@ -3,5 +3,5 @@ package io.shinhanlife.dap.mcc.service;
import io.shinhanlife.dap.mcc.dto.*;
public interface WeatherToolService {
WeatherRes execute(WeatherReq req);
WeatherResponse execute(WeatherRequest req);
}

View File

@@ -19,7 +19,7 @@ import io.shinhanlife.dap.mcc.annotation.McpFunction;
import io.shinhanlife.dap.mcc.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.BalanceService;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.BalanceReq;
import io.shinhanlife.dap.mcc.dto.BalanceRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -36,7 +36,7 @@ public class BalanceServiceImpl extends AbstractMcpToolService implements Balanc
mappingId = "ACC_001"
)
@Override
public Object execute(BalanceReq req) {
public Object execute(BalanceRequest req) {
log.info("[Balance] 계좌 잔액 조회 요청 수신. 계좌번호: {}", req.getAccountNumber());
// 레거시 연동

View File

@@ -6,8 +6,8 @@ import io.shinhanlife.dap.mcc.annotation.McpFunction;
import io.shinhanlife.dap.mcc.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.BillingProcessService;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.BillingProcessReq;
import io.shinhanlife.dap.mcc.dto.BillingStatusReq;
import io.shinhanlife.dap.mcc.dto.BillingProcessRequest;
import io.shinhanlife.dap.mcc.dto.BillingStatusRequest;
import java.util.HashMap;
import java.util.Map;
@@ -35,12 +35,12 @@ public class BillingProcessServiceImpl extends AbstractMcpToolService implements
@McpFunction(register = false, displayName = "status 툴", name = "status", description = "청구심사 상태 조회", prompt = "현재 접수된 청구건 상태를 알려줘.", mappingId = "BILL_001")
@Override
public Object getStatus(BillingStatusReq data) {
public Object getStatus(BillingStatusRequest data) {
return executeBillingLogic("BILL_001", data);
}
@McpFunction(register = false, displayName = "process 툴", name = "process", description = "청구 처리", prompt = "현재 접수된 청구건에 대한 심사 처리를 진행해.", mappingId = "BILL_002")
public Object processBilling(BillingProcessReq data) {
public Object processBilling(BillingProcessRequest data) {
return executeBillingLogic("BILL_002", data);
}

View File

@@ -4,8 +4,8 @@ import io.shinhanlife.dap.mcc.annotation.McpFunction;
import io.shinhanlife.dap.mcc.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.BondIssueService;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.BondCheckReq;
import io.shinhanlife.dap.mcc.dto.BondIssueReq;
import io.shinhanlife.dap.mcc.dto.BondCheckRequest;
import io.shinhanlife.dap.mcc.dto.BondIssueRequest;
@McpTool(
routingType = "EAI",
@@ -29,12 +29,12 @@ public class BondIssueServiceImpl extends AbstractMcpToolService implements Bond
@McpFunction(displayName = "check 툴", name = "check", register = false, description = "발행 가능 여부 조회 테스트", prompt = "디지털 증권 발행 한도가 충분한지 확인해줘.", mappingId = "BOND_001")
@Override
public Object check(BondCheckReq data) {
public Object check(BondCheckRequest data) {
return executeLegacy("EAI", "BOND_001", data);
}
@McpFunction(displayName = "issue 툴", name = "issue", register = false, description = "증권 발행 테스트1", prompt = "디지털 증권 발행 프로세스를 실행해.", mappingId = "BOND_002")
public Object issue(BondIssueReq data) {
public Object issue(BondIssueRequest data) {
return executeLegacy("EAI", "BOND_002", data);
}
}

View File

@@ -4,8 +4,8 @@ import io.shinhanlife.dap.mcc.annotation.McpFunction;
import io.shinhanlife.dap.mcc.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.CommonUtilityService;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.LeaveCountReq;
import io.shinhanlife.dap.mcc.dto.VacationRegisterReq;
import io.shinhanlife.dap.mcc.dto.LeaveCountRequest;
import io.shinhanlife.dap.mcc.dto.VacationRegisterRequest;
@McpTool(
routingType = "HTTP",
@@ -29,17 +29,17 @@ public class CommonUtilityServiceImpl extends AbstractMcpToolService implements
@McpFunction(register = false, displayName = "register_vacation 툴", name = "register_vacation", description = "휴가 등록", prompt = "내일 하루 연차 휴가를 등록해줘.", mappingId = "HR_VAC_01")
@Override
public Object registerVacation(VacationRegisterReq data) {
public Object registerVacation(VacationRegisterRequest data) {
return executeLegacy("HTTP", "HR_VAC_01", data);
}
@McpFunction(register = false, displayName = "get_leave_count 툴", name = "get_leave_count", description = "연차 갯수 조회", prompt = "현재 사용 가능한 남은 연차 일수를 알려줘.", mappingId = "HR_VAC_02")
public Object getLeaveCount(LeaveCountReq data) {
public Object getLeaveCount(LeaveCountRequest data) {
return executeLegacy("HTTP", "HR_VAC_02", data);
}
@McpFunction(register = false, displayName = "secret_tool 툴", name = "secret_tool", description = "비공개 툴 테스트", prompt = "숨겨진 툴 강제 호출", mappingId = "SECRET_001", visible = false)
public Object secretTool(LeaveCountReq data) {
public Object secretTool(LeaveCountRequest data) {
return executeLegacy("HTTP", "SECRET_001", data);
}

View File

@@ -4,8 +4,8 @@ import io.shinhanlife.dap.mcc.annotation.McpFunction;
import io.shinhanlife.dap.mcc.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.ContractInquiryService;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.ContractDetailReq;
import io.shinhanlife.dap.mcc.dto.ContractStatusReq;
import io.shinhanlife.dap.mcc.dto.ContractDetailRequest;
import io.shinhanlife.dap.mcc.dto.ContractStatusRequest;
@McpTool(
routingType = "HTTP",
@@ -29,12 +29,12 @@ public class ContractInquiryServiceImpl extends AbstractMcpToolService implement
@McpFunction(register = false, displayName = "contract_status 툴", name = "contract_status", description = "계약상태 조회", prompt = "김신한 고객의 현재 계약 상태를 조회해줘.", mappingId = "CNTR_001")
@Override
public Object getStatus(ContractStatusReq data) {
public Object getStatus(ContractStatusRequest data) {
return executeLegacy("HTTP", "CNTR_001", data);
}
@McpFunction(register = false, displayName = "contract_detail 툴", name = "contract_detail", description = "계약상세 조회", prompt = "김신한 고객의 계약 상세 내역을 알려줘.", mappingId = "CNTR_002")
public Object getDetail(ContractDetailReq data) {
public Object getDetail(ContractDetailRequest data) {
return executeLegacy("HTTP", "CNTR_002", data);
}
}

View File

@@ -4,8 +4,8 @@ import io.shinhanlife.dap.mcc.annotation.McpFunction;
import io.shinhanlife.dap.mcc.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.CustomerInfoService;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.CustomerDetailReq;
import io.shinhanlife.dap.mcc.dto.CustomerGradeReq;
import io.shinhanlife.dap.mcc.dto.CustomerDetailRequest;
import io.shinhanlife.dap.mcc.dto.CustomerGradeRequest;
@McpTool(
routingType = "TCP",
@@ -29,12 +29,12 @@ public class CustomerInfoServiceImpl extends AbstractMcpToolService implements C
@McpFunction(register = false, displayName = "grade 툴", name = "grade", description = "고객등급 조회", prompt = "이 고객의 VIP 등급을 조회해줘.", mappingId = "CRM_001")
@Override
public Object getGrade(CustomerGradeReq req) {
public Object getGrade(CustomerGradeRequest req) {
return executeLegacy("TCP", "CRM_001", req);
}
@McpFunction(register = false, displayName = "detail 툴", name = "detail", description = "고객상세 정보 조회", prompt = "이 고객의 상세 기본정보(주소, 연락처 등)를 알려줘.", mappingId = "CRM_002")
public Object getDetail(CustomerDetailReq data) {
public Object getDetail(CustomerDetailRequest data) {
return executeLegacy("TCP", "CRM_002", data);
}
}

View File

@@ -32,14 +32,14 @@ import java.util.Random;
)
public class DailyQuoteToolServiceImpl extends AbstractMcpToolService implements DailyQuoteToolService {
public record DailyQuoteReq(String category) {}
public record DailyQuoteRes(String quote, String author) {}
public record DailyQuoteRequest(String category) {}
public record DailyQuoteResponse(String quote, String author) {}
private final List<DailyQuoteRes> quotes = List.of(
new DailyQuoteRes("성공은 매일 반복한 작은 노력들의 합이다.", "로버트 콜리어"),
new DailyQuoteRes("시작이 반이다.", "아리스토텔레스"),
new DailyQuoteRes("포기하지 않는 한 실패는 없다.", "알베르트 아인슈타인"),
new DailyQuoteRes("가장 큰 위험은 위험 없는 삶이다.", "스티븐 코비")
private final List<DailyQuoteResponse> quotes = List.of(
new DailyQuoteResponse("성공은 매일 반복한 작은 노력들의 합이다.", "로버트 콜리어"),
new DailyQuoteResponse("시작이 반이다.", "아리스토텔레스"),
new DailyQuoteResponse("포기하지 않는 한 실패는 없다.", "알베르트 아인슈타인"),
new DailyQuoteResponse("가장 큰 위험은 위험 없는 삶이다.", "스티븐 코비")
);
@McpFunction(register = false, displayName = "랜덤 명언 툴", name = "daily_quote",
@@ -47,9 +47,9 @@ public class DailyQuoteToolServiceImpl extends AbstractMcpToolService implements
prompt = "오늘의 명언 하나 알려줘, 동기부여 명언 등",
mappingId = "QUOTE_001"
)
public DailyQuoteRes execute(DailyQuoteReq req) {
public DailyQuoteResponse execute(DailyQuoteRequest req) {
int index = new Random().nextInt(quotes.size());
DailyQuoteRes selected = quotes.get(index);
DailyQuoteResponse selected = quotes.get(index);
log.info("[DailyQuoteTool] 명언 제공 완료: {}", selected.author());
return selected;

View File

@@ -30,8 +30,8 @@ import org.springframework.web.client.RestClient;
)
public class ExchangeRateToolServiceImpl extends AbstractMcpToolService implements ExchangeRateToolService {
public record ExchangeRateReq(String currencyCode) {}
public record ExchangeRateRes(String baseCurrency, String targetCurrency, double rate) {}
public record ExchangeRateRequest(String currencyCode) {}
public record ExchangeRateResponse(String baseCurrency, String targetCurrency, double rate) {}
private final RestClient restClient;
@@ -44,7 +44,7 @@ public class ExchangeRateToolServiceImpl extends AbstractMcpToolService implemen
prompt = "현재 달러 환율 알려줘, 엔화 환율은?",
mappingId = "EXCHANGE_001"
)
public ExchangeRateRes execute(ExchangeRateReq req) {
public ExchangeRateResponse execute(ExchangeRateRequest req) {
String targetCurrency = req.currencyCode() != null ? req.currencyCode().toUpperCase().trim() : "USD";
// 간단한 모의 데이터로 반환 (실제 구현 시 외부 연동)
@@ -56,6 +56,6 @@ public class ExchangeRateToolServiceImpl extends AbstractMcpToolService implemen
}
log.info("[ExchangeRateTool] 환율 조회 완료: {} -> {}", targetCurrency, dummyRate);
return new ExchangeRateRes("KRW", targetCurrency, dummyRate);
return new ExchangeRateResponse("KRW", targetCurrency, dummyRate);
}
}

View File

@@ -5,7 +5,7 @@ import io.shinhanlife.dap.mcc.annotation.McpFunction;
import io.shinhanlife.dap.mcc.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.OnnbaMciToolService;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.Onnba3011Req;
import io.shinhanlife.dap.mcc.dto.Onnba3011Request;
import io.shinhanlife.glow.communication.dto.Transfer;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -49,7 +49,7 @@ public class OnnbaMciToolServiceImpl implements OnnbaMciToolService {
mappingId = INTERFACE_CODE_3011
)
@Override
public Object callOnnba3011(Onnba3011Req req) {
public Object callOnnba3011(Onnba3011Request req) {
log.info("[MCI Tool] 보종By가입설계한도계산조회 요청 수신.");
try {

View File

@@ -4,8 +4,8 @@ import io.shinhanlife.dap.mcc.annotation.McpFunction;
import io.shinhanlife.dap.mcc.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.SampleStringToolService;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.MciSampleStringRes;
import io.shinhanlife.dap.mcc.dto.SampleStringReq;
import io.shinhanlife.dap.mcc.dto.MciSampleStringResponse;
import io.shinhanlife.dap.mcc.dto.SampleStringRequest;
import io.shinhanlife.glow.util.GlowMciParser;
import org.springframework.stereotype.Service;
@@ -39,7 +39,7 @@ public class SampleStringToolServiceImpl extends AbstractMcpToolService implemen
mappingId = "TRGM_001"
)
@Override
public Object execute(SampleStringReq req) {
public Object execute(SampleStringRequest req) {
// 1. EIMS(Legacy)를 통해 원본 고정 길이 문자열을 받아옵니다.
// 스펙에 mciFormat = STRING 힌트를 주어 전문 통신으로 자동 분기되게 합니다.
List<Map<String, Object>> spec = List.of(
@@ -54,6 +54,6 @@ public class SampleStringToolServiceImpl extends AbstractMcpToolService implemen
String rawStringResponse = (String) result.get("legacy_response");
// 2. 받아온 고정 길이 전문(String)을 GlowMciParser를 이용해 DTO로 파싱합니다.
return GlowMciParser.parse(rawStringResponse, MciSampleStringRes.class);
return GlowMciParser.parse(rawStringResponse, MciSampleStringResponse.class);
}
}

View File

@@ -4,7 +4,7 @@ import io.shinhanlife.dap.mcc.annotation.McpFunction;
import io.shinhanlife.dap.mcc.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.TemplateUtilityService;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.TemplateDownloadReq;
import io.shinhanlife.dap.mcc.dto.TemplateDownloadRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@@ -39,7 +39,7 @@ public class TemplateUtilityServiceImpl extends AbstractMcpToolService implement
description = "특정 템플릿의 양식 파일(엑셀, 워드 등)을 다운로드 받을 수 있는 시스템 URL을 반환합니다. AI는 이 URL을 사용자에게 마크다운 링크 형태로 제공해야 합니다.",
prompt = "요청하신 템플릿 양식 파일 다운로드 URL은 다음과 같습니다. 클릭하여 다운로드하세요:"
)
public Map<String, Object> getTemplateFileUrl(TemplateDownloadReq data) {
public Map<String, Object> getTemplateFileUrl(TemplateDownloadRequest data) {
try {
String templateId = (data != null && data.getTemplateId() != null) ? data.getTemplateId().toLowerCase() : "default";
log.info("MCP 툴 호출됨: get_template_file_url, 요청 템플릿 ID: {}", templateId);

View File

@@ -6,8 +6,8 @@ import io.shinhanlife.dap.mcc.annotation.McpFunction;
import io.shinhanlife.dap.mcc.annotation.McpTool;
import io.shinhanlife.dap.mcc.service.WeatherToolService;
import io.shinhanlife.dap.mcc.service.AbstractMcpToolService;
import io.shinhanlife.dap.mcc.dto.WeatherReq;
import io.shinhanlife.dap.mcc.dto.WeatherRes;
import io.shinhanlife.dap.mcc.dto.WeatherRequest;
import io.shinhanlife.dap.mcc.dto.WeatherResponse;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestClient;
@@ -48,7 +48,7 @@ public class WeatherToolServiceImpl extends AbstractMcpToolService implements We
prompt = "서울 날씨 알려줘, 부산 기온 알려줘 등 실시간 기상 조회",
mappingId = "WEATHER_001"
)
public WeatherRes execute(WeatherReq req) {
public WeatherResponse execute(WeatherRequest req) {
String city = req.city() != null ? req.city().trim() : "서울";
// 지역별 위경도 매핑 (간단한 예시)
@@ -95,14 +95,14 @@ public class WeatherToolServiceImpl extends AbstractMcpToolService implements We
String formattedTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm"));
return new WeatherRes(city, temp, windSpeed, formattedTime, summary);
return new WeatherResponse(city, temp, windSpeed, formattedTime, summary);
}
} catch (Exception e) {
log.error("[WeatherTool] 날씨 API 연동 실패: {}", e.getMessage());
return new WeatherRes(city, 0.0, 0.0, "", "날씨 정보를 불러오는데 실패했습니다.");
return new WeatherResponse(city, 0.0, 0.0, "", "날씨 정보를 불러오는데 실패했습니다.");
}
return new WeatherRes(city, 0.0, 0.0, "", "알 수 없는 응답입니다.");
return new WeatherResponse(city, 0.0, 0.0, "", "알 수 없는 응답입니다.");
}
private String parseWeatherCode(int code) {