refactor: API 모델 완전 통합 (vo + internal/model -> model)

중복 제거 및 단일 모델 구조로 통합

## 변경사항

### 통합된 구조
```
api/model/
├── Envelope.java                    # 공통 Envelope
├── VehicleApiResponseVO.java        # 최상위 응답
├── request/                         # 요청 모델
│   ├── BasicRequest.java           # 기본정보 요청
│   └── LedgerRequest.java          # 등록원부 요청
└── response/                        # 응답 모델
    ├── BasicResponse.java          # 기본정보 응답
    ├── LedgerResponse.java         # 등록원부 응답
    ├── VehicleBasicInfoVO.java     # 기본정보 VO
    ├── VehicleLedgerVO.java        # 등록원부 VO
    ├── VmisCarBassMatterInqireVO.java
    ├── VmisCarLedgerFrmbkVO.java
    └── VmisCarLedgerFrmbkDtlVO.java
```

### 제거된 중복 패키지
-  api/vo/ (삭제)
-  api/internal/model/ (삭제)

### 효과
- Internal/External 모두 **동일한 모델** 사용
- 중복 없는 **단일 진실 공급원**
- 패키지 구조 단순화 및 명확화

## 빌드 결과
 BUILD SUCCESSFUL

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
internalApi
박성영 1 month ago
parent cecb99e87f
commit 8c16d6cdf6

@ -1,6 +1,6 @@
package go.kr.project.api;
import go.kr.project.api.vo.VehicleApiResponseVO;
import go.kr.project.api.model.VehicleApiResponseVO;
import java.util.List;

@ -1,8 +1,8 @@
package go.kr.project.api.external.service;
import go.kr.project.api.internal.model.basic.BasicRequest;
import go.kr.project.api.internal.model.ledger.LedgerRequest;
import go.kr.project.api.vo.*;
import go.kr.project.api.model.request.BasicRequest;
import go.kr.project.api.model.request.LedgerRequest;
import go.kr.project.api.model.*; import go.kr.project.api.model.response.*;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.ParameterizedTypeReference;

@ -1,7 +1,7 @@
package go.kr.project.api.external.service;
import go.kr.project.api.VehicleInfoService;
import go.kr.project.api.vo.VehicleApiResponseVO;
import go.kr.project.api.model.VehicleApiResponseVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;

