Commit Graph

74 Commits (internalApi)
 

Author SHA1 Message Date
박성영 9b5edc7993 fix: url 패턴에 맞춰 .ajax 사용 1 month ago
박성영 5b229d7f80 refactor: Mapper 스캔 설정 분리 (API vs 일반 프로젝트)
Mapper 중복 스캔 경고 해결 및 용도별 명확한 분리

## 문제
- DatabaseConfig에서 중복 패턴으로 Mapper 스캔
- "Bean already defined with the same name!" 경고 발생
- go.kr.project.**.mapper가 api.internal.mapper 포함하여 중복

## 해결
- DatabaseConfig → ApiMapperConfig로 변경 (API 전용)
- ProjectMapperConfig 신규 생성 (일반 프로젝트용)

## 변경사항
- ApiMapperConfig: go.kr.project.api.internal.mapper만 스캔
- ProjectMapperConfig: 일반 프로젝트 및 egovframework mapper 스캔
  - carInspectionPenalty.**.mapper
  - common.mapper
  - login.mapper
  - system.**.mapper
  - egovframework.**.mapper

## 최종 구조
- API 전용: ApiMapperConfig
- 일반 프로젝트: ProjectMapperConfig
- 중복 없이 명확하게 분리

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

Co-Authored-By: Claude <noreply@anthropic.com>
1 month ago
박성영 8757eb9e95 fix: TransactionManager Bean 충돌 해결 (egovframework 기본 설정 사용)
DatabaseConfig에서 중복 TransactionManager Bean 제거

## 문제
- DatabaseConfig.transactionManager와 EgovConfigTransaction.txManager 충돌
- "expected single matching bean but found 2" 에러 발생

## 해결
- DatabaseConfig에서 transactionManager Bean 제거
- egovframework의 txManager Bean 사용
- DatabaseConfig는 MapperScan만 담당

## 최종 설정
- DataSource: egovframework.config.DataSourceProxyConfig
- TransactionManager: egovframework.config.EgovConfigTransaction.txManager
- MapperScan: DatabaseConfig

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

Co-Authored-By: Claude <noreply@anthropic.com>
1 month ago
박성영 c8bf89b2e7 fix: MyBatis MapperScan 경로 업데이트 (패키지 이동 반영)
패키지 리팩토링 후 Mapper 스캔 경로 수정

## 변경사항
- @MapperScan 경로 업데이트
  - 기존: go.kr.project.vmis.mapper
  - 변경: go.kr.project.api.internal.mapper 포함 전체 mapper 패키지

## 수정 파일
- DatabaseConfig.java

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

Co-Authored-By: Claude <noreply@anthropic.com>
1 month ago
박성영 cf951cdc71 fix: 중복 디렉토리 구조 수정 (basic/basic, ledger/ledger, common/common 제거)
디렉토리 이동 후 발생한 중복 경로 정리

