parent
9480c30bf3
commit
7883cb3b42
@ -0,0 +1,357 @@
|
||||
# DB DDL 및 VO, XML Mapper 변경사항 정리
|
||||
|
||||
작업일: 2025-11-21
|
||||
|
||||
## 개요
|
||||
|
||||
테이블 DDL의 컬럼 추가 및 변경에 따라 관련 VO, XML Mapper, API 매핑 메소드를 전반적으로 확인 및 수정하였습니다.
|
||||
|
||||
---
|
||||
|
||||
## 1. tb_car_ledger_frmbk (자동차 등록 원부 갑)
|
||||
|
||||
### 1.1 DDL 변경사항
|
||||
- **추가된 컬럼**:
|
||||
- `DRIV_SRGBTRY_IDNTF_NO` (varchar(20)) - 구동축전지 식별번호
|
||||
|
||||
- **기존 컬럼**: PRCS_IMPRTY_RSN_CD, PRCS_IMPRTY_RSN_DTLS
|
||||
- 기존 VO 및 Mapper에서 잘못된 컬럼명 사용 중이었음 (PROCESS_IMPRTY_RESN_CODE → PRCS_IMPRTY_RSN_CD)
|
||||
|
||||
### 1.2 VmisCarLedgerFrmbkVO.java 수정사항
|
||||
|
||||
**파일 경로**: `src/main/java/go/kr/project/api/model/response/VmisCarLedgerFrmbkVO.java`
|
||||
|
||||
#### 추가된 필드
|
||||
```java
|
||||
private String drivSrgbtryIdntfNo; // DRIV_SRGBTRY_IDNTF_NO
|
||||
```
|
||||
|
||||
#### 수정된 필드 (필드명 변경)
|
||||
```java
|
||||
// 변경 전
|
||||
private String processImprtyResnCode; // PROCESS_IMPRTY_RESN_CODE (잘못된 컬럼명)
|
||||
private String processImprtyResnDtls; // PROCESS_IMPRTY_RESN_DTLS (잘못된 컬럼명)
|
||||
|
||||
// 변경 후
|
||||
private String prcsImprtyRsnCd; // PRCS_IMPRTY_RSN_CD
|
||||
private String prcsImprtyRsnDtls; // PRCS_IMPRTY_RSN_DTLS
|
||||
```
|
||||
|
||||
#### fromNewResponseMaster 메소드 수정
|
||||
|
||||
NewLedgerResponse의 실제 필드명에 맞게 getter 메소드 호출 수정:
|
||||
|
||||
```java
|
||||
// 변경 전 (잘못된 getter 메소드명 - 구버전 필드명 사용)
|
||||
.ledgerIndivNo(response.getLedgerIndvdlzNo()) // ❌
|
||||
.carmdlAsortCd(response.getVhctyAsortCode()) // ❌
|
||||
.atmbNm(response.getCnm()) // ❌
|
||||
.colorCd(response.getColorCode()) // ❌
|
||||
.nopltSpcfctCd(response.getNmplStndrdCode()) // ❌
|
||||
.usgSeCd(response.getPrposSeCode()) // ❌
|
||||
.acqsAmt(response.getAcqsAmount()) // ❌
|
||||
.regDtlCd(response.getRegistDetailCode()) // ❌
|
||||
.frstRegYmd(response.getFrstRegistDe()) // ❌
|
||||
.veagEndYmd(response.getCaagEndde()) // ❌
|
||||
.yridnw(response.getPrye()) // ❌
|
||||
.fbctnYmd(response.getYblMd()) // ❌
|
||||
.drvngDstnc(response.getTrvlDstnc()) // ❌
|
||||
... (등 60여 개 필드)
|
||||
|
||||
// 변경 후 (올바른 getter 메소드명 - 신규 필드명 사용)
|
||||
.ledgerIndivNo(response.getLedgerIndivNo()) // ✅
|
||||
.carmdlAsortCd(response.getCarmdlAsortCd()) // ✅
|
||||
.atmbNm(response.getAtmbNm()) // ✅
|
||||
.colorCd(response.getColorCd()) // ✅
|
||||
.nopltSpcfctCd(response.getNopltSpcfctCd()) // ✅
|
||||
.usgSeCd(response.getUsgSeCd()) // ✅
|
||||
.acqsAmt(response.getAcqsAmt()) // ✅
|
||||
.regDtlCd(response.getRegDtlCd()) // ✅
|
||||
.frstRegYmd(response.getFrstRegYmd()) // ✅
|
||||
.veagEndYmd(response.getVeagEndYmd()) // ✅
|
||||
.yridnw(response.getYridnw()) // ✅
|
||||
.fbctnYmd(response.getFbctnYmd()) // ✅
|
||||
.drvngDstnc(response.getDrvngDstnc()) // ✅
|
||||
.issuNo(response.getIssuNo()) // ✅ 추가
|
||||
.frstTrnsfrYmd(response.getFrstTrnsfrYmd()) // ✅ 추가
|
||||
.drivSrgbtryIdntfNo(response.getDrivSrgbtryIdntfNo()) // ✅ 추가
|
||||
... (등 64개 필드)
|
||||
```
|
||||
|
||||
### 1.3 CarLedgerFrmbkMapper_maria.xml 수정사항
|
||||
|
||||
**파일 경로**: `src/main/resources/mybatis/mapper/api/CarLedgerFrmbkMapper_maria.xml`
|
||||
|
||||
#### updateCarLedgerFrmbk 수정
|
||||
```xml
|
||||
<!-- 추가 -->
|
||||
<if test="drivSrgbtryIdntfNo != null">DRIV_SRGBTRY_IDNTF_NO = #{drivSrgbtryIdntfNo},</if>
|
||||
|
||||
<!-- 수정 -->
|
||||
<!-- 변경 전 -->
|
||||
<if test="processImprtyResnCode != null">PROCESS_IMPRTY_RESN_CODE = #{processImprtyResnCode},</if>
|
||||
<if test="processImprtyResnDtls != null">PROCESS_IMPRTY_RESN_DTLS = #{processImprtyResnDtls},</if>
|
||||
|
||||
<!-- 변경 후 -->
|
||||
<if test="prcsImprtyRsnCd != null">PRCS_IMPRTY_RSN_CD = #{prcsImprtyRsnCd},</if>
|
||||
<if test="prcsImprtyRsnDtls != null">PRCS_IMPRTY_RSN_DTLS = #{prcsImprtyRsnDtls},</if>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. tb_car_ledger_frmbk_dtl (자동차 등록 원부 갑 상세)
|
||||
|
||||
### 2.1 DDL 변경사항
|
||||
- **추가된 컬럼**:
|
||||
- `HSHLDR_NM` (varchar(75)) - 세대주명
|
||||
- `HSHLDR_IDECNO` (varchar(500)) - 세대주개인암호화번호
|
||||
|
||||
### 2.2 VmisCarLedgerFrmbkDtlVO.java 수정사항
|
||||
|
||||
**파일 경로**: `src/main/java/go/kr/project/api/model/response/VmisCarLedgerFrmbkDtlVO.java`
|
||||
|
||||
#### 추가된 필드
|
||||
```java
|
||||
private String hshldrNm; // HSHLDR_NM
|
||||
private String hshldrIdecno; // HSHLDR_IDECNO
|
||||
```
|
||||
|
||||
#### 매핑 메소드 수정 (listNewFromExchange)
|
||||
|
||||
NewLedgerResponse.Record 클래스의 필드명이 변경됨에 따라 매핑 메소드 수정:
|
||||
|
||||
```java
|
||||
// 변경 전 (잘못된 필드명)
|
||||
.szrRmvDtlSn(record.getMainchk())
|
||||
.chgTaskSeCd(record.getChangeJobSeCode())
|
||||
.mainNo(record.getMainno())
|
||||
.sno(record.getSubno())
|
||||
.spcablMttr(record.getDtls())
|
||||
.aplyRcptNo(record.getRqrcno())
|
||||
.ledgerIndivNo(record.getLedgerIndvdlzNo())
|
||||
.chgTaskSeNm(record.getGubunNm())
|
||||
.chgYmd(record.getChangeDe())
|
||||
.dtlSn(record.getDetailSn())
|
||||
|
||||
// 변경 후 (올바른 필드명)
|
||||
.szrRmvDtlSn(record.getSzrRmvDtlSn())
|
||||
.chgTaskSeCd(record.getChgTaskSeCd())
|
||||
.mainNo(record.getMainNo())
|
||||
.sno(record.getSno())
|
||||
.spcablMttr(record.getSpcablMttr())
|
||||
.hshldrNm(record.getHshldrNm()) // 신규 추가
|
||||
.hshldrIdecno(record.getHshldrIdecno()) // 신규 추가
|
||||
.aplyRcptNo(record.getAplyRcptNo())
|
||||
.ledgerIndivNo(record.getLedgerIndivNo())
|
||||
.chgTaskSeNm(record.getChgTaskSeNm())
|
||||
.chgYmd(record.getChgYmd())
|
||||
.dtlSn(record.getDtlSn())
|
||||
```
|
||||
|
||||
#### 매핑 메소드 수정 (fromRecord)
|
||||
|
||||
동일하게 NewLedgerResponse.Record 매핑 수정 및 신규 필드 추가
|
||||
|
||||
### 2.3 CarLedgerFrmbkMapper_maria.xml 수정사항
|
||||
|
||||
**파일 경로**: `src/main/resources/mybatis/mapper/api/CarLedgerFrmbkMapper_maria.xml`
|
||||
|
||||
#### insertCarLedgerFrmbkDtl 수정
|
||||
```xml
|
||||
<!-- 컬럼 추가 -->
|
||||
HSHLDR_NM,
|
||||
HSHLDR_IDECNO,
|
||||
|
||||
<!-- VALUES 추가 -->
|
||||
#{hshldrNm},
|
||||
#{hshldrIdecno},
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. tb_car_ffnlg_trgt (자동차 과태료 대상)
|
||||
|
||||
### 3.1 변경사항
|
||||
- DDL과 VO(CarFfnlgTrgtVO.java) 비교 결과 일치함
|
||||
- 수정 불필요
|
||||
|
||||
---
|
||||
|
||||
## 4. tb_car_bass_matter_inqire (자동차 기본 사항 조회)
|
||||
|
||||
### 4.1 VmisCarBassMatterInqireVO.java 수정사항
|
||||
|
||||
**파일 경로**: `src/main/java/go/kr/project/api/model/response/VmisCarBassMatterInqireVO.java`
|
||||
|
||||
#### fromOldRequest 메소드 수정
|
||||
|
||||
OldBasicRequest의 구조가 헤더 정보(외부 클래스)와 요청 데이터(record 배열)로 분리되어 있음을 반영:
|
||||
|
||||
```java
|
||||
// 변경 전 (잘못된 구조 - request에서 직접 가져옴)
|
||||
.dmndLevyStdde(request.getLevyStdde()) // ❌ request에 없음
|
||||
.dmndInqireSeCode(request.getInqireSeCode()) // ❌ request에 없음
|
||||
.dmndVhrno(request.getVhrno()) // ❌ request에 없음
|
||||
.dmndVin(request.getVin()) // ❌ request에 없음
|
||||
|
||||
// 변경 후 (올바른 구조 - request.record[0]에서 가져옴)
|
||||
OldBasicRequest.Record record = request.getRecord().get(0);
|
||||
.dmndLevyStdde(record.getLevyStdde()) // ✅ record[0]에서 가져옴
|
||||
.dmndInqireSeCode(record.getInqireSeCode()) // ✅ record[0]에서 가져옴
|
||||
.dmndVhrno(record.getVhrno()) // ✅ record[0]에서 가져옴
|
||||
.dmndVin(record.getVin()) // ✅ record[0]에서 가져옴
|
||||
```
|
||||
|
||||
#### OldBasicRequest 구조 설명
|
||||
|
||||
```
|
||||
OldBasicRequest
|
||||
├─ 헤더 정보 (외부 클래스)
|
||||
│ ├─ infoSysId
|
||||
│ ├─ infoSysIp
|
||||
│ ├─ sigunguCode
|
||||
│ ├─ cntcInfoCode
|
||||
│ ├─ chargerId
|
||||
│ ├─ chargerIp
|
||||
│ └─ chargerNm
|
||||
└─ record[] (요청 데이터 배열)
|
||||
└─ [0]
|
||||
├─ levyStdde (부과기준일)
|
||||
├─ inqireSeCode (조회구분코드)
|
||||
├─ vhrno (자동차등록번호)
|
||||
└─ vin (차대번호)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. NewLedgerResponse 클래스 변경
|
||||
|
||||
### 5.1 외부 클래스 필드명 변경사항
|
||||
**파일 경로**: `src/main/java/go/kr/project/api/model/response/NewLedgerResponse.java`
|
||||
|
||||
외부 클래스(마스터 정보)의 필드명이 API 응답 규격에 맞게 변경됨:
|
||||
|
||||
#### 주요 변경된 필드 (일부)
|
||||
```java
|
||||
// 변경 전 (구버전 필드명)
|
||||
private String ledgerIndvdlzNo; // LEDGER_INDVDLZ_NO
|
||||
private String vhctyAsortCode; // VHCTY_ASORT_CODE
|
||||
private String cnm; // CNM
|
||||
private String colorCode; // COLOR_CODE
|
||||
private String nmplStndrdCode; // NMPL_STNDRD_CODE
|
||||
private String prposSeCode; // PRPOS_SE_CODE
|
||||
private String acqsAmount; // ACQS_AMOUNT
|
||||
private String registDetailCode; // REGIST_DETAIL_CODE
|
||||
private String frstRegistDe; // FRST_REGIST_DE
|
||||
private String caagEndde; // CAAG_ENDDE
|
||||
private String prye; // PRYE
|
||||
private String yblMd; // YBL_MD
|
||||
private String trvlDstnc; // TRVL_DSTNC
|
||||
|
||||
// 변경 후 (신버전 필드명)
|
||||
private String ledgerIndivNo; // LEDGER_INDIV_NO ✅
|
||||
private String carmdlAsortCd; // CARMDL_ASORT_CD ✅
|
||||
private String atmbNm; // ATMB_NM ✅
|
||||
private String colorCd; // COLOR_CD ✅
|
||||
private String nopltSpcfctCd; // NOPLT_SPCFCT_CD ✅
|
||||
private String usgSeCd; // USG_SE_CD ✅
|
||||
private String acqsAmt; // ACQS_AMT ✅
|
||||
private String regDtlCd; // REG_DTL_CD ✅
|
||||
private String frstRegYmd; // FRST_REG_YMD ✅
|
||||
private String veagEndYmd; // VEAG_END_YMD ✅
|
||||
private String yridnw; // YRIDNW ✅
|
||||
private String fbctnYmd; // FBCTN_YMD ✅
|
||||
private String drvngDstnc; // DRVNG_DSTNC ✅
|
||||
```
|
||||
|
||||
**영향**: VmisCarLedgerFrmbkVO.fromNewResponseMaster 메소드의 모든 getter 호출 변경 필요
|
||||
|
||||
### 5.2 Record 내부 클래스 변경사항
|
||||
|
||||
Record 내부 클래스의 필드명이 API 규격에 맞게 변경됨:
|
||||
|
||||
#### 추가된 필드
|
||||
```java
|
||||
@JsonProperty("HSHLDR_NM")
|
||||
private String hshldrNm; // 세대주명
|
||||
|
||||
@JsonProperty("HSHLDR_IDECNO")
|
||||
private String hshldrIdecno; // 세대주개인암호화번호
|
||||
```
|
||||
|
||||
#### 기존 필드 (필드명 변경)
|
||||
- `SZR_RMV_DTL_SN`: Mainchk → szrRmvDtlSn
|
||||
- `CHG_TASK_SE_CD`: ChangeJobSeCode → chgTaskSeCd
|
||||
- `MAIN_NO`: Mainno → mainNo
|
||||
- `SNO`: Subno → sno
|
||||
- `SPCABL_MTTR`: Dtls → spcablMttr
|
||||
- `APLY_RCPT_NO`: Rqrcno → aplyRcptNo
|
||||
- `LEDGER_INDIV_NO`: LedgerIndvdlzNo → ledgerIndivNo
|
||||
- `CHG_TASK_SE_NM`: GubunNm → chgTaskSeNm
|
||||
- `CHG_YMD`: ChangeDe → chgYmd
|
||||
- `DTL_SN`: DetailSn → dtlSn
|
||||
|
||||
---
|
||||
|
||||
## 6. 작업 체크리스트
|
||||
|
||||
- [x] DDL 파일 읽기 (tb_car_ffnlg_trgt, tb_car_ledger_frmbk, tb_car_ledger_frmbk_dtl, tb_car_bass_matter_inqire)
|
||||
- [x] 관련 VO 파일 읽기 및 확인
|
||||
- [x] 관련 XML mapper 파일 읽기 및 확인
|
||||
- [x] API 매핑 메소드 확인
|
||||
- [x] DDL 변경사항과 현재 구현 비교
|
||||
- [x] VmisCarLedgerFrmbkVO 수정 (필드 추가, 컬럼명 수정)
|
||||
- [x] VmisCarLedgerFrmbkVO.fromNewResponseMaster 메소드 수정 (NewLedgerResponse 필드명 변경 반영)
|
||||
- [x] VmisCarLedgerFrmbkDtlVO 수정 (HSHLDR 필드 추가, fromRecord 메소드 수정)
|
||||
- [x] CarLedgerFrmbkMapper_maria.xml 수정
|
||||
- [x] VmisCarBassMatterInqireVO.fromOldRequest 메소드 수정 (record 배열 구조 반영)
|
||||
- [x] 변경사항 MD 파일 작성
|
||||
|
||||
---
|
||||
|
||||
## 7. 주의사항
|
||||
|
||||
### 7.1 필드명 네이밍 규칙
|
||||
- VO 필드명: camelCase (예: prcsImprtyRsnCd)
|
||||
- DB 컬럼명: SNAKE_CASE (예: PRCS_IMPRTY_RSN_CD)
|
||||
- MyBatis mapper에서 자동 매핑됨
|
||||
|
||||
### 7.2 API 응답 매핑
|
||||
- NewLedgerResponse.Record의 필드명은 API 응답 JSON 규격과 일치해야 함
|
||||
- @JsonProperty 어노테이션으로 명시적 매핑
|
||||
|
||||
### 7.3 테스트 필요 항목
|
||||
- [ ] 자동차 등록 원부 갑 조회 API 테스트
|
||||
- [ ] 자동차 등록 원부 갑 상세 조회 API 테스트
|
||||
- [ ] DB INSERT/UPDATE 쿼리 테스트
|
||||
- [ ] 신규 필드 매핑 정상 동작 확인
|
||||
|
||||
---
|
||||
|
||||
## 8. 다음 단계
|
||||
|
||||
1. VmisCarBassMatterInqireVO의 NewBasicResponse 매핑 추가 필요 여부 확인
|
||||
2. 통합 테스트 실행
|
||||
3. 변경사항 배포 전 검증
|
||||
|
||||
---
|
||||
|
||||
## 변경 파일 목록
|
||||
|
||||
```
|
||||
수정된 파일:
|
||||
- src/main/java/go/kr/project/api/model/response/VmisCarLedgerFrmbkVO.java
|
||||
- src/main/java/go/kr/project/api/model/response/VmisCarLedgerFrmbkDtlVO.java
|
||||
- src/main/java/go/kr/project/api/model/response/VmisCarBassMatterInqireVO.java
|
||||
- src/main/resources/mybatis/mapper/api/CarLedgerFrmbkMapper_maria.xml
|
||||
|
||||
확인된 DDL:
|
||||
- DB/DDL/vips/tb_car_ledger_frmbk.sql
|
||||
- DB/DDL/vips/tb_car_ledger_frmbk_dtl.sql
|
||||
- DB/DDL/vips/tb_car_bass_matter_inqire.sql
|
||||
- DB/DDL/vips/tb_car_ffnlg_trgt.sql
|
||||
|
||||
수정된 Request/Response 모델:
|
||||
- src/main/java/go/kr/project/api/model/request/OldBasicRequest.java (구조 확인)
|
||||
- src/main/java/go/kr/project/api/model/response/NewLedgerResponse.java
|
||||
```
|
||||
@ -0,0 +1,813 @@
|
||||
# Rocky Linux 9.5 MariaDB 설치 및 설정 가이드
|
||||
|
||||
## 요구사항
|
||||
1. Rocky Linux 9.5 version
|
||||
2. root 권한 또는 sudo 권한이 있는 계정
|
||||
3. 목표: MariaDB 설치, 보안 설정, 사용자 생성, 데이터베이스 생성, 백업 스키마 복원
|
||||
|
||||
---
|
||||
|
||||
## 1단계: MariaDB 설치
|
||||
|
||||
### 1.1 MariaDB 서버 설치
|
||||
```bash
|
||||
# MariaDB 서버 및 클라이언트 설치
|
||||
dnf install -y mariadb-server mariadb
|
||||
|
||||
# 또는 yum 사용
|
||||
yum install -y mariadb-server mariadb
|
||||
```
|
||||
|
||||
### 1.2 MariaDB 서비스 시작 및 자동 시작 설정
|
||||
```bash
|
||||
# MariaDB 서비스 시작
|
||||
systemctl start mariadb
|
||||
|
||||
# 부팅 시 자동 시작 설정
|
||||
systemctl enable mariadb
|
||||
|
||||
# 서비스 상태 확인
|
||||
systemctl status mariadb
|
||||
```
|
||||
|
||||
### 1.3 MariaDB 버전 확인
|
||||
```bash
|
||||
# MariaDB 버전 확인
|
||||
mysql --version
|
||||
|
||||
# 또는 MariaDB 접속 후 확인
|
||||
mysql -e "SELECT VERSION();"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2단계: MariaDB 보안 설정
|
||||
|
||||
### 2.1 초기 보안 설정 실행
|
||||
```bash
|
||||
# MariaDB 보안 설정 스크립트 실행
|
||||
mysql_secure_installation
|
||||
```
|
||||
|
||||
### 2.2 보안 설정 질문 및 권장 답변
|
||||
설정 중 아래와 같은 질문이 나타납니다:
|
||||
|
||||
```
|
||||
1. Enter current password for root (enter for none):
|
||||
→ 처음 설치 시 비밀번호가 없으므로 Enter 입력
|
||||
|
||||
2. Switch to unix_socket authentication [Y/n]
|
||||
→ n (기존 방식 유지 권장)
|
||||
|
||||
3. Change the root password? [Y/n]
|
||||
→ Y (root 비밀번호 설정)
|
||||
→ 새 비밀번호 입력 및 확인
|
||||
|
||||
4. Remove anonymous users? [Y/n]
|
||||
→ Y (익명 사용자 제거)
|
||||
|
||||
5. Disallow root login remotely? [Y/n]
|
||||
→ Y (원격 root 로그인 차단 - 보안 강화)
|
||||
→ n (원격 접속이 필요한 경우)
|
||||
|
||||
6. Remove test database and access to it? [Y/n]
|
||||
→ Y (테스트 데이터베이스 제거)
|
||||
|
||||
7. Reload privilege tables now? [Y/n]
|
||||
→ Y (권한 테이블 즉시 적용)
|
||||
```
|
||||
|
||||
### 2.3 root로 MariaDB 접속 확인
|
||||
```bash
|
||||
# root 계정으로 MariaDB 접속
|
||||
mysql -u root -p
|
||||
# 비밀번호 입력 후 접속
|
||||
|
||||
# 접속 확인 후 종료
|
||||
MariaDB [(none)]> show databases;
|
||||
MariaDB [(none)]> exit;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3단계: 커스텀 포트 설정 (53306)
|
||||
|
||||
### 3.1 MariaDB 포트 변경
|
||||
```bash
|
||||
# MariaDB 설정 파일 편집
|
||||
vi /etc/my.cnf.d/mariadb-server.cnf
|
||||
```
|
||||
|
||||
설정 파일에 포트 추가:
|
||||
```ini
|
||||
[mysqld]
|
||||
port=53306
|
||||
```
|
||||
|
||||
설정 변경 후 서비스 재시작:
|
||||
```bash
|
||||
# MariaDB 재시작
|
||||
systemctl restart mariadb
|
||||
|
||||
# 포트 확인
|
||||
ss -tlnp | grep 53306
|
||||
```
|
||||
|
||||
### 3.2 방화벽 설정 (외부 접속 허용)
|
||||
```bash
|
||||
# 커스텀 포트(53306) 방화벽 허용
|
||||
firewall-cmd --permanent --add-port=53306/tcp
|
||||
firewall-cmd --reload
|
||||
|
||||
# 방화벽 설정 확인
|
||||
firewall-cmd --list-all
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4단계: 데이터베이스 생성
|
||||
|
||||
### 4.1 MariaDB 접속
|
||||
```bash
|
||||
# root로 MariaDB 접속
|
||||
mysql -u root -p
|
||||
# 비밀번호 입력
|
||||
```
|
||||
|
||||
### 4.2 데이터베이스 생성
|
||||
```sql
|
||||
-- VIPS 데이터베이스 생성
|
||||
CREATE DATABASE vips CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- 데이터베이스 목록 확인
|
||||
SHOW DATABASES;
|
||||
|
||||
-- VIPS 데이터베이스 선택
|
||||
USE vips;
|
||||
```
|
||||
|
||||
### 4.3 데이터베이스 문자셋 확인
|
||||
```sql
|
||||
-- 데이터베이스 문자셋 확인
|
||||
SELECT
|
||||
SCHEMA_NAME,
|
||||
DEFAULT_CHARACTER_SET_NAME,
|
||||
DEFAULT_COLLATION_NAME
|
||||
FROM information_schema.SCHEMATA
|
||||
WHERE SCHEMA_NAME = 'vips';
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5단계: 사용자 생성 및 권한 부여
|
||||
|
||||
### 5.1 로컬 접속용 사용자 생성
|
||||
```sql
|
||||
-- VIPS 로컬 접속용 사용자 생성
|
||||
CREATE USER 'vips'@'localhost' IDENTIFIED BY 'xit5811807';
|
||||
|
||||
-- VIPS 데이터베이스에 모든 권한 부여
|
||||
GRANT ALL PRIVILEGES ON vips.* TO 'vips'@'localhost';
|
||||
|
||||
-- 권한 적용
|
||||
FLUSH PRIVILEGES;
|
||||
```
|
||||
|
||||
### 5.2 원격 접속용 사용자 생성
|
||||
```sql
|
||||
-- 특정 IP에서 접속 가능한 사용자 생성
|
||||
CREATE USER 'vips'@'192.168.1.100' IDENTIFIED BY 'xit5811807';
|
||||
GRANT ALL PRIVILEGES ON vips.* TO 'vips'@'192.168.1.100';
|
||||
|
||||
-- 모든 IP에서 접속 가능한 사용자 생성 (application-prd.yml 설정)
|
||||
CREATE USER 'vips'@'%' IDENTIFIED BY 'xit5811807';
|
||||
GRANT ALL PRIVILEGES ON vips.* TO 'vips'@'%';
|
||||
|
||||
-- 권한 적용
|
||||
FLUSH PRIVILEGES;
|
||||
```
|
||||
|
||||
### 5.3 읽기 전용 사용자 생성 (선택사항)
|
||||
```sql
|
||||
-- 읽기 전용 사용자 생성
|
||||
CREATE USER 'vips_readonly'@'%' IDENTIFIED BY 'vips_readonly_password';
|
||||
GRANT SELECT ON vips.* TO 'vips_readonly'@'%';
|
||||
FLUSH PRIVILEGES;
|
||||
```
|
||||
|
||||
### 5.4 사용자 목록 및 권한 확인
|
||||
```sql
|
||||
-- 사용자 목록 확인
|
||||
SELECT User, Host FROM mysql.user;
|
||||
|
||||
-- VIPS 사용자의 권한 확인
|
||||
SHOW GRANTS FOR 'vips'@'localhost';
|
||||
SHOW GRANTS FOR 'vips'@'%';
|
||||
|
||||
-- 현재 사용자 확인
|
||||
SELECT USER(), CURRENT_USER();
|
||||
```
|
||||
|
||||
### 5.5 원격 접속을 위한 MariaDB 설정 변경
|
||||
```bash
|
||||
# MariaDB 설정 파일 편집
|
||||
vi /etc/my.cnf.d/mariadb-server.cnf
|
||||
```
|
||||
|
||||
설정 파일에서 다음 부분 수정:
|
||||
```ini
|
||||
[mysqld]
|
||||
# bind-address를 주석 처리하거나 0.0.0.0으로 변경
|
||||
# bind-address=127.0.0.1
|
||||
bind-address=0.0.0.0
|
||||
|
||||
# 또는 특정 IP만 허용
|
||||
# bind-address=192.168.1.50
|
||||
```
|
||||
|
||||
설정 변경 후 서비스 재시작:
|
||||
```bash
|
||||
# MariaDB 재시작
|
||||
systemctl restart mariadb
|
||||
|
||||
# 재시작 확인
|
||||
systemctl status mariadb
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6단계: 백업 스키마 업로드 (전체 데이터베이스 복원)
|
||||
|
||||
### 6.1 백업 파일 서버로 전송
|
||||
|
||||
**방법 1: SCP 사용 (로컬 PC에서 실행)**
|
||||
```bash
|
||||
# Windows PowerShell 또는 CMD에서 실행
|
||||
scp C:\backup\vips_backup.sql root@서버IP:/tmp/
|
||||
```
|
||||
|
||||
**방법 2: SFTP 사용**
|
||||
```bash
|
||||
# SFTP 접속
|
||||
sftp root@서버IP
|
||||
|
||||
# 파일 전송
|
||||
put vips_backup.sql /tmp/
|
||||
exit
|
||||
```
|
||||
|
||||
### 6.2 백업 파일 권한 설정
|
||||
```bash
|
||||
# 백업 파일 권한 확인
|
||||
ls -la /tmp/vips_backup.sql
|
||||
|
||||
# 필요시 권한 변경
|
||||
chmod 644 /tmp/vips_backup.sql
|
||||
```
|
||||
|
||||
### 6.3 백업 파일 복원 - 방법 1 (명령행에서 직접 복원)
|
||||
```bash
|
||||
# 커스텀 포트 53306 사용하여 복원
|
||||
mysql -u root -p -P 53306 vips < /tmp/vips_backup.sql
|
||||
|
||||
# 비밀번호 입력 없이 실행 (스크립트용)
|
||||
mysql -u root -p비밀번호 -P 53306 vips < /tmp/vips_backup.sql
|
||||
```
|
||||
|
||||
### 6.4 백업 파일 복원 - 방법 2 (MySQL 내부에서 복원)
|
||||
```bash
|
||||
# MariaDB 접속 (포트 53306 명시)
|
||||
mysql -u root -p -P 53306
|
||||
```
|
||||
|
||||
```sql
|
||||
-- VIPS 데이터베이스 선택
|
||||
USE vips;
|
||||
|
||||
-- 백업 파일 실행
|
||||
SOURCE /tmp/vips_backup.sql;
|
||||
|
||||
-- 또는
|
||||
\. /tmp/vips_backup.sql
|
||||
```
|
||||
|
||||
### 6.5 백업 파일 복원 - 방법 3 (새 데이터베이스 생성 포함)
|
||||
백업 파일에 CREATE DATABASE가 포함된 경우:
|
||||
```bash
|
||||
# 데이터베이스 이름 지정 없이 복원 (포트 53306)
|
||||
mysql -u root -p -P 53306 < /tmp/vips_backup.sql
|
||||
```
|
||||
|
||||
### 6.6 대용량 백업 파일 복원
|
||||
대용량 파일의 경우 타임아웃 방지를 위한 옵션 추가:
|
||||
```bash
|
||||
# 타임아웃 설정 증가 (포트 53306)
|
||||
mysql -u root -p -P 53306 \
|
||||
--max_allowed_packet=512M \
|
||||
--connect_timeout=3600 \
|
||||
--wait_timeout=3600 \
|
||||
vips < /tmp/vips_backup.sql
|
||||
```
|
||||
|
||||
### 6.7 압축된 백업 파일 복원
|
||||
```bash
|
||||
# .gz 파일 복원 (포트 53306)
|
||||
gunzip < /tmp/vips_backup.sql.gz | mysql -u root -p -P 53306 vips
|
||||
|
||||
# .zip 파일 복원 (포트 53306)
|
||||
unzip -p /tmp/vips_backup.sql.zip | mysql -u root -p -P 53306 vips
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7단계: 복원 결과 확인
|
||||
|
||||
### 7.1 MariaDB 접속
|
||||
```bash
|
||||
# VIPS 사용자로 접속 (포트 53306)
|
||||
mysql -u vips -p -P 53306 vips
|
||||
# 비밀번호 입력: xit5811807
|
||||
```
|
||||
|
||||
### 7.2 데이터베이스 및 테이블 확인
|
||||
```sql
|
||||
-- 현재 데이터베이스 확인
|
||||
SELECT DATABASE();
|
||||
|
||||
-- 테이블 목록 확인
|
||||
SHOW TABLES;
|
||||
|
||||
-- 테이블 개수 확인
|
||||
SELECT COUNT(*) AS table_count
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'vips';
|
||||
|
||||
-- 각 테이블의 상세 정보 확인
|
||||
SHOW TABLE STATUS FROM vips;
|
||||
```
|
||||
|
||||
### 7.3 테이블 구조 확인
|
||||
```sql
|
||||
-- 특정 테이블 구조 확인 (VIPS 테이블 예시)
|
||||
DESC tb_vehicle_info;
|
||||
-- 또는
|
||||
DESCRIBE tb_vehicle_info;
|
||||
-- 또는
|
||||
SHOW COLUMNS FROM tb_vehicle_info;
|
||||
|
||||
-- 테이블 생성 DDL 확인
|
||||
SHOW CREATE TABLE tb_vehicle_info;
|
||||
```
|
||||
|
||||
### 7.4 데이터 확인
|
||||
```sql
|
||||
-- 특정 테이블의 레코드 수 확인
|
||||
SELECT COUNT(*) FROM tb_vehicle_info;
|
||||
|
||||
-- 상위 10개 데이터 조회
|
||||
SELECT * FROM tb_vehicle_info LIMIT 10;
|
||||
|
||||
-- 모든 테이블의 레코드 수 확인
|
||||
SELECT
|
||||
TABLE_NAME,
|
||||
TABLE_ROWS
|
||||
FROM information_schema.TABLES
|
||||
WHERE TABLE_SCHEMA = 'vips'
|
||||
ORDER BY TABLE_ROWS DESC;
|
||||
```
|
||||
|
||||
### 7.5 인덱스 및 제약조건 확인
|
||||
```sql
|
||||
-- 특정 테이블의 인덱스 확인
|
||||
SHOW INDEX FROM tb_vehicle_info;
|
||||
|
||||
-- 외래키 제약조건 확인
|
||||
SELECT
|
||||
CONSTRAINT_NAME,
|
||||
TABLE_NAME,
|
||||
COLUMN_NAME,
|
||||
REFERENCED_TABLE_NAME,
|
||||
REFERENCED_COLUMN_NAME
|
||||
FROM information_schema.KEY_COLUMN_USAGE
|
||||
WHERE TABLE_SCHEMA = 'vips'
|
||||
AND REFERENCED_TABLE_NAME IS NOT NULL;
|
||||
```
|
||||
|
||||
### 7.6 데이터베이스 용량 확인
|
||||
```sql
|
||||
-- VIPS 데이터베이스 전체 크기 확인
|
||||
SELECT
|
||||
table_schema AS 'Database',
|
||||
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)'
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'vips'
|
||||
GROUP BY table_schema;
|
||||
|
||||
-- 테이블별 크기 확인
|
||||
SELECT
|
||||
table_name AS 'Table',
|
||||
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS 'Size (MB)'
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'vips'
|
||||
ORDER BY (data_length + index_length) DESC;
|
||||
```
|
||||
|
||||
### 7.7 문자셋 확인
|
||||
```sql
|
||||
-- 데이터베이스 문자셋 확인
|
||||
SHOW VARIABLES LIKE 'character_set%';
|
||||
SHOW VARIABLES LIKE 'collation%';
|
||||
|
||||
-- 포트 확인
|
||||
SHOW VARIABLES LIKE 'port';
|
||||
|
||||
-- VIPS 테이블의 문자셋 확인
|
||||
SELECT
|
||||
TABLE_NAME,
|
||||
TABLE_COLLATION
|
||||
FROM information_schema.TABLES
|
||||
WHERE TABLE_SCHEMA = 'vips';
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 8단계: 접속 테스트 및 문제 해결
|
||||
|
||||
### 8.1 로컬 접속 테스트
|
||||
```bash
|
||||
# VIPS 사용자로 로컬 접속 테스트 (포트 53306)
|
||||
mysql -u vips -p -P 53306 vips
|
||||
|
||||
# 접속 후 간단한 쿼리 실행
|
||||
mysql -u vips -pxit5811807 -P 53306 vips -e "SELECT COUNT(*) AS table_count FROM information_schema.tables WHERE table_schema='vips';"
|
||||
```
|
||||
|
||||
### 8.2 원격 접속 테스트 (다른 서버에서)
|
||||
```bash
|
||||
# 원격 서버에서 접속 테스트 (application-prd.yml 설정과 동일)
|
||||
mysql -h 211.119.124.117 -P 53306 -u vips -p vips
|
||||
|
||||
# 비밀번호 포함하여 테스트 (스크립트용)
|
||||
mysql -h 211.119.124.117 -P 53306 -u vips -pxit5811807 vips -e "SHOW TABLES;"
|
||||
```
|
||||
|
||||
### 8.3 접속 문제 해결
|
||||
|
||||
**문제 1: Access denied for user**
|
||||
```sql
|
||||
-- MariaDB에 root로 접속하여 사용자 확인
|
||||
SELECT User, Host FROM mysql.user WHERE User='vips';
|
||||
|
||||
-- 호스트가 일치하지 않으면 재생성
|
||||
DROP USER 'vips'@'잘못된호스트';
|
||||
CREATE USER 'vips'@'올바른호스트' IDENTIFIED BY 'xit5811807';
|
||||
GRANT ALL PRIVILEGES ON vips.* TO 'vips'@'올바른호스트';
|
||||
FLUSH PRIVILEGES;
|
||||
```
|
||||
|
||||
**문제 2: Can't connect to MySQL server**
|
||||
```bash
|
||||
# MariaDB 서비스 상태 확인
|
||||
systemctl status mariadb
|
||||
|
||||
# 서비스가 중지되어 있으면 시작
|
||||
systemctl start mariadb
|
||||
|
||||
# 커스텀 포트 53306 리스닝 확인
|
||||
ss -tlnp | grep 53306
|
||||
netstat -tlnp | grep 53306
|
||||
|
||||
# 포트 설정 확인
|
||||
mysql -u root -p -e "SHOW VARIABLES LIKE 'port';"
|
||||
|
||||
# 방화벽 확인
|
||||
firewall-cmd --list-all
|
||||
```
|
||||
|
||||
**문제 3: 원격 접속 불가**
|
||||
```bash
|
||||
# bind-address 설정 확인
|
||||
grep bind-address /etc/my.cnf.d/mariadb-server.cnf
|
||||
|
||||
# 0.0.0.0 또는 원하는 IP로 설정되어 있는지 확인
|
||||
# 변경 후 재시작 필요
|
||||
systemctl restart mariadb
|
||||
```
|
||||
|
||||
**문제 4: 복원 중 에러 발생**
|
||||
```bash
|
||||
# 에러 로그 확인
|
||||
tail -100 /var/log/mariadb/mariadb.log
|
||||
|
||||
# 또는
|
||||
journalctl -u mariadb -n 100
|
||||
|
||||
# SQL 파일 문법 확인 (일부만 실행해보기)
|
||||
head -100 /tmp/myapp_db_backup.sql
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9단계: 백업 설정 (추가 운영 관리)
|
||||
|
||||
### 9.1 수동 백업 명령어
|
||||
```bash
|
||||
# VIPS 전체 데이터베이스 백업 (포트 53306)
|
||||
mysqldump -u root -p -P 53306 vips > /backup/vips_$(date +%Y%m%d_%H%M%S).sql
|
||||
|
||||
# 압축 백업
|
||||
mysqldump -u root -p -P 53306 vips | gzip > /backup/vips_$(date +%Y%m%d_%H%M%S).sql.gz
|
||||
|
||||
# 특정 테이블만 백업
|
||||
mysqldump -u root -p -P 53306 vips tb_vehicle_info tb_user > /backup/vips_tables_$(date +%Y%m%d).sql
|
||||
|
||||
# 구조만 백업 (데이터 제외)
|
||||
mysqldump -u root -p -P 53306 --no-data vips > /backup/vips_schema_only.sql
|
||||
|
||||
# 데이터만 백업 (구조 제외)
|
||||
mysqldump -u root -p -P 53306 --no-create-info vips > /backup/vips_data_only.sql
|
||||
```
|
||||
|
||||
### 9.2 백업 디렉토리 생성 및 권한 설정
|
||||
```bash
|
||||
# 백업 디렉토리 생성
|
||||
mkdir -p /backup/mariadb
|
||||
|
||||
# 권한 설정
|
||||
chown root:root /backup/mariadb
|
||||
chmod 700 /backup/mariadb
|
||||
```
|
||||
|
||||
### 9.3 자동 백업 스크립트 생성
|
||||
```bash
|
||||
# 백업 스크립트 생성
|
||||
vi /backup/mariadb_backup.sh
|
||||
```
|
||||
|
||||
스크립트 내용:
|
||||
```bash
|
||||
#!/bin/bash
|
||||
|
||||
# VIPS 데이터베이스 백업 스크립트
|
||||
DB_NAME="vips"
|
||||
DB_USER="root"
|
||||
DB_PASS="your_root_password"
|
||||
DB_PORT="53306"
|
||||
BACKUP_DIR="/backup/mariadb"
|
||||
DATE=$(date +%Y%m%d_%H%M%S)
|
||||
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_${DATE}.sql.gz"
|
||||
RETENTION_DAYS=7
|
||||
|
||||
# 백업 디렉토리 생성 (없으면)
|
||||
mkdir -p $BACKUP_DIR
|
||||
|
||||
# 백업 실행
|
||||
echo "Starting VIPS database backup at $(date)"
|
||||
mysqldump -u $DB_USER -p$DB_PASS -P $DB_PORT $DB_NAME | gzip > $BACKUP_FILE
|
||||
|
||||
# 백업 결과 확인
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "Backup completed successfully: $BACKUP_FILE"
|
||||
|
||||
# 파일 크기 확인
|
||||
FILE_SIZE=$(du -h "$BACKUP_FILE" | cut -f1)
|
||||
echo "Backup file size: $FILE_SIZE"
|
||||
|
||||
# 오래된 백업 파일 삭제 (7일 이상)
|
||||
find $BACKUP_DIR -name "${DB_NAME}_*.sql.gz" -mtime +$RETENTION_DAYS -delete
|
||||
echo "Old backups cleaned up (retention: $RETENTION_DAYS days)"
|
||||
else
|
||||
echo "Backup failed!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Backup process finished at $(date)"
|
||||
```
|
||||
|
||||
스크립트 실행 권한 부여:
|
||||
```bash
|
||||
chmod 700 /backup/mariadb_backup.sh
|
||||
```
|
||||
|
||||
### 9.4 cron을 이용한 자동 백업 설정
|
||||
```bash
|
||||
# crontab 편집
|
||||
crontab -e
|
||||
```
|
||||
|
||||
cron 설정 추가:
|
||||
```bash
|
||||
# 매일 새벽 2시에 백업 실행
|
||||
0 2 * * * /backup/mariadb_backup.sh >> /backup/mariadb/backup.log 2>&1
|
||||
|
||||
# 매주 일요일 새벽 3시에 백업 실행
|
||||
0 3 * * 0 /backup/mariadb_backup.sh >> /backup/mariadb/backup.log 2>&1
|
||||
|
||||
# 매월 1일 새벽 4시에 백업 실행
|
||||
0 4 1 * * /backup/mariadb_backup.sh >> /backup/mariadb/backup.log 2>&1
|
||||
```
|
||||
|
||||
cron 설정 확인:
|
||||
```bash
|
||||
# crontab 목록 확인
|
||||
crontab -l
|
||||
|
||||
# cron 서비스 상태 확인
|
||||
systemctl status crond
|
||||
|
||||
# cron 로그 확인
|
||||
tail -f /var/log/cron
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 전체 실행 순서 요약
|
||||
|
||||
```bash
|
||||
# 1. MariaDB 설치
|
||||
dnf install -y mariadb-server mariadb
|
||||
systemctl start mariadb
|
||||
systemctl enable mariadb
|
||||
|
||||
# 2. 보안 설정
|
||||
mysql_secure_installation
|
||||
|
||||
# 3. 커스텀 포트 설정 (53306)
|
||||
vi /etc/my.cnf.d/mariadb-server.cnf
|
||||
# [mysqld] 섹션에 port=53306 추가
|
||||
|
||||
# 4. 원격 접속 설정
|
||||
vi /etc/my.cnf.d/mariadb-server.cnf
|
||||
# bind-address=0.0.0.0 설정
|
||||
systemctl restart mariadb
|
||||
|
||||
# 5. 방화벽 설정
|
||||
firewall-cmd --permanent --add-port=53306/tcp
|
||||
firewall-cmd --reload
|
||||
|
||||
# 6. 포트 확인
|
||||
ss -tlnp | grep 53306
|
||||
|
||||
# 7. MariaDB 접속하여 데이터베이스 및 사용자 생성
|
||||
mysql -u root -p -P 53306
|
||||
```
|
||||
|
||||
```sql
|
||||
-- VIPS 데이터베이스 생성
|
||||
CREATE DATABASE vips CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||
|
||||
-- VIPS 사용자 생성 및 권한 부여
|
||||
CREATE USER 'vips'@'localhost' IDENTIFIED BY 'xit5811807';
|
||||
GRANT ALL PRIVILEGES ON vips.* TO 'vips'@'localhost';
|
||||
|
||||
-- 원격 접속용 사용자 (application-prd.yml 설정)
|
||||
CREATE USER 'vips'@'%' IDENTIFIED BY 'xit5811807';
|
||||
GRANT ALL PRIVILEGES ON vips.* TO 'vips'@'%';
|
||||
|
||||
FLUSH PRIVILEGES;
|
||||
exit;
|
||||
```
|
||||
|
||||
```bash
|
||||
# 8. 백업 파일 업로드 (로컬 PC에서)
|
||||
scp vips_backup.sql root@서버IP:/tmp/
|
||||
|
||||
# 9. 백업 복원 (서버에서, 포트 53306 명시)
|
||||
mysql -u root -p -P 53306 vips < /tmp/vips_backup.sql
|
||||
|
||||
# 10. 복원 확인
|
||||
mysql -u vips -pxit5811807 -P 53306 vips
|
||||
```
|
||||
|
||||
```sql
|
||||
-- 테이블 확인
|
||||
SHOW TABLES;
|
||||
SELECT COUNT(*) AS table_count FROM information_schema.tables WHERE table_schema='vips';
|
||||
exit;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 유용한 MariaDB 관리 명령어
|
||||
|
||||
### 데이터베이스 관리
|
||||
```sql
|
||||
-- 모든 데이터베이스 목록
|
||||
SHOW DATABASES;
|
||||
|
||||
-- 데이터베이스 삭제 (주의!)
|
||||
DROP DATABASE vips;
|
||||
|
||||
-- 데이터베이스 이름 변경 (직접 지원 안함, 백업/복원 필요)
|
||||
-- 방법: 백업 → 새 DB 생성 → 복원 → 기존 DB 삭제
|
||||
```
|
||||
|
||||
### 사용자 관리
|
||||
```sql
|
||||
-- 모든 사용자 목록
|
||||
SELECT User, Host FROM mysql.user;
|
||||
|
||||
-- VIPS 사용자 비밀번호 변경
|
||||
ALTER USER 'vips'@'localhost' IDENTIFIED BY 'new_password';
|
||||
ALTER USER 'vips'@'%' IDENTIFIED BY 'new_password';
|
||||
|
||||
-- 사용자 삭제
|
||||
DROP USER 'vips'@'localhost';
|
||||
DROP USER 'vips'@'%';
|
||||
|
||||
-- 특정 권한만 회수
|
||||
REVOKE DELETE ON vips.* FROM 'vips'@'localhost';
|
||||
|
||||
-- 모든 권한 회수
|
||||
REVOKE ALL PRIVILEGES ON vips.* FROM 'vips'@'localhost';
|
||||
```
|
||||
|
||||
### 테이블 관리
|
||||
```sql
|
||||
-- 테이블 삭제
|
||||
DROP TABLE table_name;
|
||||
|
||||
-- 테이블 비우기 (구조는 유지)
|
||||
TRUNCATE TABLE table_name;
|
||||
|
||||
-- 테이블 이름 변경
|
||||
RENAME TABLE old_name TO new_name;
|
||||
|
||||
-- 테이블 복사
|
||||
CREATE TABLE new_table LIKE old_table;
|
||||
INSERT INTO new_table SELECT * FROM old_table;
|
||||
```
|
||||
|
||||
### 성능 모니터링
|
||||
```sql
|
||||
-- 현재 실행 중인 쿼리 확인
|
||||
SHOW PROCESSLIST;
|
||||
|
||||
-- 특정 프로세스 강제 종료
|
||||
KILL [process_id];
|
||||
|
||||
-- 상태 변수 확인
|
||||
SHOW STATUS;
|
||||
SHOW VARIABLES;
|
||||
|
||||
-- 느린 쿼리 확인
|
||||
SHOW VARIABLES LIKE 'slow_query%';
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 보안 권장사항
|
||||
|
||||
1. **강력한 비밀번호 사용**
|
||||
- 최소 12자 이상, 대소문자/숫자/특수문자 조합
|
||||
|
||||
2. **최소 권한 원칙**
|
||||
- 애플리케이션 사용자에게 필요한 최소 권한만 부여
|
||||
- 읽기 전용 작업에는 SELECT 권한만 부여
|
||||
|
||||
3. **원격 root 접속 차단**
|
||||
- root는 localhost에서만 접속 허용
|
||||
|
||||
4. **정기적인 백업**
|
||||
- 매일 자동 백업 설정
|
||||
- 백업 파일 주기적 확인
|
||||
|
||||
5. **방화벽 설정**
|
||||
- 필요한 IP만 53306 포트 접근 허용
|
||||
- 특정 IP 대역만 접근 허용 설정
|
||||
```bash
|
||||
# 특정 IP만 허용 (예시)
|
||||
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port protocol="tcp" port="53306" accept'
|
||||
firewall-cmd --reload
|
||||
```
|
||||
|
||||
6. **MariaDB 업데이트**
|
||||
- 정기적인 보안 패치 적용
|
||||
```bash
|
||||
dnf update mariadb-server
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 참고사항
|
||||
|
||||
- **VIPS 프로젝트 설정**
|
||||
- 데이터베이스: vips
|
||||
- 사용자: vips
|
||||
- 비밀번호: xit5811807
|
||||
- 포트: 53306 (커스텀 포트)
|
||||
- 문자셋: UTF-8 (utf8mb4)
|
||||
|
||||
- **MariaDB 기본 정보**
|
||||
- 기본 포트: 3306 (VIPS는 53306 사용)
|
||||
- 설정 파일 위치: `/etc/my.cnf`, `/etc/my.cnf.d/mariadb-server.cnf`
|
||||
- 데이터 디렉토리: `/var/lib/mysql/`
|
||||
- 로그 파일: `/var/log/mariadb/mariadb.log`
|
||||
- 소켓 파일: `/var/lib/mysql/mysql.sock`
|
||||
|
||||
---
|
||||
|
||||
## 문의 및 추가 정보
|
||||
|
||||
- MariaDB 공식 문서: https://mariadb.com/kb/
|
||||
- Rocky Linux 공식 문서: https://docs.rockylinux.org/
|
||||
@ -0,0 +1,30 @@
|
||||
package go.kr.project.api.model;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
/**
|
||||
* 외부 VMIS-interface 신규 응답 래퍼
|
||||
* { "txId": "yyyyMMddHHmmssSSS12345678", "request": {"data": [...]}, "response": {"data": [...]} }
|
||||
*
|
||||
* 중요로직: 외부호출 프로젝트에서 요청/응답을 함께 반환하므로 해당 구조를 그대로 매핑한다.
|
||||
*/
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@Getter
|
||||
@Setter
|
||||
public class ApiExchangeEnvelope<TReq, TRes> {
|
||||
|
||||
/** 트랜잭션 ID */
|
||||
@JsonProperty("txId")
|
||||
private String txId;
|
||||
|
||||
/** 요청 데이터 래퍼 */
|
||||
@JsonProperty("request")
|
||||
private Envelope<TReq> request;
|
||||
|
||||
/** 응답 데이터 래퍼 */
|
||||
@JsonProperty("response")
|
||||
private Envelope<TRes> response;
|
||||
}
|
||||
@ -1,89 +0,0 @@
|
||||
package go.kr.project.api.model.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@Getter
|
||||
@Setter
|
||||
@Schema(description = "자동차기본사항조회 요청 항목")
|
||||
public class BasicRequest {
|
||||
|
||||
// 본문 공통 메타 (VmisRequestEnricher에서 자동 설정)
|
||||
@Schema(description = "정보시스템ID (자동설정: vmis.system.infoSysId)", example = "41-345")
|
||||
@JsonProperty("INFO_SYS_ID")
|
||||
private String infoSysId;
|
||||
|
||||
@Schema(description = "정보시스템IP (자동설정: vmis.system.infoSysIp)", example = "105.19.10.135")
|
||||
@JsonProperty("INFO_SYS_IP")
|
||||
private String infoSysIp;
|
||||
|
||||
@Schema(description = "시군구코드 (자동설정: vmis.system.sigunguCode)", example = "41460")
|
||||
@JsonProperty("SIGUNGU_CODE")
|
||||
private String sigunguCode;
|
||||
|
||||
// 서비스별 필드 (VmisRequestEnricher에서 자동 설정)
|
||||
@Schema(description = "연계정보코드 (자동설정: vmis.gov.services.basic.cntcInfoCode)", example = "AC1_FD11_01")
|
||||
@JsonProperty("CNTC_INFO_CODE")
|
||||
private String cntcInfoCode;
|
||||
|
||||
@Schema(description = "담당자ID (자동설정: vmis.system.chargerId)", example = "")
|
||||
@JsonProperty("CHARGER_ID")
|
||||
private String chargerId;
|
||||
|
||||
@Schema(description = "담당자IP (자동설정: vmis.system.chargerIp)", example = "")
|
||||
@JsonProperty("CHARGER_IP")
|
||||
private String chargerIp;
|
||||
|
||||
@Schema(description = "담당자명(사용자) (자동설정: vmis.system.chargerNm)", example = "")
|
||||
@JsonProperty("CHARGER_NM")
|
||||
private String chargerNm;
|
||||
|
||||
@Schema(description = "부과기준일", example = "20250101")
|
||||
@JsonProperty("LEVY_STDDE")
|
||||
private String levyStdde;
|
||||
|
||||
@Schema(description = "조회구분코드 {2:차대번호(VIN), 3:자동차번호(VHRNO)} (VmisRequestEnricher에서 자동설정)")
|
||||
@JsonProperty("INQIRE_SE_CODE")
|
||||
private String inqireSeCode;
|
||||
|
||||
@Schema(description = "자동차등록번호", example = "12가3456")
|
||||
@JsonProperty("VHRNO")
|
||||
private String vhrno;
|
||||
|
||||
@Schema(description = "차대번호", example = "KMHAB812345678901")
|
||||
@JsonProperty("VIN")
|
||||
private String vin;
|
||||
|
||||
/*
|
||||
// 추가 항목 (명세 샘플 기준)
|
||||
@Schema(description = "개인정보공개", example = "Y")
|
||||
@JsonProperty("ONES_INFORMATION_OPEN")
|
||||
private String onesInformationOpen;
|
||||
|
||||
@Schema(description = "민원인성명")
|
||||
@JsonProperty("CPTTR_NM")
|
||||
private String cpttrNm;
|
||||
|
||||
@Schema(description = "민원인주민번호")
|
||||
@JsonProperty("CPTTR_IHIDNUM")
|
||||
@Size(max = 13)
|
||||
private String cpttrIhidnum;
|
||||
|
||||
@Schema(description = "민원인법정동코드")
|
||||
@JsonProperty("CPTTR_LEGALDONG_CODE")
|
||||
private String cpttrLegaldongCode;
|
||||
|
||||
@Schema(description = "경로구분코드")
|
||||
@JsonProperty("ROUTE_SE_CODE")
|
||||
private String routeSeCode;
|
||||
|
||||
@Schema(description = "내역표시")
|
||||
@JsonProperty("DETAIL_EXPRESSION")
|
||||
private String detailExpression;
|
||||
*/
|
||||
|
||||
}
|
||||
@ -1,80 +0,0 @@
|
||||
package go.kr.project.api.model.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@Schema(description = "자동차등록원부(갑) 요청 항목")
|
||||
@Getter
|
||||
@Setter
|
||||
public class LedgerRequest {
|
||||
|
||||
// 본문 공통 메타 (VmisRequestEnricher에서 자동 설정)
|
||||
@Schema(description = "정보시스템ID (자동설정: vmis.system.infoSysId)", example = "41-345")
|
||||
@JsonProperty("INFO_SYS_ID")
|
||||
private String infoSysId;
|
||||
|
||||
@Schema(description = "정보시스템IP (자동설정: vmis.system.infoSysIp)", example = "105.19.10.135")
|
||||
@JsonProperty("INFO_SYS_IP")
|
||||
private String infoSysIp;
|
||||
|
||||
@Schema(description = "시군구코드 (자동설정: vmis.system.sigunguCode)", example = "41460")
|
||||
@JsonProperty("SIGUNGU_CODE")
|
||||
private String sigunguCode;
|
||||
|
||||
// 서비스별 필드 (VmisRequestEnricher에서 자동 설정)
|
||||
@Schema(description = "연계정보코드 (자동설정: vmis.gov.services.ledger.cntcInfoCode)", example = "AC1_FD11_02")
|
||||
@JsonProperty("CNTC_INFO_CODE")
|
||||
private String cntcInfoCode;
|
||||
|
||||
@Schema(description = "담당자ID (자동설정: vmis.system.chargerId)", example = "")
|
||||
@JsonProperty("CHARGER_ID")
|
||||
private String chargerId;
|
||||
|
||||
@Schema(description = "담당자IP (자동설정: vmis.system.chargerIp)", example = "")
|
||||
@JsonProperty("CHARGER_IP")
|
||||
private String chargerIp;
|
||||
|
||||
@Schema(description = "담당자명(사용자) (자동설정: vmis.system.chargerNm)", example = "")
|
||||
@JsonProperty("CHARGER_NM")
|
||||
private String chargerNm;
|
||||
|
||||
@Schema(description = "자동차등록번호 (필수)", example = "12가3456")
|
||||
@JsonProperty("VHRNO")
|
||||
private String vhrno;
|
||||
|
||||
@Schema(description = "개인정보공개 {1:소유자공개, 2:비공개, 3:비공개(주민등록번호), 4:비공개(사용본거지)} (기본값: 1, VmisRequestEnricher에서 자동설정)")
|
||||
@JsonProperty("ONES_INFORMATION_OPEN")
|
||||
private String onesInformationOpen;
|
||||
|
||||
@Schema(description = "민원인성명 (통합조회 시 BasicResponse의 MBER_NM에서 자동매핑)")
|
||||
@JsonProperty("CPTTR_NM")
|
||||
private String cpttrNm;
|
||||
|
||||
@Schema(description = "민원인주민번호 (통합조회 시 BasicResponse의 MBER_SE_NO에서 자동매핑)")
|
||||
@JsonProperty("CPTTR_IHIDNUM")
|
||||
@Size(max = 13)
|
||||
private String cpttrIhidnum;
|
||||
|
||||
@Schema(description = "민원인법정동코드 (기본값: null)")
|
||||
@JsonProperty("CPTTR_LEGALDONG_CODE")
|
||||
private String cpttrLegaldongCode;
|
||||
|
||||
@Schema(description = "경로구분코드 (기본값: 3, VmisRequestEnricher에서 자동설정)")
|
||||
@JsonProperty("ROUTE_SE_CODE")
|
||||
private String routeSeCode;
|
||||
|
||||
@Schema(description = "내역표시 {1:전체내역, 2:최종내역} (기본값: 1, VmisRequestEnricher에서 자동설정)")
|
||||
@JsonProperty("DETAIL_EXPRESSION")
|
||||
private String detailExpression;
|
||||
|
||||
@Schema(description = "조회구분코드 {1:열람, 2:발급} (기본값: 1, VmisRequestEnricher에서 자동설정)")
|
||||
@JsonProperty("INQIRE_SE_CODE")
|
||||
private String inqireSeCode;
|
||||
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
package go.kr.project.api.model.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@Getter
|
||||
@Setter
|
||||
@Schema(description = "자동차기본사항조회 요청 항목 (신버전)")
|
||||
public class NewBasicRequest { // 총 8개 필드 (외부 클래스 8개, 중첩 Record 클래스 4개)
|
||||
|
||||
// 본문 공통 메타 (application.yml에서 자동 설정)
|
||||
@Schema(description = "정보시스템ID (자동설정: new.vmis.system.infoSysId)", example = "41-345")
|
||||
@JsonProperty("INFO_SYS_ID")
|
||||
private String infoSysId;
|
||||
|
||||
@Schema(description = "정보시스템IP (자동설정: new.vmis.system.infoSysIpAddr)", example = "105.19.10.135")
|
||||
@JsonProperty("INFO_SYS_IP_ADDR")
|
||||
private String infoSysIpAddr;
|
||||
|
||||
@Schema(description = "시군구코드 (자동설정: new.vmis.system.sggCd)", example = "41460")
|
||||
@JsonProperty("SGG_CD")
|
||||
private String sggCd;
|
||||
|
||||
// 서비스별 필드 (application.yml에서 자동 설정)
|
||||
@Schema(description = "연계정보코드 (자동설정: new.vmis.gov.services.basic.linkInfoCd)", example = "AC1_FD11_01")
|
||||
@JsonProperty("LINK_INFO_CD")
|
||||
private String linkInfoCd;
|
||||
|
||||
@Schema(description = "담당자ID (자동설정: new.vmis.system.picId)", example = "")
|
||||
@JsonProperty("PIC_ID")
|
||||
private String picId;
|
||||
|
||||
@Schema(description = "담당자IP (자동설정: new.vmis.system.picIpAddr)", example = "")
|
||||
@JsonProperty("PIC_IP_ADDR")
|
||||
private String picIpAddr;
|
||||
|
||||
@Schema(description = "담당자명 (자동설정: new.vmis.system.picNm)", example = "")
|
||||
@JsonProperty("PIC_NM")
|
||||
private String picNm;
|
||||
|
||||
@Schema(description = "조회 대상 record 배열")
|
||||
@JsonProperty("record")
|
||||
private java.util.List<Record> record;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@Getter
|
||||
@Setter
|
||||
@Schema(name = "NewBasicRequest.Record", description = "기본사항 요청 record 항목 (신버전)")
|
||||
public static class Record {
|
||||
@Schema(description = "부과기준일", example = "20250101")
|
||||
@JsonProperty("LEVY_CRTR_YMD")
|
||||
private String levyCrtrYmd;
|
||||
|
||||
@Schema(description = "조회구분코드 (자동설정: VHRNO not null → 3:자동차번호, VIN not null → 2:차대번호)")
|
||||
@JsonProperty("INQ_SE_CD")
|
||||
private String inqSeCd;
|
||||
|
||||
@Schema(description = "자동차등록번호", example = "12가3456")
|
||||
@JsonProperty("VHRNO")
|
||||
private String vhrno;
|
||||
|
||||
@Schema(description = "차대번호", example = "KMHAB812345678901")
|
||||
@JsonProperty("VIN")
|
||||
private String vin;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,80 @@
|
||||
package go.kr.project.api.model.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.validation.constraints.Size;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@Schema(description = "자동차등록원부(갑) 요청 항목 (신버전)")
|
||||
@Getter
|
||||
@Setter
|
||||
public class NewLedgerRequest { // 총 15개 필드
|
||||
|
||||
// 본문 공통 메타 (application.yml에서 자동 설정)
|
||||
@Schema(description = "정보시스템ID (자동설정: new.vmis.system.infoSysId)", example = "41-345")
|
||||
@JsonProperty("INFO_SYS_ID")
|
||||
private String infoSysId;
|
||||
|
||||
@Schema(description = "정보시스템IP주소 (자동설정: new.vmis.system.infoSysIpAddr)", example = "105.19.10.135")
|
||||
@JsonProperty("INFO_SYS_IP_ADDR")
|
||||
private String infoSysIpAddr;
|
||||
|
||||
@Schema(description = "시군구코드 (자동설정: new.vmis.system.sggCd)", example = "41460")
|
||||
@JsonProperty("SGG_CD")
|
||||
private String sggCd;
|
||||
|
||||
// 서비스별 필드 (application.yml에서 자동 설정)
|
||||
@Schema(description = "연계정보코드 (자동설정: new.vmis.gov.services.ledger.linkInfoCd)", example = "AC1_FD11_02")
|
||||
@JsonProperty("LINK_INFO_CD")
|
||||
private String linkInfoCd;
|
||||
|
||||
@Schema(description = "담당자ID (자동설정: new.vmis.system.picId)", example = "")
|
||||
@JsonProperty("PIC_ID")
|
||||
private String picId;
|
||||
|
||||
@Schema(description = "담당자IP주소 (자동설정: new.vmis.system.picIpAddr)", example = "")
|
||||
@JsonProperty("PIC_IP_ADDR")
|
||||
private String picIpAddr;
|
||||
|
||||
@Schema(description = "담당자명 (자동설정: new.vmis.system.picNm)", example = "")
|
||||
@JsonProperty("PIC_NM")
|
||||
private String picNm;
|
||||
|
||||
@Schema(description = "자동차등록번호")
|
||||
@JsonProperty("VHRNO")
|
||||
private String vhrno;
|
||||
|
||||
@Schema(description = "개인정보공개 {1:소유자공개, 2:비공개, 3:비공개(주민등록번호), 4:비공개(사용본거지)}")
|
||||
@JsonProperty("PRVC_RLS")
|
||||
private String prvcRls;
|
||||
|
||||
@Schema(description = "민원인성명")
|
||||
@JsonProperty("CVLPR_NM")
|
||||
private String cvlprNm;
|
||||
|
||||
@Schema(description = "민원인주민번호")
|
||||
@JsonProperty("CVLPR_IDECNO")
|
||||
@Size(max = 13)
|
||||
private String cvlprIdecno;
|
||||
|
||||
@Schema(description = "민원인법정동코드")
|
||||
@JsonProperty("CVLPR_STDG_CD")
|
||||
private String cvlprStdgCd;
|
||||
|
||||
@Schema(description = "경로구분코드 고정코드:3")
|
||||
@JsonProperty("PATH_SE_CD")
|
||||
private String pathSeCd;
|
||||
|
||||
@Schema(description = "내역표시 {1:전체내역, 2:최종내역}")
|
||||
@JsonProperty("DSCTN_INDCT")
|
||||
private String dsctnIndct;
|
||||
|
||||
@Schema(description = "조회구분코드 (자동설정: 1:열람 고정)")
|
||||
@JsonProperty("INQ_SE_CD")
|
||||
private String inqSeCd;
|
||||
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
package go.kr.project.api.model.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@Getter
|
||||
@Setter
|
||||
@Schema(description = "자동차기본사항조회 요청 항목 (구버전)")
|
||||
public class OldBasicRequest { // 총 8개 필드 (외부 클래스 8개, 중첩 Record 클래스 4개)
|
||||
|
||||
// 본문 공통 메타 (application.yml에서 자동 설정)
|
||||
@Schema(description = "정보시스템ID (자동설정: old.vmis.system.infoSysId)", example = "41-345")
|
||||
@JsonProperty("INFO_SYS_ID")
|
||||
private String infoSysId;
|
||||
|
||||
@Schema(description = "정보시스템IP (자동설정: old.vmis.system.infoSysIp)", example = "105.19.10.135")
|
||||
@JsonProperty("INFO_SYS_IP")
|
||||
private String infoSysIp;
|
||||
|
||||
@Schema(description = "시군구코드 (자동설정: old.vmis.system.sigunguCode)", example = "41460")
|
||||
@JsonProperty("SIGUNGU_CODE")
|
||||
private String sigunguCode;
|
||||
|
||||
// 서비스별 필드 (application.yml에서 자동 설정)
|
||||
@Schema(description = "연계정보코드 (자동설정: old.vmis.gov.services.basic.cntcInfoCode)", example = "AC1_FD11_01")
|
||||
@JsonProperty("CNTC_INFO_CODE")
|
||||
private String cntcInfoCode;
|
||||
|
||||
@Schema(description = "담당자ID (자동설정: old.vmis.system.chargerId)", example = "")
|
||||
@JsonProperty("CHARGER_ID")
|
||||
private String chargerId;
|
||||
|
||||
@Schema(description = "담당자IP (자동설정: old.vmis.system.chargerIp)", example = "")
|
||||
@JsonProperty("CHARGER_IP")
|
||||
private String chargerIp;
|
||||
|
||||
@Schema(description = "담당자명 (자동설정: old.vmis.system.chargerNm)", example = "")
|
||||
@JsonProperty("CHARGER_NM")
|
||||
private String chargerNm;
|
||||
|
||||
@Schema(description = "조회 대상 record 배열")
|
||||
@JsonProperty("record")
|
||||
private java.util.List<Record> record;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@Getter
|
||||
@Setter
|
||||
@Schema(name = "OldBasicRequest.Record", description = "기본사항 요청 record 항목 (구버전)")
|
||||
public static class Record {
|
||||
@Schema(description = "부과기준일", example = "20250101")
|
||||
@JsonProperty("LEVY_STDDE")
|
||||
private String levyStdde;
|
||||
|
||||
@Schema(description = "조회구분코드 (자동설정: VHRNO not null → 3:자동차번호, VIN not null → 2:차대번호)")
|
||||
@JsonProperty("INQIRE_SE_CODE")
|
||||
private String inqireSeCode;
|
||||
|
||||
@Schema(description = "자동차등록번호", example = "12가3456")
|
||||
@JsonProperty("VHRNO")
|
||||
private String vhrno;
|
||||
|
||||
@Schema(description = "차대번호", example = "KMHAB812345678901")
|
||||
@JsonProperty("VIN")
|
||||
private String vin;
|
||||
}
|
||||
|
||||
}
|
||||
@ -1,208 +0,0 @@
|
||||
package go.kr.project.api.model.response;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@Schema(description = "자동차기본사항조회 응답 모델")
|
||||
@Getter
|
||||
@Setter
|
||||
public class BasicResponse {
|
||||
|
||||
/** 연계결과코드 */
|
||||
@JsonProperty("CNTC_RESULT_CODE")
|
||||
private String cntcResultCode;
|
||||
|
||||
/** 연계결과상세 */
|
||||
@JsonProperty("CNTC_RESULT_DTLS")
|
||||
private String cntcResultDtls;
|
||||
|
||||
/** 레코드 목록 */
|
||||
@JsonProperty("record")
|
||||
private List<Record> record;
|
||||
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@Schema(name = "BasicRecord", description = "기본사항 record 항목")
|
||||
@Getter
|
||||
@Setter
|
||||
public static class Record {
|
||||
/** 생산년도 */
|
||||
@JsonProperty("PRYE") private String prye;
|
||||
/** 등록일자 */
|
||||
@JsonProperty("REGIST_DE") private String registDe;
|
||||
/** 말소등록구분코드 */
|
||||
@JsonProperty("ERSR_REGIST_SE_CODE") private String ersrRegistSeCode;
|
||||
/** 말소등록구분명 */
|
||||
@JsonProperty("ERSR_REGIST_SE_NM") private String ersrRegistSeNm;
|
||||
/** 말소등록일자 */
|
||||
@JsonProperty("ERSR_REGIST_DE") private String ersrRegistDe;
|
||||
/** 등록상세코드 */
|
||||
@JsonProperty("REGIST_DETAIL_CODE") private String registDetailCode;
|
||||
/** 배기량 */
|
||||
@JsonProperty("DSPLVL") private String dsplvl;
|
||||
/** 사용본거지법정동코드 */
|
||||
@JsonProperty("USE_STRNGHLD_LEGALDONG_CODE") private String useStrnghldLegaldongCode;
|
||||
/** 사용본거지행정동코드 */
|
||||
@JsonProperty("USE_STRNGHLD_ADSTRD_CODE") private String useStrnghldAdstrdCode;
|
||||
/** 사용본거지산 */
|
||||
@JsonProperty("USE_STRNGHLD_MNTN") private String useStrnghldMntn;
|
||||
/** 사용본거지번지 */
|
||||
@JsonProperty("USE_STRNGHLD_LNBR") private String useStrnghldLnbr;
|
||||
/** 사용본거지호 */
|
||||
@JsonProperty("USE_STRNGHLD_HO") private String useStrnghldHo;
|
||||
/** 사용본거지주소명 */
|
||||
@JsonProperty("USE_STRNGHLD_ADRES_NM") private String useStrnghldAdresNm;
|
||||
/** 사용본거지도로명코드 */
|
||||
@JsonProperty("USE_STRNGHLD_ROAD_NM_CODE") private String useStrnghldRoadNmCode;
|
||||
/** 사용본거지지하건물구분코드 */
|
||||
@JsonProperty("USGSRHLD_UNDGRND_BULD_SE_CODE") private String usgsrhldUndgrndBuldSeCode;
|
||||
/** 사용본거지건물본번 */
|
||||
@JsonProperty("USE_STRNGHLD_BULD_MAIN_NO") private String useStrnghldBuldMainNo;
|
||||
/** 사용본거지건물부번 */
|
||||
@JsonProperty("USE_STRNGHLD_BULD_SUB_NO") private String useStrnghldBuldSubNo;
|
||||
/** 사용본거지주소전체 */
|
||||
@JsonProperty("USGSRHLD_ADRES_FULL") private String usgsrhldAdresFull;
|
||||
/** 소유자구분코드 */
|
||||
@JsonProperty("MBER_SE_CODE") private String mberSeCode;
|
||||
/** 소유자명 */
|
||||
@JsonProperty("MBER_NM") private String mberNm;
|
||||
/** 소유자구분번호 */
|
||||
@JsonProperty("MBER_SE_NO") private String mberSeNo;
|
||||
/** 전화번호 */
|
||||
@JsonProperty("TELNO") private String telno;
|
||||
/** 소유자법정동코드 */
|
||||
@JsonProperty("OWNER_LEGALDONG_CODE") private String ownerLegaldongCode;
|
||||
/** 소유자행정동코드 */
|
||||
@JsonProperty("OWNER_ADSTRD_CODE") private String ownerAdstrdCode;
|
||||
/** 소유자산 */
|
||||
@JsonProperty("OWNER_MNTN") private String ownerMntn;
|
||||
/** 소유자번지 */
|
||||
@JsonProperty("OWNER_LNBR") private String ownerLnbr;
|
||||
/** 소유자호 */
|
||||
@JsonProperty("OWNER_HO") private String ownerHo;
|
||||
/** 소유자주소명 */
|
||||
@JsonProperty("OWNER_ADRES_NM") private String ownerAdresNm;
|
||||
/** 소유자도로명코드 */
|
||||
@JsonProperty("OWNER_ROAD_NM_CODE") private String ownerRoadNmCode;
|
||||
/** 소유자지하건물구분코드 */
|
||||
@JsonProperty("OWNER_UNDGRND_BULD_SE_CODE") private String ownerUndgrndBuldSeCode;
|
||||
/** 소유자건물본번 */
|
||||
@JsonProperty("OWNER_BULD_MAIN_NO") private String ownerBuldMainNo;
|
||||
/** 소유자건물부번 */
|
||||
@JsonProperty("OWNER_BULD_SUB_NO") private String ownerBuldSubNo;
|
||||
/** 소유자주소전체 */
|
||||
@JsonProperty("OWNER_ADRES_FULL") private String ownerAdresFull;
|
||||
/** 변경후차량번호 */
|
||||
@JsonProperty("AFTR_VHRNO") private String aftrVhrno;
|
||||
/** 사용연료코드 */
|
||||
@JsonProperty("USE_FUEL_CODE") private String useFuelCode;
|
||||
/** 용도구분코드 */
|
||||
@JsonProperty("PRPOS_SE_CODE") private String prposSeCode;
|
||||
/** 제작사명 */
|
||||
@JsonProperty("MTRS_FOM_NM") private String mtrsFomNm;
|
||||
/** 변경전차량번호 */
|
||||
@JsonProperty("FRNT_VHRNO") private String frntVhrno;
|
||||
/** 차량번호 */
|
||||
@JsonProperty("VHRNO") private String vhrno;
|
||||
/** 차대번호 */
|
||||
@JsonProperty("VIN") private String vin;
|
||||
/** 차명 */
|
||||
@JsonProperty("CNM") private String cnm;
|
||||
/** 차량총중량 */
|
||||
@JsonProperty("VHCLE_TOT_WT") private String vhcleTotWt;
|
||||
/** 자동차보험종료일자 */
|
||||
@JsonProperty("CAAG_ENDDE") private String caagEndde;
|
||||
/** 변경일자 */
|
||||
@JsonProperty("CHANGE_DE") private String changeDe;
|
||||
/** 차종분류코드 */
|
||||
@JsonProperty("VHCTY_ASORT_CODE") private String vhctyAsortCode;
|
||||
/** 차종유형코드 */
|
||||
@JsonProperty("VHCTY_TY_CODE") private String vhctyTyCode;
|
||||
/** 차종구분코드 */
|
||||
@JsonProperty("VHCTY_SE_CODE") private String vhctySeCode;
|
||||
/** 최대적재량 */
|
||||
@JsonProperty("MXMM_LDG") private String mxmmLdg;
|
||||
/** 차종분류명 */
|
||||
@JsonProperty("VHCTY_ASORT_NM") private String vhctyAsortNm;
|
||||
/** 차종유형명 */
|
||||
@JsonProperty("VHCTY_TY_NM") private String vhctyTyNm;
|
||||
/** 차종구분명 */
|
||||
@JsonProperty("VHCTY_SE_NM") private String vhctySeNm;
|
||||
/** 최초등록일자 */
|
||||
@JsonProperty("FRST_REGIST_DE") private String frstRegistDe;
|
||||
/** 형식명 */
|
||||
@JsonProperty("FOM_NM") private String fomNm;
|
||||
/** 취득일자 */
|
||||
@JsonProperty("ACQS_DE") private String acqsDe;
|
||||
/** 취득종료일자 */
|
||||
@JsonProperty("ACQS_END_DE") private String acqsEndDe;
|
||||
/** 연식월 */
|
||||
@JsonProperty("YBL_MD") private String yblMd;
|
||||
/** 이전등록일자 */
|
||||
@JsonProperty("TRANSR_REGIST_DE") private String transrRegistDe;
|
||||
/** 특정등록상태코드 */
|
||||
@JsonProperty("SPCF_REGIST_STTUS_CODE") private String spcfRegistSttusCode;
|
||||
/** 색상명 */
|
||||
@JsonProperty("COLOR_NM") private String colorNm;
|
||||
/** 저당건수 */
|
||||
@JsonProperty("MRTG_CO") private String mrtgCo;
|
||||
/** 압류건수 */
|
||||
@JsonProperty("SEIZR_CO") private String seizrCo;
|
||||
/** 압인건수 */
|
||||
@JsonProperty("STMD_CO") private String stmdCo;
|
||||
/** 번호판보관여부 */
|
||||
@JsonProperty("NMPL_CSDY_AT") private String nmplCsdyAt;
|
||||
/** 번호판보관반납일자 */
|
||||
@JsonProperty("NMPL_CSDY_REMNR_DE") private String nmplCsdyRemnrDe;
|
||||
/** 원산지구분코드 */
|
||||
@JsonProperty("ORIGIN_SE_CODE") private String originSeCode;
|
||||
/** 번호판규격코드 */
|
||||
@JsonProperty("NMPL_STNDRD_CODE") private String nmplStndrdCode;
|
||||
/** 취득금액 */
|
||||
@JsonProperty("ACQS_AMOUNT") private String acqsAmount;
|
||||
/** 검사유효기간시작일자 */
|
||||
@JsonProperty("INSPT_VALID_PD_BGNDE") private String insptValidPdBgnde;
|
||||
/** 검사유효기간종료일자 */
|
||||
@JsonProperty("INSPT_VALID_PD_ENDDE") private String insptValidPdEndde;
|
||||
/** 사용본거지우편번호코드 */
|
||||
@JsonProperty("USE_STRNGHLD_GRC_CODE") private String useStrnghldGrcCode;
|
||||
/** 화물차승차정원수 */
|
||||
@JsonProperty("TKCAR_PSCAP_CO") private String tkcarPscapCo;
|
||||
/** 사양번호 */
|
||||
@JsonProperty("SPMNNO") private String spmnno;
|
||||
/** 주행거리 */
|
||||
@JsonProperty("TRVL_DSTNC") private String trvlDstnc;
|
||||
/** 최초등록신청번호 */
|
||||
@JsonProperty("FRST_REGIST_RQRCNO") private String frstRegistRqrcno;
|
||||
/** 자진말소예방공지일자 */
|
||||
@JsonProperty("VLNT_ERSR_PRVNTC_NTICE_DE") private String vlntErsrPrvntcNticeDe;
|
||||
/** 등록기관명 */
|
||||
@JsonProperty("REGIST_INSTT_NM") private String registInsttNm;
|
||||
/** 처리불가사유코드 */
|
||||
@JsonProperty("PROCESS_IMPRTY_RESN_CODE") private String processImprtyResnCode;
|
||||
/** 처리불가사유상세 */
|
||||
@JsonProperty("PROCESS_IMPRTY_RESN_DTLS") private String processImprtyResnDtls;
|
||||
/** 차체길이 */
|
||||
@JsonProperty("CBD_LT") private String cbdLt;
|
||||
/** 차체너비 */
|
||||
@JsonProperty("CBD_BT") private String cbdBt;
|
||||
/** 차체높이 */
|
||||
@JsonProperty("CBD_HG") private String cbdHg;
|
||||
/** 최초최대적재량 */
|
||||
@JsonProperty("FRST_MXMM_LDG") private String frstMxmmLdg;
|
||||
/** 연료소비율 */
|
||||
@JsonProperty("FUEL_CNSMP_RT") private String fuelCnsmpRt;
|
||||
/** 전기복합연료소비율 */
|
||||
@JsonProperty("ELCTY_CMPND_FUEL_CNSMP_RT") private String elctyCmpndFuelCnsmpRt;
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,324 +0,0 @@
|
||||
package go.kr.project.api.model.response;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@Schema(description = "자동차등록원부(갑) 응답 모델")
|
||||
@Getter
|
||||
@Setter
|
||||
public class LedgerResponse {
|
||||
|
||||
/** 연계결과코드 */
|
||||
@JsonProperty("CNTC_RESULT_CODE")
|
||||
private String cntcResultCode;
|
||||
|
||||
/** 연계결과상세 */
|
||||
@JsonProperty("CNTC_RESULT_DTLS")
|
||||
private String cntcResultDtls;
|
||||
|
||||
/** 원부그룹번호 */
|
||||
@JsonProperty("LEDGER_GROUP_NO")
|
||||
private String ledgerGroupNo;
|
||||
|
||||
/** 원부개별화번호 */
|
||||
@JsonProperty("LEDGER_INDVDLZ_NO")
|
||||
private String ledgerIndvdlzNo;
|
||||
|
||||
/** 차량관리번호 */
|
||||
@JsonProperty("VHMNO")
|
||||
private String vhmno;
|
||||
|
||||
/** 차량번호 */
|
||||
@JsonProperty("VHRNO")
|
||||
private String vhrno;
|
||||
|
||||
/** 차대번호 */
|
||||
@JsonProperty("VIN")
|
||||
private String vin;
|
||||
|
||||
/** 차종분류코드 */
|
||||
@JsonProperty("VHCTY_ASORT_CODE")
|
||||
private String vhctyAsortCode;
|
||||
|
||||
/** 차종분류명 */
|
||||
@JsonProperty("VHCTY_ASORT_NM")
|
||||
private String vhctyAsortNm;
|
||||
|
||||
/** 차명 */
|
||||
@JsonProperty("CNM")
|
||||
private String cnm;
|
||||
|
||||
/** 색상코드 */
|
||||
@JsonProperty("COLOR_CODE")
|
||||
private String colorCode;
|
||||
|
||||
/** 색상명 */
|
||||
@JsonProperty("COLOR_NM")
|
||||
private String colorNm;
|
||||
|
||||
/** 번호판규격코드 */
|
||||
@JsonProperty("NMPL_STNDRD_CODE")
|
||||
private String nmplStndrdCode;
|
||||
|
||||
/** 번호판규격명 */
|
||||
@JsonProperty("NMPL_STNDRD_NM")
|
||||
private String nmplStndrdNm;
|
||||
|
||||
/** 용도구분코드 */
|
||||
@JsonProperty("PRPOS_SE_CODE")
|
||||
private String prposSeCode;
|
||||
|
||||
/** 용도구분명 */
|
||||
@JsonProperty("PRPOS_SE_NM")
|
||||
private String prposSeNm;
|
||||
|
||||
/** 제작사명 */
|
||||
@JsonProperty("MTRS_FOM_NM")
|
||||
private String mtrsFomNm;
|
||||
|
||||
/** 형식명 */
|
||||
@JsonProperty("FOM_NM")
|
||||
private String fomNm;
|
||||
|
||||
/** 취득금액 */
|
||||
@JsonProperty("ACQS_AMOUNT")
|
||||
private String acqsAmount;
|
||||
|
||||
/** 등록상세코드 */
|
||||
@JsonProperty("REGIST_DETAIL_CODE")
|
||||
private String registDetailCode;
|
||||
|
||||
/** 등록상세명 */
|
||||
@JsonProperty("REGIST_DETAIL_NM")
|
||||
private String registDetailNm;
|
||||
|
||||
/** 최초등록일자 */
|
||||
@JsonProperty("FRST_REGIST_DE")
|
||||
private String frstRegistDe;
|
||||
|
||||
/** 자동차보험종료일자 */
|
||||
@JsonProperty("CAAG_ENDDE")
|
||||
private String caagEndde;
|
||||
|
||||
/** 생산년도 */
|
||||
@JsonProperty("PRYE")
|
||||
private String prye;
|
||||
|
||||
/** 사양번호1 */
|
||||
@JsonProperty("SPMNNO1")
|
||||
private String spmnno1;
|
||||
|
||||
/** 사양번호2 */
|
||||
@JsonProperty("SPMNNO2")
|
||||
private String spmnno2;
|
||||
|
||||
/** 연식월 */
|
||||
@JsonProperty("YBL_MD")
|
||||
private String yblMd;
|
||||
|
||||
/** 주행거리 */
|
||||
@JsonProperty("TRVL_DSTNC")
|
||||
private String trvlDstnc;
|
||||
|
||||
/** 검사유효기간시작일자 */
|
||||
@JsonProperty("INSPT_VALID_PD_BGNDE")
|
||||
private String insptValidPdBgnde;
|
||||
|
||||
/** 검사유효기간종료일자 */
|
||||
@JsonProperty("INSPT_VALID_PD_ENDDE")
|
||||
private String insptValidPdEndde;
|
||||
|
||||
/** 점검유효기간시작일자 */
|
||||
@JsonProperty("CHCK_VALID_PD_BGNDE")
|
||||
private String chckValidPdBgnde;
|
||||
|
||||
/** 점검유효기간종료일자 */
|
||||
@JsonProperty("CHCK_VALID_PD_ENDDE")
|
||||
private String chckValidPdEndde;
|
||||
|
||||
/** 등록신청구분명 */
|
||||
@JsonProperty("REGIST_REQST_SE_NM")
|
||||
private String registReqstSeNm;
|
||||
|
||||
/** 최초등록신청번호 */
|
||||
@JsonProperty("FRST_REGIST_RQRCNO")
|
||||
private String frstRegistRqrcno;
|
||||
|
||||
/** 번호판보관반납일자 */
|
||||
@JsonProperty("NMPL_CSDY_REMNR_DE")
|
||||
private String nmplCsdyRemnrDe;
|
||||
|
||||
/** 번호판보관여부 */
|
||||
@JsonProperty("NMPL_CSDY_AT")
|
||||
private String nmplCsdyAt;
|
||||
|
||||
/** 영업용사용기간 */
|
||||
@JsonProperty("BSS_USE_PD")
|
||||
private String bssUsePd;
|
||||
|
||||
/** 직권말소예방공지일자 */
|
||||
@JsonProperty("OCTHT_ERSR_PRVNTC_NTICE_DE")
|
||||
private String octhtErsrPrvntcNticeDe;
|
||||
|
||||
/** 말소등록일자 */
|
||||
@JsonProperty("ERSR_REGIST_DE")
|
||||
private String ersrRegistDe;
|
||||
|
||||
/** 말소등록구분코드 */
|
||||
@JsonProperty("ERSR_REGIST_SE_CODE")
|
||||
private String ersrRegistSeCode;
|
||||
|
||||
/** 말소등록구분명 */
|
||||
@JsonProperty("ERSR_REGIST_SE_NM")
|
||||
private String ersrRegistSeNm;
|
||||
|
||||
/** 저당건수 */
|
||||
@JsonProperty("MRTGCNT")
|
||||
private String mrtgcnt;
|
||||
|
||||
/** 차량건수 */
|
||||
@JsonProperty("VHCLECNT")
|
||||
private String vhclecnt;
|
||||
|
||||
/** 압인건수 */
|
||||
@JsonProperty("STMDCNT")
|
||||
private String stmdcnt;
|
||||
|
||||
/** 주소1 */
|
||||
@JsonProperty("ADRES1")
|
||||
private String adres1;
|
||||
|
||||
/** 주소명1 */
|
||||
@JsonProperty("ADRES_NM1")
|
||||
private String adresNm1;
|
||||
|
||||
/** 주소 */
|
||||
@JsonProperty("ADRES")
|
||||
private String adres;
|
||||
|
||||
/** 주소명 */
|
||||
@JsonProperty("ADRES_NM")
|
||||
private String adresNm;
|
||||
|
||||
/** 개인법인여부 */
|
||||
@JsonProperty("INDVDL_BSNM_AT")
|
||||
private String indvdlBsnmAt;
|
||||
|
||||
/** 전화번호 */
|
||||
@JsonProperty("TELNO")
|
||||
private String telno;
|
||||
|
||||
/** 소유자명 */
|
||||
@JsonProperty("MBER_NM")
|
||||
private String mberNm;
|
||||
|
||||
/** 소유자구분코드 */
|
||||
@JsonProperty("MBER_SE_CODE")
|
||||
private String mberSeCode;
|
||||
|
||||
/** 소유자구분번호 */
|
||||
@JsonProperty("MBER_SE_NO")
|
||||
private String mberSeNo;
|
||||
|
||||
/** 면세대상자구분코드 */
|
||||
@JsonProperty("TAXXMPT_TRGTER_SE_CODE")
|
||||
private String taxxmptTrgterSeCode;
|
||||
|
||||
/** 면세대상자구분코드명 */
|
||||
@JsonProperty("TAXXMPT_TRGTER_SE_CODE_NM")
|
||||
private String taxxmptTrgterSeCodeNm;
|
||||
|
||||
/** 건수사항 */
|
||||
@JsonProperty("CNT_MATTER")
|
||||
private String cntMatter;
|
||||
|
||||
/** 읍면동명 */
|
||||
@JsonProperty("EMD_NM")
|
||||
private String emdNm;
|
||||
|
||||
/** 예방건수 */
|
||||
@JsonProperty("PRVNTCCNT")
|
||||
private String prvntccnt;
|
||||
|
||||
/** 수출이행여부확인일자 */
|
||||
@JsonProperty("XPORT_FLFL_AT_STTEMNT_DE")
|
||||
private String xportFlflAtSttemntDe;
|
||||
|
||||
/** 협력사신청번호 */
|
||||
@JsonProperty("PARTN_RQRCNO")
|
||||
private String partnRqrcno;
|
||||
|
||||
/** 레코드 목록 */
|
||||
@JsonProperty("record")
|
||||
private List<Record> record;
|
||||
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@Schema(name = "LedgerRecord", description = "원부 변경내역 record")
|
||||
@Getter
|
||||
@Setter
|
||||
public static class Record {
|
||||
/** 메인체크 */
|
||||
@JsonProperty("MAINCHK") private String mainchk;
|
||||
/** 변경작업구분코드 */
|
||||
@JsonProperty("CHANGE_JOB_SE_CODE") private String changeJobSeCode;
|
||||
/** 주번호 */
|
||||
@JsonProperty("MAINNO") private String mainno;
|
||||
/** 부번호 */
|
||||
@JsonProperty("SUBNO") private String subno;
|
||||
/** 상세내역 */
|
||||
@JsonProperty("DTLS") private String dtls;
|
||||
/** 신청번호 */
|
||||
@JsonProperty("RQRCNO") private String rqrcno;
|
||||
/** 차량관리번호 */
|
||||
@JsonProperty("VHMNO") private String vhmno;
|
||||
/** 원부그룹번호 */
|
||||
@JsonProperty("LEDGER_GROUP_NO") private String ledgerGroupNo;
|
||||
/** 원부개별화번호 */
|
||||
@JsonProperty("LEDGER_INDVDLZ_NO") private String ledgerIndvdlzNo;
|
||||
/** 구분명 */
|
||||
@JsonProperty("GUBUN_NM") private String gubunNm;
|
||||
/** 변경일자 */
|
||||
@JsonProperty("CHANGE_DE") private String changeDe;
|
||||
/** 상세일련번호 */
|
||||
@JsonProperty("DETAIL_SN") private String detailSn;
|
||||
/** 플래그 */
|
||||
@JsonProperty("FLAG") private String flag;
|
||||
|
||||
public String getMainchk() { return mainchk; }
|
||||
public void setMainchk(String mainchk) { this.mainchk = mainchk; }
|
||||
public String getChangeJobSeCode() { return changeJobSeCode; }
|
||||
public void setChangeJobSeCode(String changeJobSeCode) { this.changeJobSeCode = changeJobSeCode; }
|
||||
public String getMainno() { return mainno; }
|
||||
public void setMainno(String mainno) { this.mainno = mainno; }
|
||||
public String getSubno() { return subno; }
|
||||
public void setSubno(String subno) { this.subno = subno; }
|
||||
public String getDtls() { return dtls; }
|
||||
public void setDtls(String dtls) { this.dtls = dtls; }
|
||||
public String getRqrcno() { return rqrcno; }
|
||||
public void setRqrcno(String rqrcno) { this.rqrcno = rqrcno; }
|
||||
public String getVhmno() { return vhmno; }
|
||||
public void setVhmno(String vhmno) { this.vhmno = vhmno; }
|
||||
public String getLedgerGroupNo() { return ledgerGroupNo; }
|
||||
public void setLedgerGroupNo(String ledgerGroupNo) { this.ledgerGroupNo = ledgerGroupNo; }
|
||||
public String getLedgerIndvdlzNo() { return ledgerIndvdlzNo; }
|
||||
public void setLedgerIndvdlzNo(String ledgerIndvdlzNo) { this.ledgerIndvdlzNo = ledgerIndvdlzNo; }
|
||||
public String getGubunNm() { return gubunNm; }
|
||||
public void setGubunNm(String gubunNm) { this.gubunNm = gubunNm; }
|
||||
public String getChangeDe() { return changeDe; }
|
||||
public void setChangeDe(String changeDe) { this.changeDe = changeDe; }
|
||||
public String getDetailSn() { return detailSn; }
|
||||
public void setDetailSn(String detailSn) { this.detailSn = detailSn; }
|
||||
public String getFlag() { return flag; }
|
||||
public void setFlag(String flag) { this.flag = flag; }
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,130 @@
|
||||
package go.kr.project.api.model.response;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 자동차기본사항조회 응답 모델 (신버전)
|
||||
*
|
||||
* <p>
|
||||
* 국토교통부 → 지자체 응답 규격을 매핑한 모델입니다. 상위에 연계결과 정보가 오고,
|
||||
* 상세 데이터는 record 배열로 전달됩니다.
|
||||
* </p>
|
||||
*/
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@Schema(description = "자동차기본사항조회 응답 모델 (신버전)")
|
||||
@Getter
|
||||
@Setter
|
||||
public class NewBasicResponse { // 총 3개 필드 (외부 클래스 3개, 중첩 Record 클래스 84개)
|
||||
|
||||
/** 연계결과코드 (성공/실패 코드) */
|
||||
@JsonProperty("LINK_RSLT_CD")
|
||||
private String linkRsltCd;
|
||||
|
||||
/** 연계결과상세 (에러 메시지 등 상세 사유) */
|
||||
@JsonProperty("LINK_RSLT_DTL")
|
||||
private String linkRsltDtl;
|
||||
|
||||
/** 응답 레코드 목록 */
|
||||
@JsonProperty("record")
|
||||
private List<Record> record;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@Schema(name = "NewBasicRecord", description = "기본사항 record 항목 (신버전)")
|
||||
@Getter
|
||||
@Setter
|
||||
public static class Record {
|
||||
@JsonProperty("VHRNO") private String vhrno; // 차량번호
|
||||
@JsonProperty("ATMB_NM") private String atmbNm; // 차명
|
||||
@JsonProperty("RPRS_OWNR_NM") private String rprsOwnrNm; // 대표소유자성명
|
||||
@JsonProperty("RPRSV_OWNR_IDECNO") private String rprsvOwnrIdecno; // 대표소유자회원번호
|
||||
@JsonProperty("ERSR_REG_YMD") private String ersrRegYmd; // 말소등록일
|
||||
@JsonProperty("PRCS_IMPRTY_RSN_CD") private String prcsImprtyRsnCd; // 처리불가사유코드
|
||||
@JsonProperty("PRCS_IMPRTY_RSN_DTLS") private String prcsImprtyRsnDtls; // 처리불가사유명세
|
||||
@JsonProperty("YRIDNW") private String yridnw; // 연식
|
||||
@JsonProperty("VIN") private String vin; // 차대번호
|
||||
@JsonProperty("CARMDL_ASORT_NM") private String carmdlAsortNm; // 차종종별명
|
||||
@JsonProperty("FRST_REG_YMD") private String frstRegYmd; // 최초등록일
|
||||
@JsonProperty("COLOR_NM") private String colorNm; // 색상명
|
||||
@JsonProperty("STRCT_CHG_CNT") private String strctChgCnt; // 구조변경수
|
||||
@JsonProperty("NOPLT_CSDY_YN") private String noplTcsdyYn; // 번호판영치여부
|
||||
@JsonProperty("NOPLT_CSDY_AVTSMT_YMD") private String noplTcsdyAvtsmtYmd; // 번호판영치최고일
|
||||
@JsonProperty("INSP_VLD_PD_BGNG_YMD") private String inspVldPdBgngYmd; // 검사유효기간시작일
|
||||
@JsonProperty("INSP_VLD_PD_END_YMD") private String inspVldPdEndYmd; // 검사유효기간종료일
|
||||
@JsonProperty("SPMNNO") private String spmnno; // 제원관리번호
|
||||
@JsonProperty("DRVNG_DSTNC") private String drvngDstnc; // 주행거리
|
||||
@JsonProperty("FOM_NM") private String fomNm; // 형식
|
||||
@JsonProperty("DSPLVL") private String dsplvl; // 배기량
|
||||
@JsonProperty("CARMDL_CLSF_NM") private String carmdlClsfNm; // 차종분류명
|
||||
@JsonProperty("FBCTN_YMD") private String fbctnYmd; // 제작년월일
|
||||
@JsonProperty("USGSRHLD_ADDR_NM") private String usgsrhldAddrNm; // 사용본거지상세주소
|
||||
@JsonProperty("MTRS_FOM_NM") private String mtrsFomNm; // 원동기형식명
|
||||
@JsonProperty("RDCPCT_CNT") private String rdcpctCnt; // 승차정원수
|
||||
@JsonProperty("FRST_REG_APLY_RCPT_NO") private String frstRegAplyRcptNo; // 최초등록접수번호
|
||||
@JsonProperty("OGNZ_NM") private String ognzNm; // 등록기관명
|
||||
@JsonProperty("ERSR_REG_SE_NM") private String ersrRegSeNm; // 말소등록구분명
|
||||
@JsonProperty("BFR_VHRNO") private String bfrVhrno; // 이전차량번호
|
||||
@JsonProperty("USE_FUEL_CD") private String useFuelCd; // 사용연료코드
|
||||
@JsonProperty("RPRS_OWNR_MBR_SE_CD") private String rprsOwnrMbrSeCd; // 대표소유자회원구분코드
|
||||
@JsonProperty("RPRS_OWNR_TELNO") private String rprsOwnrTelno; // 대표소유자전화번호
|
||||
@JsonProperty("OWNR_STDG_CD") private String ownrStdgCd; // 소유자법정동코드
|
||||
@JsonProperty("OWNR_WHOL_ADDR") private String ownrWholAddr; // 소유자전체주소
|
||||
@JsonProperty("VHCL_TOTL_WT") private String vhclTotlWt; // 차량총중량
|
||||
@JsonProperty("MXMM_LDG") private String mxmmLdg; // 최대적재량
|
||||
@JsonProperty("CBD_LT") private String cbdLt; // 차체길이
|
||||
@JsonProperty("CBD_BT") private String cbdBt; // 차체너비
|
||||
@JsonProperty("CBD_HG") private String cbdHg; // 차체높이
|
||||
@JsonProperty("CARMDL_ASORT_CD") private String carmdlAsortCd; // 차종종별코드
|
||||
@JsonProperty("CARMDL_TYPE_CD") private String carmdlTypeCd; // 차종유형코드
|
||||
@JsonProperty("FUEL_CNSMPRT") private String fuelCnsmprt; // 연료소비율
|
||||
@JsonProperty("ERSR_REG_SE_CD") private String ersrRegSeCd; // 말소등록구분코드
|
||||
@JsonProperty("REG_DTL_CD") private String regDtlCd; // 등록상세코드
|
||||
@JsonProperty("USGSRHLD_STDG_CD") private String usgsrhldStdgCd; // 사용본거지법정동코드
|
||||
@JsonProperty("USGSRHLD_DONG_CD") private String usgsrhldDongCd; // 사용본거지행정동코드
|
||||
@JsonProperty("USGSRHLD_MTN_YN") private String usgsrhldMtnYn; // 사용본거지산 여부
|
||||
@JsonProperty("USGSRHLD_LNBR") private String usgsrhldLnbr; // 사용본거지번지
|
||||
@JsonProperty("USGSRHLD_HO") private String usgsrhldHo; // 사용본거지호
|
||||
@JsonProperty("USGSRHLD_ROAD_NM_CD") private String usgsrhldRoadNmCd; // 사용본거지도로명코드
|
||||
@JsonProperty("USGSRHLD_UDGD_BLDG_SE_CD") private String usgsrhldUdgdBldgSeCd; // 사용본거지지하건물구분코드
|
||||
@JsonProperty("USGSRHLD_BMNO") private String usgsrhldBmno; // 사용본거지건물주요번호
|
||||
@JsonProperty("USGSRHLD_BSNO") private String usgsrhldBsno; // 사용본거지건물부번호
|
||||
@JsonProperty("OWNR_DONG_CD") private String ownrDongCd; // 소유자행정동코드
|
||||
@JsonProperty("OWNR_MTN_YN") private String ownrMtnYn; // 소유자산 여부
|
||||
@JsonProperty("OWNR_LNBR") private String ownrLnbr; // 소유자번지
|
||||
@JsonProperty("OWNR_HO") private String ownrHo; // 소유자호
|
||||
@JsonProperty("OWNR_ADDR_NM") private String ownrAddrNm; // 소유자상세주소
|
||||
@JsonProperty("OWNR_ROAD_NM_CD") private String ownrRoadNmCd; // 소유자도로명코드
|
||||
@JsonProperty("OWNR_UDGD_BLDG_SE_CD") private String ownrUdgdBldgSeCd; // 소유자지하건물구분코드
|
||||
@JsonProperty("OWNR_BMNO") private String ownrBmno; // 소유자건물주요번호
|
||||
@JsonProperty("OWNR_BSNO") private String ownrBsno; // 소유자건물부번호
|
||||
@JsonProperty("REAR_VHRNO") private String rearVhrno; // 신차량번호
|
||||
@JsonProperty("USG_SE_CD") private String usgSeCd; // 용도구분코드
|
||||
@JsonProperty("VEAG_END_YMD") private String veagEndYmd; // 차령만료일자
|
||||
@JsonProperty("CHG_YMD") private String chgYmd; // 차번호변경시기
|
||||
@JsonProperty("CARMDL_SE_CD") private String carmdlSeCd; // 차종분류코드
|
||||
@JsonProperty("CARMDL_TYPE_NM") private String carmdlTypeNm; // 차종유형명
|
||||
@JsonProperty("ACQS_YMD") private String acqsYmd; // 취득일자
|
||||
@JsonProperty("ACQS_END_YMD") private String acqsEndYmd; // 취득종료일자
|
||||
@JsonProperty("TRANSR_REG_YMD") private String transrRegYmd; // 이전등록일(양수일)
|
||||
@JsonProperty("SPCF_REG_STTS_CD") private String spcfRegSttsCd; // 제원등록상태코드
|
||||
@JsonProperty("SRC_SE_CD") private String srcSeCd; // 출처구분코드
|
||||
@JsonProperty("NOPLT_SPCFCT_CD") private String noplTSpcfctCd; // 번호판규격코드
|
||||
@JsonProperty("ACQS_AMT") private String acqsAmt; // 취득금액
|
||||
@JsonProperty("USGSRHLD_GRC_CD") private String usgsrhldGrcCd; // 사용본거지관청코드
|
||||
@JsonProperty("VLNT_ERSR_PRVNTC_AVTSMT_YMD") private String vlntErsrPrvntcAvtsmtYmd; // 예고통지일
|
||||
@JsonProperty("FRST_MXMM_LDG") private String frstMxmmLdg; // 최초최대적재량
|
||||
@JsonProperty("REG_YMD") private String regYmd; // 등록일(변경일)
|
||||
@JsonProperty("ELCTY_CMPND_FUEL_CNSMPRT") private String elctyCmpndFuelCnsmprt; // 전기복합연료소비율
|
||||
@JsonProperty("USGSRHLD_WHOL_ADDR") private String usgsrhldWholAddr; // 사용본거지전체주소
|
||||
@JsonProperty("MRTG_CNT") private String mrtgCnt; // 저당수
|
||||
@JsonProperty("SZR_CNT") private String szrCnt; // 압류건수
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,343 @@
|
||||
package go.kr.project.api.model.response;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@Schema(description = "자동차등록원부(갑) 응답 모델 (신버전)")
|
||||
@Getter
|
||||
@Setter
|
||||
public class NewLedgerResponse { // 총 64개 필드 (외부 클래스 66개, 중첩 Record 클래스 16개)
|
||||
|
||||
@JsonProperty("LINK_RSLT_CD")
|
||||
private String linkRsltCd;
|
||||
|
||||
@JsonProperty("LINK_RSLT_DTL")
|
||||
private String linkRsltDtl;
|
||||
|
||||
/** 원부그룹번호 */
|
||||
@JsonProperty("LEDGER_GROUP_NO")
|
||||
private String ledgerGroupNo;
|
||||
|
||||
/** 원부개별번호 */
|
||||
@JsonProperty("LEDGER_INDIV_NO")
|
||||
private String ledgerIndivNo;
|
||||
|
||||
/** 차량관리번호 */
|
||||
@JsonProperty("VHMNO")
|
||||
private String vhmno;
|
||||
|
||||
/** 차량등록번호 */
|
||||
@JsonProperty("VHRNO")
|
||||
private String vhrno;
|
||||
|
||||
/** 차대번호 */
|
||||
@JsonProperty("VIN")
|
||||
private String vin;
|
||||
|
||||
/** 차종종별코드 */
|
||||
@JsonProperty("CARMDL_ASORT_CD")
|
||||
private String carmdlAsortCd;
|
||||
|
||||
/** 차종종별명 */
|
||||
@JsonProperty("CARMDL_ASORT_NM")
|
||||
private String carmdlAsortNm;
|
||||
|
||||
/** 차명 */
|
||||
@JsonProperty("ATMB_NM")
|
||||
private String atmbNm;
|
||||
|
||||
/** 색상코드 */
|
||||
@JsonProperty("COLOR_CD")
|
||||
private String colorCd;
|
||||
|
||||
/** 색상명 */
|
||||
@JsonProperty("COLOR_NM")
|
||||
private String colorNm;
|
||||
|
||||
/** 번호판규격코드 */
|
||||
@JsonProperty("NOPLT_SPCFCT_CD")
|
||||
private String nopltSpcfctCd;
|
||||
|
||||
/** 번호판규격명 */
|
||||
@JsonProperty("NOPLT_SPCFCT_NM")
|
||||
private String nopltSpcfctNm;
|
||||
|
||||
/** 용도구분코드 */
|
||||
@JsonProperty("USG_SE_CD")
|
||||
private String usgSeCd;
|
||||
|
||||
/** 용도구분명 */
|
||||
@JsonProperty("USG_SE_NM")
|
||||
private String usgSeNm;
|
||||
|
||||
/** 원동기형식명 */
|
||||
@JsonProperty("MTRS_FOM_NM")
|
||||
private String mtrsFomNm;
|
||||
|
||||
/** 형식명 */
|
||||
@JsonProperty("FOM_NM")
|
||||
private String fomNm;
|
||||
|
||||
/** 취득금액 */
|
||||
@JsonProperty("ACQS_AMT")
|
||||
private String acqsAmt;
|
||||
|
||||
/** 등록상세코드 */
|
||||
@JsonProperty("REG_DTL_CD")
|
||||
private String regDtlCd;
|
||||
|
||||
/** 등록상세명 */
|
||||
@JsonProperty("REG_DTL_NM")
|
||||
private String regDtlNm;
|
||||
|
||||
/** 최초등록일 */
|
||||
@JsonProperty("FRST_REG_YMD")
|
||||
private String frstRegYmd;
|
||||
|
||||
/** 차령종료일 */
|
||||
@JsonProperty("VEAG_END_YMD")
|
||||
private String veagEndYmd;
|
||||
|
||||
/** 연식 */
|
||||
@JsonProperty("YRIDNW")
|
||||
private String yridnw;
|
||||
|
||||
/** 제원관리번호1 */
|
||||
@JsonProperty("SPMNNO_1")
|
||||
private String spmnno1;
|
||||
|
||||
/** 제원관리번호2 */
|
||||
@JsonProperty("SPMNNO_2")
|
||||
private String spmnno2;
|
||||
|
||||
/** 제작년월일 */
|
||||
@JsonProperty("FBCTN_YMD")
|
||||
private String fbctnYmd;
|
||||
|
||||
/** 주행거리 */
|
||||
@JsonProperty("DRVNG_DSTNC")
|
||||
private String drvngDstnc;
|
||||
|
||||
/** 검사유효기간시작일 */
|
||||
@JsonProperty("INSP_VLD_PD_BGNG_YMD")
|
||||
private String inspVldPdBgngYmd;
|
||||
|
||||
/** 검사유효기간종료일 */
|
||||
@JsonProperty("INSP_VLD_PD_END_YMD")
|
||||
private String inspVldPdEndYmd;
|
||||
|
||||
/** 점검유효기간시작일 */
|
||||
@JsonProperty("CHCK_VLD_PD_BGNG_YMD")
|
||||
private String chckVldPdBgngYmd;
|
||||
|
||||
/** 점검유효기간종료일 */
|
||||
@JsonProperty("CHCK_VLD_PD_END_YMD")
|
||||
private String chckVldPdEndYmd;
|
||||
|
||||
/** 등록신청구분명 */
|
||||
@JsonProperty("REG_APLY_SE_NM")
|
||||
private String regAplySeNm;
|
||||
|
||||
/** 최초등록접수번호 */
|
||||
@JsonProperty("FRST_REG_APLY_RCPT_NO")
|
||||
private String frstRegAplyRcptNo;
|
||||
|
||||
/** 번호판영치최고일 */
|
||||
@JsonProperty("NOPLT_CSDY_AVTSMT_YMD")
|
||||
private String nopltCsdyAvtsmtYmd;
|
||||
|
||||
/** 번호판영치여부 */
|
||||
@JsonProperty("NOPLT_CSDY_YN")
|
||||
private String nopltCsdyYn;
|
||||
|
||||
/** 사업용사용기간 */
|
||||
@JsonProperty("BSS_USE_PD_YMD")
|
||||
private String bssUsePdYmd;
|
||||
|
||||
/** 직권말소예고통지일 */
|
||||
@JsonProperty("OCTHT_ERSR_PRVNTC_AVTSMT_YMD")
|
||||
private String octhtErsrPrvntcAvtsmtYmd;
|
||||
|
||||
/** 말소등록일 */
|
||||
@JsonProperty("ERSR_REG_YMD")
|
||||
private String ersrRegYmd;
|
||||
|
||||
/** 말소등록구분코드 */
|
||||
@JsonProperty("ERSR_REG_SE_CD")
|
||||
private String ersrRegSeCd;
|
||||
|
||||
/** 말소등록구분명 */
|
||||
@JsonProperty("ERSR_REG_SE_NM")
|
||||
private String ersrRegSeNm;
|
||||
|
||||
/** 저당수 */
|
||||
@JsonProperty("MRTG_CNT")
|
||||
private String mrtgCnt;
|
||||
|
||||
/** 압류건수 */
|
||||
@JsonProperty("SZR_CNT")
|
||||
private String szrCnt;
|
||||
|
||||
/** 구조변경수 */
|
||||
@JsonProperty("STRCT_CHG_CNT")
|
||||
private String strctChgCnt;
|
||||
|
||||
/** 사용본거지주소 */
|
||||
@JsonProperty("USGSRHLD_ADDR_1")
|
||||
private String usgsrhldAddr1;
|
||||
|
||||
/** 사용본거지주소상세 */
|
||||
@JsonProperty("USGSRHLD_ADDR_DTL_1")
|
||||
private String usgsrhldAddrDtl1;
|
||||
|
||||
/** 소유자주소 */
|
||||
@JsonProperty("OWNR_ADDR")
|
||||
private String ownrAddr;
|
||||
|
||||
/** 소유자주소상세 */
|
||||
@JsonProperty("OWNR_ADDR_DTL")
|
||||
private String ownrAddrDtl;
|
||||
|
||||
/** 개인사업자여부 */
|
||||
@JsonProperty("INDVDL_BZMN_YN")
|
||||
private String indvdlBzmnYn;
|
||||
|
||||
/** 대표소유자전화번호 */
|
||||
@JsonProperty("RPRS_OWNR_TELNO")
|
||||
private String rprsOwnrTelno;
|
||||
|
||||
/** 대표소유자성명 */
|
||||
@JsonProperty("RPRS_OWNR_NM")
|
||||
private String rprsOwnrNm;
|
||||
|
||||
/** 대표소유자회원구분코드 */
|
||||
@JsonProperty("RPRS_OWNR_MBR_SE_CD")
|
||||
private String rprsOwnrMbrSeCd;
|
||||
|
||||
/** 대표소유자회원번호 */
|
||||
@JsonProperty("RPRSV_OWNR_IDECNO")
|
||||
private String rprsvOwnrIdecno;
|
||||
|
||||
/** 비과세대상구분코드명 */
|
||||
@JsonProperty("TAXXMPT_APLCN_SE_CD")
|
||||
private String taxxmptAplcnSeCd;
|
||||
|
||||
/** 비과세대상구분코드 */
|
||||
@JsonProperty("TAXXMPT_TRPR_SE_CD")
|
||||
private String taxxmptTrprSeCd;
|
||||
|
||||
/** 특기사항건수 */
|
||||
@JsonProperty("SPCABL_MTTR_CNT")
|
||||
private String spcablMttrCnt;
|
||||
|
||||
/** 사용본거지행정동명 */
|
||||
@JsonProperty("USGSRHLD_DONG_NM")
|
||||
private String usgsrhldDongNm;
|
||||
|
||||
/** 예고수 */
|
||||
@JsonProperty("PRVNTC_CNT")
|
||||
private String prvntcCnt;
|
||||
|
||||
/** 수출이행여부신고일 */
|
||||
@JsonProperty("XPORT_FLFL_YN_DCLR_YMD")
|
||||
private String xportFlflYnDclrYmd;
|
||||
|
||||
/** 발급번호 */
|
||||
@JsonProperty("ISSU_NO")
|
||||
private String issuNo;
|
||||
|
||||
/** 최초양도일 */
|
||||
@JsonProperty("FRST_TRNSFR_YMD")
|
||||
private String frstTrnsfrYmd;
|
||||
|
||||
/** 구동축전지식별번호 */
|
||||
@JsonProperty("DRIV_SRGBTRY_IDNTF_NO")
|
||||
private String drivSrgbtryIdntfNo;
|
||||
|
||||
/** 처리불가사유코드 */
|
||||
@JsonProperty("PROCESS_IMPRTY_RESN_CODE")
|
||||
private String processImprtyResnCode;
|
||||
|
||||
/** 처리불가사유상세 */
|
||||
@JsonProperty("PROCESS_IMPRTY_RESN_DTLS")
|
||||
private String processImprtyResnDtls;
|
||||
|
||||
@JsonProperty("record")
|
||||
private List<Record> record;
|
||||
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@Schema(name = "NewLedgerRecord", description = "원부 변경내역 record (신버전)")
|
||||
@Getter
|
||||
@Setter
|
||||
public static class Record {
|
||||
/** 해제여부 */
|
||||
@JsonProperty("SZR_RMV_DTL_SN")
|
||||
private String szrRmvDtlSn;
|
||||
|
||||
/** 변경업무구분코드 */
|
||||
@JsonProperty("CHG_TASK_SE_CD")
|
||||
private String chgTaskSeCd;
|
||||
|
||||
/** 주번호 */
|
||||
@JsonProperty("MAIN_NO")
|
||||
private String mainNo;
|
||||
|
||||
/** 부번호 */
|
||||
@JsonProperty("SNO")
|
||||
private String sno;
|
||||
|
||||
/** 사항란 */
|
||||
@JsonProperty("SPCABL_MTTR")
|
||||
private String spcablMttr;
|
||||
|
||||
/** 세대주명 */
|
||||
@JsonProperty("HSHLDR_NM")
|
||||
private String hshldrNm;
|
||||
|
||||
/** 세대주개인암호화번호 */
|
||||
@JsonProperty("HSHLDR_IDECNO")
|
||||
private String hshldrIdecno;
|
||||
|
||||
/** 접수번호 */
|
||||
@JsonProperty("APLY_RCPT_NO")
|
||||
private String aplyRcptNo;
|
||||
|
||||
/** 차량관리번호 */
|
||||
@JsonProperty("VHMNO")
|
||||
private String vhmno;
|
||||
|
||||
/** 원부그룹번호 */
|
||||
@JsonProperty("LEDGER_GROUP_NO")
|
||||
private String ledgerGroupNo;
|
||||
|
||||
/** 원부개별번호 */
|
||||
@JsonProperty("LEDGER_INDIV_NO")
|
||||
private String ledgerIndivNo;
|
||||
|
||||
/** 변경업무구분명 */
|
||||
@JsonProperty("CHG_TASK_SE_NM")
|
||||
private String chgTaskSeNm;
|
||||
|
||||
/** 변경일자 */
|
||||
@JsonProperty("CHG_YMD")
|
||||
private String chgYmd;
|
||||
|
||||
/** 상세순번 */
|
||||
@JsonProperty("DTL_SN")
|
||||
private String dtlSn;
|
||||
|
||||
/** 표기여부 */
|
||||
@JsonProperty("FLAG")
|
||||
private String flag;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,132 @@
|
||||
package go.kr.project.api.model.response;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 자동차기본사항조회 응답 모델 (구버전)
|
||||
*
|
||||
* <p>
|
||||
* 구 규격(도로교통공단/교통안전공단 구버전) 응답을 매핑한 모델입니다.
|
||||
* 상단에 연계 결과코드/상세가 오고, 상세 데이터는 record 배열로 내려옵니다.
|
||||
* </p>
|
||||
*/
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@Schema(description = "자동차기본사항조회 응답 모델 (구버전)")
|
||||
@Getter
|
||||
@Setter
|
||||
public class OldBasicResponse { // 총 3개 필드 (외부 클래스 3개, 중첩 Record 클래스 84개)
|
||||
|
||||
/** 연계결과코드 */
|
||||
@JsonProperty("CNTC_RESULT_CODE")
|
||||
private String cntcResultCode;
|
||||
|
||||
/** 연계결과상세 */
|
||||
@JsonProperty("CNTC_RESULT_DTLS")
|
||||
private String cntcResultDtls;
|
||||
|
||||
/** 응답 레코드 목록 */
|
||||
@JsonProperty("record")
|
||||
private List<Record> record;
|
||||
|
||||
|
||||
@JsonInclude(JsonInclude.Include.NON_NULL)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@Schema(name = "OldBasicRecord", description = "기본사항 record 항목 (구버전)")
|
||||
@Getter
|
||||
@Setter
|
||||
public static class Record {
|
||||
@JsonProperty("PRYE") private String prye; // 연식
|
||||
@JsonProperty("REGIST_DE") private String registDe; // 등록일자(변경일)
|
||||
@JsonProperty("ERSR_REGIST_SE_CODE") private String ersrRegistSeCode; // 말소등록구분코드
|
||||
@JsonProperty("ERSR_REGIST_SE_NM") private String ersrRegistSeNm; // 말소등록구분명
|
||||
@JsonProperty("ERSR_REGIST_DE") private String ersrRegistDe; // 말소등록일자
|
||||
@JsonProperty("REGIST_DETAIL_CODE") private String registDetailCode; // 등록상세코드
|
||||
@JsonProperty("DSPLVL") private String dsplvl; // 배기량
|
||||
@JsonProperty("USE_STRNGHLD_LEGALDONG_CODE") private String useStrnghldLegaldongCode; // 사용본거지법정동코드
|
||||
@JsonProperty("USE_STRNGHLD_ADSTRD_CODE") private String useStrnghldAdstrdCode; // 사용본거지행정동코드
|
||||
@JsonProperty("USE_STRNGHLD_MNTN") private String useStrnghldMntn; // 사용본거지산 여부
|
||||
@JsonProperty("USE_STRNGHLD_LNBR") private String useStrnghldLnbr; // 사용본거지번지
|
||||
@JsonProperty("USE_STRNGHLD_HO") private String useStrnghldHo; // 사용본거지호
|
||||
@JsonProperty("USE_STRNGHLD_ADRES_NM") private String useStrnghldAdresNm; // 사용본거지상세주소
|
||||
@JsonProperty("USE_STRNGHLD_ROAD_NM_CODE") private String useStrnghldRoadNmCode; // 사용본거지도로명코드
|
||||
@JsonProperty("USGSRHLD_UNDGRND_BULD_SE_CODE") private String usgsrhldUndgrndBuldSeCode; // 사용본거지지하건물구분코드
|
||||
@JsonProperty("USE_STRNGHLD_BULD_MAIN_NO") private String useStrnghldBuldMainNo; // 사용본거지건물주요번호
|
||||
@JsonProperty("USE_STRNGHLD_BULD_SUB_NO") private String useStrnghldBuldSubNo; // 사용본거지건물부번호
|
||||
@JsonProperty("USGSRHLD_ADRES_FULL") private String usgsrhldAdresFull; // 사용본거지전체주소
|
||||
@JsonProperty("MBER_SE_CODE") private String mberSeCode; // 대표소유자회원구분코드
|
||||
@JsonProperty("MBER_NM") private String mberNm; // 대표소유자성명
|
||||
@JsonProperty("MBER_SE_NO") private String mberSeNo; // 대표소유자회원번호
|
||||
@JsonProperty("TELNO") private String telno; // 대표소유자전화번호
|
||||
@JsonProperty("OWNER_LEGALDONG_CODE") private String ownerLegaldongCode; // 소유자법정동코드
|
||||
@JsonProperty("OWNER_ADSTRD_CODE") private String ownerAdstrdCode; // 소유자행정동코드
|
||||
@JsonProperty("OWNER_MNTN") private String ownerMntn; // 소유자산 여부
|
||||
@JsonProperty("OWNER_LNBR") private String ownerLnbr; // 소유자번지
|
||||
@JsonProperty("OWNER_HO") private String ownerHo; // 소유자호
|
||||
@JsonProperty("OWNER_ADRES_NM") private String ownerAdresNm; // 소유자상세주소
|
||||
@JsonProperty("OWNER_ROAD_NM_CODE") private String ownerRoadNmCode; // 소유자도로명코드
|
||||
@JsonProperty("OWNER_UNDGRND_BULD_SE_CODE") private String ownerUndgrndBuldSeCode; // 소유자지하건물구분코드
|
||||
@JsonProperty("OWNER_BULD_MAIN_NO") private String ownerBuldMainNo; // 소유자건물주요번호
|
||||
@JsonProperty("OWNER_BULD_SUB_NO") private String ownerBuldSubNo; // 소유자건물부번호
|
||||
@JsonProperty("OWNER_ADRES_FULL") private String ownerAdresFull; // 소유자전체주소
|
||||
@JsonProperty("AFTR_VHRNO") private String aftrVhrno; // 신차량번호
|
||||
@JsonProperty("USE_FUEL_CODE") private String useFuelCode; // 사용연료코드
|
||||
@JsonProperty("PRPOS_SE_CODE") private String prposSeCode; // 용도구분코드
|
||||
@JsonProperty("MTRS_FOM_NM") private String mtrsFomNm; // 원동기형식명
|
||||
@JsonProperty("FRNT_VHRNO") private String frntVhrno; // 이전차량번호
|
||||
@JsonProperty("VHRNO") private String vhrno; // 차량번호
|
||||
@JsonProperty("VIN") private String vin; // 차대번호
|
||||
@JsonProperty("CNM") private String cnm; // 차명
|
||||
@JsonProperty("VHCLE_TOT_WT") private String vhcleTotWt; // 차량총중량
|
||||
@JsonProperty("CAAG_ENDDE") private String caagEndde; // 차령만료일자
|
||||
@JsonProperty("CHANGE_DE") private String changeDe; // 차번호변경시기
|
||||
@JsonProperty("VHCTY_ASORT_CODE") private String vhctyAsortCode; // 차종종별코드
|
||||
@JsonProperty("VHCTY_TY_CODE") private String vhctyTyCode; // 차종유형코드
|
||||
@JsonProperty("VHCTY_SE_CODE") private String vhctySeCode; // 차종분류코드
|
||||
@JsonProperty("MXMM_LDG") private String mxmmLdg; // 최대적재량
|
||||
@JsonProperty("VHCTY_ASORT_NM") private String vhctyAsortNm; // 차종종별명
|
||||
@JsonProperty("VHCTY_TY_NM") private String vhctyTyNm; // 차종유형명
|
||||
@JsonProperty("VHCTY_SE_NM") private String vhctySeNm; // 차종분류명
|
||||
@JsonProperty("FRST_REGIST_DE") private String frstRegistDe; // 최초등록일
|
||||
@JsonProperty("FOM_NM") private String fomNm; // 형식
|
||||
@JsonProperty("ACQS_DE") private String acqsDe; // 취득일자
|
||||
@JsonProperty("ACQS_END_DE") private String acqsEndDe; // 취득종료일자
|
||||
@JsonProperty("YBL_MD") private String yblMd; // 제작연월(추정)
|
||||
@JsonProperty("TRANSR_REGIST_DE") private String transrRegistDe; // 이전등록일(양수일)
|
||||
@JsonProperty("SPCF_REGIST_STTUS_CODE") private String spcfRegistSttusCode; // 제원등록상태코드
|
||||
@JsonProperty("COLOR_NM") private String colorNm; // 색상명
|
||||
@JsonProperty("MRTG_CO") private String mrtgCo; // 저당수
|
||||
@JsonProperty("SEIZR_CO") private String seizrCo; // 압류건수
|
||||
@JsonProperty("STMD_CO") private String stmdCo; // 기타 설정/처분 건수(추정)
|
||||
@JsonProperty("NMPL_CSDY_AT") private String nmplCsdyAt; // 번호판영치여부
|
||||
@JsonProperty("NMPL_CSDY_REMNR_DE") private String nmplCsdyRemnrDe; // 번호판영치최고일
|
||||
@JsonProperty("ORIGIN_SE_CODE") private String originSeCode; // 출처구분코드
|
||||
@JsonProperty("NMPL_STNDRD_CODE") private String nmplStndrdCode; // 번호판규격코드
|
||||
@JsonProperty("ACQS_AMOUNT") private String acqsAmount; // 취득금액
|
||||
@JsonProperty("INSPT_VALID_PD_BGNDE") private String insptValidPdBgnde; // 검사유효기간시작일
|
||||
@JsonProperty("INSPT_VALID_PD_ENDDE") private String insptValidPdEndde; // 검사유효기간종료일
|
||||
@JsonProperty("USE_STRNGHLD_GRC_CODE") private String useStrnghldGrcCode; // 사용본거지관청코드
|
||||
@JsonProperty("TKCAR_PSCAP_CO") private String tkcarPscapCo; // 승차정원수
|
||||
@JsonProperty("SPMNNO") private String spmnno; // 제원관리번호
|
||||
@JsonProperty("TRVL_DSTNC") private String trvlDstnc; // 주행거리
|
||||
@JsonProperty("FRST_REGIST_RQRCNO") private String frstRegistRqrcno; // 최초등록접수번호
|
||||
@JsonProperty("VLNT_ERSR_PRVNTC_NTICE_DE") private String vlntErsrPrvntcNticeDe; // 예고통지일
|
||||
@JsonProperty("REGIST_INSTT_NM") private String registInsttNm; // 등록기관명
|
||||
@JsonProperty("PROCESS_IMPRTY_RESN_CODE") private String processImprtyResnCode; // 처리불가사유코드
|
||||
@JsonProperty("PROCESS_IMPRTY_RESN_DTLS") private String processImprtyResnDtls; // 처리불가사유명세
|
||||
@JsonProperty("CBD_LT") private String cbdLt; // 차체길이
|
||||
@JsonProperty("CBD_BT") private String cbdBt; // 차체너비
|
||||
@JsonProperty("CBD_HG") private String cbdHg; // 차체높이
|
||||
@JsonProperty("FRST_MXMM_LDG") private String frstMxmmLdg; // 최초최대적재량
|
||||
@JsonProperty("FUEL_CNSMP_RT") private String fuelCnsmpRt; // 연료소비율
|
||||
@JsonProperty("ELCTY_CMPND_FUEL_CNSMP_RT") private String elctyCmpndFuelCnsmpRt; // 전기복합연료소비율
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue