Commit Graph

50 Commits (onlyExternalApi)

Author SHA1 Message Date
박성영 293933e0ba ### feat: `Step 0` 및 `Step 1` 공통 로직 도입과 검사 체커 로직 개선
- **공통 로직 추가**
  - **`Step 0`, `Step 1`**: `ComparisonOmServiceImpl` 및 `ComparisonServiceImpl`에 공통 API 호출 로직 추가.
    - `step0Response`(차량번호), `step1Response`(차대번호) 생성 및 유효성 검증 로직 추가.
    - 모든 Checker에서 해당 공통 데이터를 활용 가능하도록 수정.

- **체커 순서 변경 및 메서드 개선**
  - [**미필**] 이첩 순서 변경: 기존 3번 → 2번으로 조정, 명의이전 확인 순서 조정.
  - [**지연**] 이첩 순서 변경: 기존 6번 → 4번으로 조정.
  - 기존 Checker 메서드에 공통화된 **`step0Response`, `step1Response`** 전달하도록 메서드 시그니처 업데이트.
  - 중복된 API 호출 제거 및 공통 데이터 활용으로 효율성 증가.

- **불필요 로직 제거 및 코드 정리**
  - 각 체커별 중복된 `Step 0`, `Step 1` API 호출 삭제.
  - 공통 응답 데이터 재활용.
  - 주석 보완 및 처리 흐름 가독성 강화.

- **DB 업데이트 관련 로직 명확화**
  - `이첩` 관련 처리 코드(시군구명, 법정동명) 구현 방식 및 String 결과 형식 문서화.

- **기타**
  - 문서 수정: `docs/자동차과태료_비교로직_정리-[미필/지연].md` 최종 수정일 업데이트.
  - 체커 순서 변경에 따른 처리 로직 및 데이터 흐름도 재정리.
2 days ago
박성영 8259bd8d46 ### feat: MariaDB 성능 최적화 가이드 추가 및 스레드 풀/Connection Pool 설정 개선
- **새로운 MariaDB 성능 최적화 가이드 작성**
  - `docs/MariaDB 성능 최적화 가이드.md` 추가:
    - 최적화 목적: 처리 시간 **14~15분 → 8~10분** 단축.
    - MariaDB 설정(`my.cnf`) 및 애플리케이션 설정(`application-prd.yml`) 최적화 방안 제공.
    - 주요 설정 내용:
      - **Connection Pool**: 최대 풀 크기 40 → 35, 최소 유휴 커넥션 10 → 15로 변경.
      - **MariaDB 배치 최적화**: `rewriteBatchedStatements`, `useServerPrepStmts` 활성화.
      - **InnoDB 버퍼**: **3GB** 설정 (16GB 메모리 기준).
      - **I/O 스레드 최적화**: 쓰기/읽기 스레드 수 각각 4개로 설정.
    - 설정 백업/적용/롤백 방법 및 성능 모니터링 방법 자세히 설명.
    - 참고로 추가 최적화(인덱스, SSD, 슬로우 쿼리) 전략 포함.

- **스레드 풀 크기 최적화**
  - **I/O 작업 스레드 풀 크기 변경**:
    - `CarFfnlgTrgtIncmpServiceImpl` 및 `CarFfnlgTrgtServiceImpl`:
      - 4코어 환경 기준 스레드 풀 크기 **CPU 코어 수 × 4**로 변경(8 → 16).
      - 메모리 안정성 및 병렬 처리 성능 최적화.

- **애플리케이션 Connection Pool 설정 수정**
  - `application-prd.yml` 수정:
    - 최대 풀 크기: **40 → 35** (스레드 풀 크기에 맞춰 조정).
    - 최소 유휴 커넥션: **10 → 15**.
    - Batch 성능 향상을 위해 MariaDB 배치 최적화 설정 추가:
      - `rewriteBatchedStatements`, `useServerPrepStmts`, `cachePrepStmts`, `prepStmtCacheSize`, `prepStmtCacheSqlLimit`.

- **기타**
  - 모든 설정이 안정성 최우선을 목표로 작성.
  - 로직 최적화 및 설정 변경이 기존 환경에 미치는 영향을 최소화하기 위해 적용 방법 세부화.
  - 문서 및 주석 보완으로 설정 이해도를 향상.
2 days ago
박성영 bc0d2e4128 ### feat: MariaDB 데이터베이스 백업 문서 추가
- **백업 가이드 추가**
  - `docs/용인 장애인 서버에서 관리 방법.md`에 **MariaDB 데이터베이스 백업** 섹션(`6.`) 추가:
    - 백업 디렉토리 생성 방법 명시.
    - 백업 스크립트 작성 및 권한 부여 절차 설명.
    - Crontab 설정을 통한 자동화 백업 방법(매일 밤 12시) 추가.

- **백업 스크립트 상세**
  - 데이터베이스 백업 파일 생성 및 압축, 30일 지난 백업 파일 삭제를 포함한 스크립트 제공.
  - 성공 및 실패 로그 기록 기능 포함.