## 변경사항
- api/internal/model/basic/basic/* -> api/internal/model/basic/
- api/internal/model/ledger/ledger/* -> api/internal/model/ledger/
- api/internal/model/common/common/* -> api/internal/model/common/

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

Co-Authored-By: Claude <noreply@anthropic.com>
1 month ago
박성영 6819329a95 refactor: model 패키지 통합 (api/model -> api/internal/model)
패키지 구조 단순화

## 변경사항
- api/model -> api/internal/model로 이동
- BasicRequest/Response, LedgerRequest/Response는 internal 전용

## 최종 구조
```
api/
  ├── vo/              # 공통 응답 VO (external/internal 공유)
  ├── config/          # 공통 설정
  ├── VehicleInfoService
  ├── internal/
  │   ├── model/      # 모든 internal 모델
  │   │   ├── basic/  (BasicRequest, BasicResponse, VmisCarBassMatterInqireVO)
  │   │   ├── ledger/ (LedgerRequest, LedgerResponse, VmisCarLedgerFrmbkVO 등)
  │   │   └── common/ (Envelope)
  │   ├── client/
  │   ├── service/
  │   └── ...
  └── external/
      └── service/
```

## 장점
 패키지 구조 단순화
 internal 전용 모델은 internal 안에
 공통 VO만 api/vo에

빌드 성공 

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

Co-Authored-By: Claude <noreply@anthropic.com>
1 month ago
박성영 c3c8bbb024 refactor: 패키지 구조 개선 (api/internal, api/external)
VO 중복 해결 및 패키지 구조 명확화

## 주요 변경사항

### 패키지 구조 재구성
- `go.kr.project.vmis` → `go.kr.project.api.internal`
- `go.kr.project.externalApi` → `go.kr.project.api.external`
- 공통 모델: `go.kr.project.api.model`
- 공통 VO: `go.kr.project.api.vo`
- 공통 설정: `go.kr.project.api.config`

### 새로운 구조
```
go.kr.project.api/
  ├── model/              # 공통 모델
  │   ├── basic/          (BasicRequest, BasicResponse)
  │   ├── ledger/         (LedgerRequest, LedgerResponse)
  │   └── common/         (Envelope)
  ├── vo/                 # 공통 API 응답 VO
  │   ├── VehicleApiResponseVO
  │   ├── VehicleBasicInfoVO
  │   └── VehicleLedgerVO 등
  ├── config/             # 공통 설정
  │   ├── properties/     (VmisProperties)
  │   ├── ApiConstant
  │   ├── VmisIntegrationConfig
  │   └── DatabaseConfig
  ├── VehicleInfoService  # 공통 인터페이스
  ├── internal/           # 내부 모드 (기존 vmis)
  │   ├── client/
  │   ├── config/
  │   ├── controller/
  │   ├── gpki/
  │   ├── mapper/
  │   ├── model/          # 내부 전용 DB VO
  │   ├── service/
  │   └── util/
  └── external/           # 외부 모드 (기존 externalApi)
      └── service/
```

### VO 중복 제거
-  history 패키지와 api.internal 패키지의 VO 명확히 구분
-  공통 모델은 api.model에서 공유
-  Bean 충돌 완전 해결

### MyBatis 업데이트
- mapper 디렉토리: `mybatis/mapper/vmis` → `mybatis/mapper/api-internal`
- namespace: `go.kr.project.vmis` → `go.kr.project.api.internal`

### application.yml 업데이트
- mapper-locations: `api-internal/**/*_maria.xml`

## 장점
 패키지 구조 명확화 (internal/external 구분)
 공통 모델 공유로 중복 제거
 더 나은 아키텍처
 모드별 책임 명확

## 빌드 성공 확인 

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

Co-Authored-By: Claude <noreply@anthropic.com>
1 month ago
박성영 eb61cd9817 refactor: VMIS 패키지 클래스에 Vmis prefix 추가 (Bean 충돌 해결)
VO, Service, Mapper 클래스 이름 충돌 문제 해결

## 문제
- history 패키지와 vmis 패키지에 동일한 이름의 VO 클래스 존재
- CarBassMatterInqireVO, CarLedgerFrmbkVO, CarLedgerFrmbkDtlVO 충돌
- Bean 생성 오류 발생

## 해결
모든 VMIS 패키지 클래스에 Vmis prefix 추가:

### VO 클래스 (충돌 해결)
- CarBassMatterInqireVO → VmisCarBassMatterInqireVO
- CarLedgerFrmbkVO → VmisCarLedgerFrmbkVO
- CarLedgerFrmbkDtlVO → VmisCarLedgerFrmbkDtlVO

### Service 클래스
- CarBassMatterInqireService → VmisCarBassMatterInqireService
- CarBassMatterInqireLogService → VmisCarBassMatterInqireLogService
- CarLedgerFrmbkService → VmisCarLedgerFrmbkService
- CarLedgerFrmbkLogService → VmisCarLedgerFrmbkLogService
- RequestEnricher → VmisRequestEnricher

### Mapper 클래스
- CarBassMatterInqireMapper → VmisCarBassMatterInqireMapper
- CarLedgerFrmbkMapper → VmisCarLedgerFrmbkMapper

### MyBatis XML 업데이트
- mapper namespace 및 resultType 변경
- CarBassMatterInqireMapper_maria.xml
- CarLedgerFrmbkMapper_maria.xml

## 빌드 성공 확인 
- Bean 충돌 완전 해결
- 전체 컴파일 성공

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

Co-Authored-By: Claude <noreply@anthropic.com>
1 month ago
박성영 a2dc40a0d7 docs: VMIS 통합 완료 가이드 문서 추가
완료된 작업 요약 및 사용 가이드 문서

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

Co-Authored-By: Claude <noreply@anthropic.com>
1 month ago
박성영 be4c926029 feat: VMIS 통합 모드 전환 기능 구현 (Strategy Pattern)
내부/외부 API 호출을 YAML 설정으로 전환할 수 있는 Strategy Pattern 구현

## 주요 변경사항

### 1. Strategy Pattern 구현
- VehicleInfoService 인터페이스 생성 (공통 추상화)
- InternalVehicleInfoServiceImpl: 내부 VMIS 모듈 직접 호출
- ExternalVehicleInfoServiceImpl: 외부 REST API 호출
- @ConditionalOnProperty로 mode에 따라 Bean 자동 선택

### 2. Bean 충돌 해결
- HttpClientConfig의 restTemplate → vmisRestTemplate으로 변경
- GovernmentApiClient에 @Qualifier("vmisRestTemplate") 추가
- 기존 RestTemplateConfig와 충돌 방지

### 3. 설정 확장
- VmisProperties에 integration, external 속성 추가
- vmis.integration.mode: internal/external 설정 지원
- vmis.external.api.url: 외부 API 서버 URL 설정

### 4. 모델 변환 유틸리티
- VehicleResponseMapper 생성
- 내부 모델(BasicResponse, LedgerResponse) → 외부 VO 변환

### 5. 모니터링 및 로깅
- VmisIntegrationConfig: 시작 시 활성 모드 출력
- 각 구현체에 [Internal Mode]/[External Mode] 로그 추가

## 사용 방법

### Internal Mode (내부 모듈 직접 호출)
```yaml
vmis:
  integration:
    mode: internal