@ -1,10 +1,10 @@
package go.kr.project.api.internal.client;
import go.kr.project.api.internal.model.basic.BasicRequest;
import go.kr.project.api.internal.model.basic.BasicResponse;
import go.kr.project.api.vo.Envelope;
import go.kr.project.api.internal.model.ledger.LedgerRequest;
import go.kr.project.api.internal.model.ledger.LedgerResponse;
import go.kr.project.api.model.request.BasicRequest;
import go.kr.project.api.model.response.BasicResponse;
import go.kr.project.api.model.Envelope;
import go.kr.project.api.model.request.LedgerRequest;
import go.kr.project.api.model.response.LedgerResponse;
import org.springframework.http.ResponseEntity;
/**

@ -4,11 +4,11 @@ import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import go.kr.project.api.config.properties.VmisProperties;
import go.kr.project.api.internal.gpki.GpkiService;
import go.kr.project.api.internal.model.basic.BasicRequest;
import go.kr.project.api.internal.model.basic.BasicResponse;
import go.kr.project.api.vo.Envelope;
import go.kr.project.api.internal.model.ledger.LedgerRequest;
import go.kr.project.api.internal.model.ledger.LedgerResponse;
import go.kr.project.api.model.request.BasicRequest;
import go.kr.project.api.model.response.BasicResponse;
import go.kr.project.api.model.Envelope;
import go.kr.project.api.model.request.LedgerRequest;
import go.kr.project.api.model.response.LedgerResponse;
import go.kr.project.api.internal.util.TxIdUtil;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Qualifier;

@ -1,10 +1,10 @@
package go.kr.project.api.internal.controller;
import go.kr.project.api.internal.model.basic.BasicRequest;
import go.kr.project.api.internal.model.basic.BasicResponse;
import go.kr.project.api.vo.Envelope;
import go.kr.project.api.internal.model.ledger.LedgerRequest;
import go.kr.project.api.internal.model.ledger.LedgerResponse;
import go.kr.project.api.model.request.BasicRequest;
import go.kr.project.api.model.response.BasicResponse;
import go.kr.project.api.model.Envelope;
import go.kr.project.api.model.request.LedgerRequest;
import go.kr.project.api.model.response.LedgerResponse;
import go.kr.project.api.internal.service.VmisCarBassMatterInqireService;
import go.kr.project.api.internal.service.VmisCarLedgerFrmbkService;
import io.swagger.v3.oas.annotations.Operation;

@ -1,6 +1,6 @@
package go.kr.project.api.internal.mapper;
import go.kr.project.api.internal.model.basic.VmisCarBassMatterInqireVO;
import go.kr.project.api.model.response.VmisCarBassMatterInqireVO;
import org.apache.ibatis.annotations.Mapper;
/**

@ -1,7 +1,7 @@
package go.kr.project.api.internal.mapper;
import go.kr.project.api.internal.model.ledger.VmisCarLedgerFrmbkDtlVO;
import go.kr.project.api.internal.model.ledger.VmisCarLedgerFrmbkVO;
import go.kr.project.api.model.response.VmisCarLedgerFrmbkDtlVO;
import go.kr.project.api.model.response.VmisCarLedgerFrmbkVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;

@ -1,14 +1,14 @@
package go.kr.project.api.internal.service;
import go.kr.project.api.VehicleInfoService;
import go.kr.project.api.vo.VehicleApiResponseVO;
import go.kr.project.api.vo.VehicleBasicInfoVO;
import go.kr.project.api.vo.VehicleLedgerVO;
import go.kr.project.api.internal.model.basic.BasicRequest;
import go.kr.project.api.internal.model.basic.BasicResponse;
import go.kr.project.api.vo.Envelope;
import go.kr.project.api.internal.model.ledger.LedgerRequest;
import go.kr.project.api.internal.model.ledger.LedgerResponse;
import go.kr.project.api.model.VehicleApiResponseVO;
import go.kr.project.api.model.response.VehicleBasicInfoVO;
import go.kr.project.api.model.response.VehicleLedgerVO;
import go.kr.project.api.model.request.BasicRequest;
import go.kr.project.api.model.response.BasicResponse;
import go.kr.project.api.model.Envelope;
import go.kr.project.api.model.request.LedgerRequest;
import go.kr.project.api.model.response.LedgerResponse;
import go.kr.project.api.internal.util.VehicleResponseMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

@ -1,7 +1,7 @@
package go.kr.project.api.internal.service;
import go.kr.project.api.internal.mapper.VmisCarBassMatterInqireMapper;
import go.kr.project.api.internal.model.basic.VmisCarBassMatterInqireVO;
import go.kr.project.api.model.response.VmisCarBassMatterInqireVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

@ -3,10 +3,10 @@ package go.kr.project.api.internal.service;
import go.kr.project.api.internal.client.GovernmentApi;
import go.kr.project.api.config.ApiConstant;
import go.kr.project.api.internal.util.ExceptionDetailUtil;
import go.kr.project.api.internal.model.basic.BasicRequest;
import go.kr.project.api.internal.model.basic.BasicResponse;
import go.kr.project.api.internal.model.basic.VmisCarBassMatterInqireVO;
import go.kr.project.api.vo.Envelope;
import go.kr.project.api.model.request.BasicRequest;
import go.kr.project.api.model.response.BasicResponse;
import go.kr.project.api.model.response.VmisCarBassMatterInqireVO;
import go.kr.project.api.model.Envelope;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;

@ -1,8 +1,8 @@
package go.kr.project.api.internal.service;
import go.kr.project.api.internal.mapper.VmisCarLedgerFrmbkMapper;
import go.kr.project.api.internal.model.ledger.VmisCarLedgerFrmbkDtlVO;
import go.kr.project.api.internal.model.ledger.VmisCarLedgerFrmbkVO;
import go.kr.project.api.model.response.VmisCarLedgerFrmbkDtlVO;
import go.kr.project.api.model.response.VmisCarLedgerFrmbkVO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

@ -2,11 +2,11 @@ package go.kr.project.api.internal.service;
import go.kr.project.api.internal.client.GovernmentApi;
import go.kr.project.api.config.ApiConstant;
import go.kr.project.api.vo.Envelope;
import go.kr.project.api.internal.model.ledger.VmisCarLedgerFrmbkDtlVO;
import go.kr.project.api.internal.model.ledger.VmisCarLedgerFrmbkVO;
import go.kr.project.api.internal.model.ledger.LedgerRequest;
import go.kr.project.api.internal.model.ledger.LedgerResponse;
import go.kr.project.api.model.Envelope;
import go.kr.project.api.model.response.VmisCarLedgerFrmbkDtlVO;
import go.kr.project.api.model.response.VmisCarLedgerFrmbkVO;
import go.kr.project.api.model.request.LedgerRequest;
import go.kr.project.api.model.response.LedgerResponse;
import go.kr.project.api.internal.util.ExceptionDetailUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;

@ -1,9 +1,9 @@
package go.kr.project.api.internal.service;
import go.kr.project.api.config.properties.VmisProperties;
import go.kr.project.api.internal.model.basic.BasicRequest;
import go.kr.project.api.vo.Envelope;
import go.kr.project.api.internal.model.ledger.LedgerRequest;
import go.kr.project.api.model.request.BasicRequest;
import go.kr.project.api.model.Envelope;
import go.kr.project.api.model.request.LedgerRequest;
import org.springframework.stereotype.Component;
import lombok.extern.slf4j.Slf4j;

@ -1,9 +1,9 @@
package go.kr.project.api.internal.util;
import go.kr.project.api.vo.VehicleBasicInfoVO;
import go.kr.project.api.vo.VehicleLedgerVO;
import go.kr.project.api.internal.model.basic.BasicResponse;
import go.kr.project.api.internal.model.ledger.LedgerResponse;
import go.kr.project.api.model.response.VehicleBasicInfoVO;
import go.kr.project.api.model.response.VehicleLedgerVO;
import go.kr.project.api.model.response.BasicResponse;
import go.kr.project.api.model.response.LedgerResponse;
import java.util.ArrayList;
import java.util.Collections;

@ -1,4 +1,4 @@
package go.kr.project.api.vo;
package go.kr.project.api.model;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

@ -1,5 +1,7 @@
package go.kr.project.api.vo;
package go.kr.project.api.model;
import go.kr.project.api.model.response.VehicleBasicInfoVO;
import go.kr.project.api.model.response.VehicleLedgerVO;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Getter;

@ -1,4 +1,4 @@
package go.kr.project.api.internal.model.basic;
package go.kr.project.api.model.request;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

@ -1,4 +1,4 @@
package go.kr.project.api.internal.model.ledger;
package go.kr.project.api.model.request;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;

@ -1,4 +1,4 @@
package go.kr.project.api.internal.model.basic;
package go.kr.project.api.model.response;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

@ -1,4 +1,4 @@
package go.kr.project.api.internal.model.ledger;
package go.kr.project.api.model.response;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

@ -1,4 +1,4 @@
package go.kr.project.api.vo;
package go.kr.project.api.model.response;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

@ -1,4 +1,4 @@
package go.kr.project.api.vo;
package go.kr.project.api.model.response;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;

@ -1,7 +1,8 @@
package go.kr.project.api.internal.model.basic;
package go.kr.project.api.model.response;
import go.kr.project.api.config.ApiConstant;
import go.kr.project.api.vo.Envelope;
import go.kr.project.api.model.Envelope;
import go.kr.project.api.model.request.BasicRequest;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;

@ -1,4 +1,4 @@
package go.kr.project.api.internal.model.ledger;
package go.kr.project.api.model.response;
import go.kr.project.api.config.ApiConstant;
import lombok.AllArgsConstructor;

@ -1,4 +1,4 @@
package go.kr.project.api.internal.model.ledger;
package go.kr.project.api.model.response;
import go.kr.project.api.config.ApiConstant;
import lombok.AllArgsConstructor;
@ -18,7 +18,7 @@ import lombok.NoArgsConstructor;
public class VmisCarLedgerFrmbkVO {
// ==== Static factory/mapping methods (moved from Service) ====
public static VmisCarLedgerFrmbkVO fromRequest(go.kr.project.api.internal.model.ledger.LedgerRequest request) {
public static VmisCarLedgerFrmbkVO fromRequest(go.kr.project.api.model.request.LedgerRequest request) {
return VmisCarLedgerFrmbkVO.builder()
.infoSysId(request.getInfoSysId())
.infoSysIp(request.getInfoSysIp())
@ -32,7 +32,7 @@ public class VmisCarLedgerFrmbkVO {
.build();
}
public static VmisCarLedgerFrmbkVO fromResponseMaster(String id, go.kr.project.api.internal.model.ledger.LedgerResponse res) {
public static VmisCarLedgerFrmbkVO fromResponseMaster(String id, go.kr.project.api.model.response.LedgerResponse res) {
return VmisCarLedgerFrmbkVO.builder()
.carLedgerFrmbkId(id) // 등록원부 ID
.cntcResultCode(res.getCntcResultCode()) // 연계 결과 코드

@ -3,7 +3,7 @@ package go.kr.project.carInspectionPenalty.search.Controller;
import egovframework.constant.TilesConstants;
import egovframework.util.ApiResponseUtil;
import go.kr.project.api.external.service.ExternalVehicleApiService;
import go.kr.project.api.vo.VehicleApiResponseVO;
import go.kr.project.api.model.VehicleApiResponseVO;
import go.kr.project.common.service.CommonCodeService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;

Loading…
Cancel
Save