- **관리 명령어 제공**
  - 수동 백업 수행, 백업 파일 확인, 로그 조회, 복원 명령어 등 추가 명세.

- **기타**
  - 백업 스크립트 실행 및 관리 명령어 내용을 문서에 명확하게 기록.
  - MariaDB 관리와 백업 프로세스를 쉽게 이해할 수 있도록 섹션 및 내용 구성.
2 days ago
박성영 9c6f16e4b2 ### feat: 명의이전일자 및 검사일 비교 로직 수정
- **명의이전일자 ~ 검사일 계산 조건 보완**
  - `명의이전일자 < 검사종료일` 조건을 추가하여 검사종료일에 따른 비교 로직 세분화.
  - 검사일과 명의이전일자 간 기준 일수 비교 조건 명확화:
    - 검사종료일 기준 조건 추가.
    - 명의이전일자가 검사일 내 포함되는지 확인 로직 개선.

- **적용 대상**
  - `OwnerCloseWithin31Checker`
  - `OwnerLevyOver31Checker`
  - `ProductCloseWithin31Checker`
  - `ProductLevyOver31Checker`

- **로그 레벨 조정**
  - `TransferOmChecker` 관련 `log.debug`를 `log.info`로 변경하여 로그 가시성 강화.

- **문서 업데이트**
  - `자동차과태료_비교로직_정리-[지연].md`에 관련 변경사항 반영:
    - 명의이전일자 비교 기준 및 로직 설명 수정.

- **기타**
  - 중복 코드 제거 및 가독성을 위한 리팩토링.
  - 검사일자의 파싱 처리 및 최신 명의이전일자 계산 로직 정리.
6 days ago
박성영 dde9bf4c02 feat: 과태료 대상 비교 로직 병렬 처리 및 트랜잭션 관리 개선
- **병렬 처리 도입**
  - 대상 데이터 처리 작업을 병렬화하여 성능 최적화
  - CPU 코어 수의 2배 스레드 풀 생성 및 `CompletableFuture` 활용

- **트랜잭션 단위 변경**
  - 기존: 전체 트랜잭션으로 관리, 하나의 실패 시 전체 롤백
  - 변경: 개별 대상별 트랜잭션 적용, 실패 데이터만 롤백

- **통계 및 로그 추가**
  - 성공/실패, 유형별 처리 건수(상품용, 이첩, 정상 등) 통계 데이터 제공
  - 병렬 처리 상태 및 작업 내역 로그 추가

- **기타**
  - `TransactionTemplate` 도입 및 가독성을 위한 코드 리팩토링
  - 문서 업데이트 (`자동차과태료_비교로직_정리-[미필].md`, `자동차과태료_비교로직_정리-[지연].md`)
6 days ago
박성영 914f61256b ### feat: 차량번호 및 소유자명 처리 로직 개선, 특수문자 제거 처리 추가
- **소유자명 검증 보완**
  - 소유자명은 null 또는 공백 입력도 가능하도록 로직 수정
  - 길이 초과(75자) 제한만 유효하게 유지

- **특수문자 '*' 제거 처리 추가**
  - 차량번호 및 일수(`daycnt`)에서 전출차량 및 재검여부를 나타내는 '*' 제거 후 검증
  - `createLedgerRequest`, `createBasicRequest` 등 차량번호를 사용하는 API 호출 로직에 적용
  - 숫자값 검증 및 비교 수행 시 특수문자 제거 처리 추가

- **차량번호 형식 검증 로직 보완**
  - '*' 특수문자 포함 여부를 허용하도록 정규식 및 검증 프로세스 수정
  - '*'만 포함된 경우는 유효하지 않도록 처리

- **Comparison 로직 수정**
  - 비교 로직 시작 시 차량번호 및 일수에서 '*' 제거 기능 추가

- **샘플 데이터 수정**
  - 샘플 데이터 파일 수정 (`docs/지연-샘플용-utf-8-1.txt`)
  - 차량번호 및 일수에서 전출차량 및 재검여부를 나타내는 '*' 적용 예시 추가

- **기타**
  - 가독성을 위한 주석 정리 및 로직 구조 개선
6 days ago
박성영 d5286a509e feat: 상품용 및 명의이전 로직 보완
- **상품용(ProductUseOmChecker)**
  - 부과일자 소유자가 상품용인 경우의 검증 로직 보완
  - 명의이전(11) 레코드 조건에 `CHG_YMD <= 검사유효기간 종료일 + 31일` 추가

- **명의이전(OwnerTransferOmChecker)**
  - 명의이전 검증 시 `CHG_YMD > 검사유효기간 종료일 + 31일` 로 변경

- **문서 업데이트**
  - 비교로직 문서 (`자동차과태료_비교로직_정리-[미필].md`) 수정
  - 주요 변경사항 및 로직 설명 수정