```

### External Mode (외부 REST API 호출)
```yaml
vmis:
  integration:
    mode: external
  external:
    api:
      url: http://localhost:8081/api/v1/vehicles
```

## 빌드 성공 확인 
- Bean 충돌 해결 완료
- 전체 컴파일 성공

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

Co-Authored-By: Claude <noreply@anthropic.com>
1 month ago
박성영 ebcd17a6f0 feat: VMIS-interface 통합 (Spring Boot 2.7 호환)
- VMIS-interface 전체 코드 이식 (33개 Java 파일, 2개 XML)
- 패키지 변경: com.vmis.interfaceapp → go.kr.project.vmis
- Spring Boot 3 → 2 호환: jakarta → javax
- Java 17 → 8 호환: Text Blocks, List.of() 제거
- HttpClient 5 → 4 변환
- GPKI 라이브러리 추가
- application.yml에 VMIS 설정 통합
- MyBatis 매퍼 경로 추가

빌드 성공 확인 

Co-Authored-By: Claude <noreply@anthropic.com>
1 month ago
박성영 6c677f7f69 VMIS-interface → VIPS 통합 작업 분석, 계획 문서
수정
1 month ago
박성영 b160476ddc 로그인 타이틀 변경 1 month ago
박성영 ba7b04b235 프로젝트 타이틀명 변경 1 month ago
박성영 1486df75be VMIS-interface → VIPS 통합 작업 분석, 계획 문서 작성 1 month ago
박성영 e782cdac5c RestTemplate 설정 추가 및 연결 풀, 타임아웃, Rate Limiting 기능 적용 1 month ago
박성영 36570132e4 설정 초기화 진행 중... 1 month ago
박성영 d653415d54 설정 초기화 진행 중... 1 month ago
박성영 59ff10783d 설정 초기화 진행 중... 1 month ago
박성영 1c43a6487d 설정 초기화 진행 중... 1 month ago
박성영 f7717cff8f 설정 초기화 진행 중... 1 month ago
박성영 a98753b8af 설정 초기화 진행 중... 1 month ago
박성영 710b2a1400 로고 관련 변경 1 month ago
박성영 f1ecbca216 용인시 수지구청 자동차 검사 과태료 시스템
최초 등록
1 month ago