- **기타**
  - 불필요 파일(CarFfnlgTrgtIncmpController.java.bak) 삭제
1 week ago
박성영 fb120ed4a5 로직 오류 수정 및 보완 1 week ago
박성영 45041c36de 필요없는 파일 삭제 및 sql 재정의 1 week ago
박성영 36a3041a36 미필 명의이전 오류 수정 1 week ago
박성영 d41a2975d3 미필 비교로직 MD 파일 작성 1 week ago
박성영 7be3d97430 지연 - 로그 및 주석 로직에 맞춰 수정 1 week ago
박성영 7985785bd4 지연 - 비교로직 재정의 1 week ago
박성영 c85deef5ee 지연 - 비교로직 재정의 1 week ago
박성영 36e1831153 미필 작업 진행 중... 2 weeks ago
박성영 20312693c6 미필 일단 업로드까진 완료 2 weeks ago
박성영 6521e3e09b PRN 파일 확장자명으로 수정 2 weeks ago
박성영 26129a1dbc 신규로직 상품용-변경등록 2 weeks ago
박성영 3b9a2476b2 신규로직 상품용-변경등록 2 weeks ago
박성영 cba0b44cd6 doc 정리 진행중.... 2 weeks ago
박성영 57eaef2809 일단... 커밋... 2 weeks ago
박성영 40100a8f37 비교 로직 정의 중... 2 weeks ago
박성영 e20aeba146 엑셀다운로드 추가, 로직 md 파일 재정의 2 weeks ago
박성영 8e13313d57 명의이전 상품용 적용 2 weeks ago
박성영 c4e5f0419a 명의이전 상품용 적용 2 weeks ago
박성영 2745927092 상품용 비교 로직 재수정... 진행중... 3 weeks ago
박성영 158d9f438c Date관련 함수 수정 3 weeks ago
박성영 f1551ab525 서버관리 명령어 정리,
간단한 소스 수정,
dump 파일 재등록
3 weeks ago
박성영 44b31ca509 ECU-KR 3 weeks ago
박성영 c8af0cccbe 주석 위치 수정 3 weeks ago
박성영 69d93f29f4 셋팅 변경 3 weeks ago
박성영 86b5c6047d 셋팅 변경 3 weeks ago
박성영 daffa75db9 셋팅 변경 3 weeks ago
박성영 4a4b7eedee 셋팅 변경 3 weeks ago
박성영 00508ded0f 셋팅 변경 3 weeks ago
박성영 7ccd94a93d 다시 정리중... 4 weeks ago
박성영 d2cd43a951 회사 내부 vmware test 4 weeks ago
박성영 7883cb3b42 전체적인 데이터 구조 작업 진행중...
현재 임시 커밋.. 나머지 로직 수정예정,
현재 부팅안됨
4 weeks ago
박성영 bbfdb1fe2d table 정리 4 weeks ago
박성영 704083da07 외부호출만 있는 프로젝트로 변경 작업 진행중... 4 weeks ago
박성영 e128e126be 외부호출만 있는 프로젝트로 변경 작업 진행중... 4 weeks ago
박성영 298f1fe27f 비교로직 정리 4 weeks ago
박성영 b3b4bb2034 비교로직 정리 4 weeks ago
박성영 708544506f 비교로직 정리 4 weeks ago
박성영 0cd1b5c68f 설정명령어 정보 추가 4 weeks ago
박성영 8a469c1d1b 비교로직 재정의 진행중... 4 weeks ago
박성영 732a977b67 상품용, 이첩 TEST CASE 작성, 테스트 진행 1 month ago
박성영 a745683c09 txt 다운로드 1 month ago
박성영 ed04c2ae65 초기 셋팅 1 month ago
박성영 2f03f11782 docs: VMIS API 통합 아키텍처 상세 문서 추가
API 패키지 구조, Internal/External 패턴, 데이터 흐름 상세 설명

## 문서 내용
- API 패키지 전체 구조 및 각 구성요소 설명
- Strategy Pattern을 통한 Internal/External 모드 전환
- 각 모드별 상세 동작 원리 및 데이터 흐름
- 설정 가이드 및 사용 예제
- 트러블슈팅 및 성능 최적화 가이드

## 주요 섹션
1. 개요 및 설계 원칙
2. 패키지 구조 (디렉토리 트리)
3. 아키텍처 패턴 (Strategy, DI, 계층화)
4. Internal Mode 상세 (GPKI, 정부 API 연동)
5. External Mode 상세 (REST API 호출)
6. 공통 구성요소 (VO, Properties, Config)
7. 데이터 흐름 다이어그램
8. 설정 가이드 (개발/운영 환경)
9. 사용 예제 (Controller, Service)
10. 모드 전환 시나리오
11. 트러블슈팅
12. 성능 최적화
13. 보안 고려사항
14. 확장 가능성

## 파일 위치
docs/API_ARCHITECTURE.md

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

Co-Authored-By: Claude <noreply@anthropic.com>
1 month ago