|
|
|
|
@ -16,6 +16,10 @@
|
|
|
|
|
- 환경 프로파일 분리: `dev`, `prd`
|
|
|
|
|
- GPKI 연계: 운영은 실서명(`RealGpkiService`), 개발은 `NoopGpkiService`
|
|
|
|
|
- MyBatis + MariaDB를 통한 로깅 및 조회 이력 관리(기본사항)
|
|
|
|
|
- 추후 기능 개발 사항
|
|
|
|
|
- request data[] 배열과 response data[] 배열을 별도로 처리하는 기능 추가, 현재 1건의 차량번호와 1건의 response 만 처리하도록 되어있음
|
|
|
|
|
- response.getRecord().get(0); || response.getBody().getData().get(0); 으로 모두 처리함, 단건이 아닌 배열처리 기능 필요함
|
|
|
|
|
- 배열에 따른 로깅기능도 같이 수정되어야함, 배열만큼 rows insert(그룹해줄수 있는 tx id 컬럼 추가) or 마스터->디테일 테이블 구조로 변경
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
@ -52,7 +56,7 @@
|
|
|
|
|
|
|
|
|
|
## 설정 파일 및 프로파일
|
|
|
|
|
- 기본 설정: `src/main/resources/application.yml`
|
|
|
|
|
- 서버 포트 기본값: `8080`
|
|
|
|
|
- 서버 포트 기본값: `8081`
|
|
|
|
|
- 전역 DB 타입 변수: `Globals.DbType: maria`
|
|
|
|
|
- 개발: `src/main/resources/application-dev.yml`
|
|
|
|
|
- 운영: `src/main/resources/application-prd.yml`
|
|
|
|
|
@ -78,7 +82,7 @@
|
|
|
|
|
### 권장 환경변수 매핑(예)
|
|
|
|
|
- `SPRING_PROFILES_ACTIVE=dev`
|
|
|
|
|
- `DB_URL`, `DB_USERNAME`, `DB_PASSWORD`
|
|
|
|
|
- `VMIS_SYSTEM_INFO_SYS_ID`, `VMIS_SYSTEM_INFO_SYS_IP`, `VMIS_SYSTEM_REGION_CODE` 등
|
|
|
|
|
- `VMIS_SYSTEM_INFO_SYS_ID`, `VMIS_SYSTEM_INFO_SYS_IP`, `VMIS_SYSTEM_SIGUNGU_CODE` 등
|
|
|
|
|
- `VMIS_GPKI_ENABLED`, `VMIS_GPKI_ENV_PRIVATE_KEY_PASSWD`, `VMIS_GPKI_SIG_PRIVATE_KEY_PASSWD`
|
|
|
|
|
- `VMIS_GOV_HOST`, `VMIS_GOV_SERVICES_BASIC_APIKEY`, `VMIS_GOV_SERVICES_LEDGER_APIKEY`
|
|
|
|
|
|
|
|
|
|
@ -105,17 +109,152 @@ cd VMIS-interface
|
|
|
|
|
Windows PowerShell에서는 `./gradlew.bat` 사용 가능합니다.
|
|
|
|
|
|
|
|
|
|
### 3) 실행
|
|
|
|
|
|
|
|
|
|
#### 방법 1: Gradle bootRun 사용 (개발 권장)
|
|
|
|
|
|
|
|
|
|
**개발 환경 (포트 8081)**
|
|
|
|
|
```bash
|
|
|
|
|
# Linux/Mac
|
|
|
|
|
./gradlew bootRun --args='--spring.profiles.active=dev'
|
|
|
|
|
|
|
|
|
|
# Windows
|
|
|
|
|
gradlew.bat bootRun --args='--spring.profiles.active=dev'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**운영 환경 (포트 8080)**
|
|
|
|
|
```bash
|
|
|
|
|
# Linux/Mac
|
|
|
|
|
./gradlew bootRun --args='--spring.profiles.active=prd'
|
|
|
|
|
|
|
|
|
|
# Windows
|
|
|
|
|
gradlew.bat bootRun --args='--spring.profiles.active=prd'
|
|
|
|
|
```
|
|
|
|
|
# 개발 프로파일로 실행(기본 포트 8080)
|
|
|
|
|
java -jar build/libs/VMIS-interface-0.0.1-SNAPSHOT.jar -Dspring.profiles.active=dev
|
|
|
|
|
|
|
|
|
|
# 또는 환경변수로
|
|
|
|
|
#### 방법 2: JAR 파일 실행 (배포 권장)
|
|
|
|
|
|
|
|
|
|
**개발 환경**
|
|
|
|
|
```bash
|
|
|
|
|
# Linux/Mac
|
|
|
|
|
java -Dspring.profiles.active=dev -jar build/libs/VMIS-interface-0.0.1-SNAPSHOT.jar
|
|
|
|
|
|
|
|
|
|
# Windows PowerShell
|
|
|
|
|
java -Dspring.profiles.active=dev -jar build/libs/VMIS-interface-0.0.1-SNAPSHOT.jar
|
|
|
|
|
|
|
|
|
|
# 또는 환경변수 사용 (Windows PowerShell)
|
|
|
|
|
$env:SPRING_PROFILES_ACTIVE = "dev"
|
|
|
|
|
java -jar build/libs/VMIS-interface-0.0.1-SNAPSHOT.jar
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**운영 환경 (환경변수 포함)**
|
|
|
|
|
```bash
|
|
|
|
|
# Linux/Mac
|
|
|
|
|
export SPRING_PROFILES_ACTIVE=prd
|
|
|
|
|
export VMIS_SYSTEM_INFO_SYS_ID="41-345"
|
|
|
|
|
export VMIS_SYSTEM_SIGUNGU_CODE="41460"
|
|
|
|
|
java -jar build/libs/VMIS-interface-0.0.1-SNAPSHOT.jar
|
|
|
|
|
|
|
|
|
|
# Windows PowerShell
|
|
|
|
|
$env:SPRING_PROFILES_ACTIVE = "prd"
|
|
|
|
|
$env:VMIS_SYSTEM_INFO_SYS_ID = "41-345"
|
|
|
|
|
$env:VMIS_SYSTEM_SIGUNGU_CODE = "41460"
|
|
|
|
|
java -jar build/libs/VMIS-interface-0.0.1-SNAPSHOT.jar
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
#### 백그라운드 실행 (Linux 서버)
|
|
|
|
|
```bash
|
|
|
|
|
# nohup 사용 (기본 java 경로, 콘솔 출력을 app.log에 저장)
|
|
|
|
|
nohup java -Dspring.profiles.active=prd -jar build/libs/VMIS-interface-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
|
|
|
|
|
|
|
|
|
|
# Java 경로를 직접 지정하는 방법 (Java 17 이상)
|
|
|
|
|
nohup /usr/bin/java -Dspring.profiles.active=prd -jar build/libs/VMIS-interface-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
|
|
|
|
|
|
|
|
|
|
# 또는 사용자 지정 Java 경로 사용
|
|
|
|
|
nohup /opt/jdk-17/bin/java -Dspring.profiles.active=prd -jar build/libs/VMIS-interface-0.0.1-SNAPSHOT.jar > app.log 2>&1 &
|
|
|
|
|
|
|
|
|
|
# 콘솔 출력을 남기지 않을 때 (애플리케이션 자체 로그는 logback-spring.xml 설정에 따라 별도 저장됨)
|
|
|
|
|
# 개발 환경
|
|
|
|
|
nohup /usr/bin/java -Dspring.profiles.active=dev -jar build/libs/VMIS-interface-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &
|
|
|
|
|
|
|
|
|
|
# 운영 환경 (애플리케이션 로그: d:/data/VMIS-interface/logs/vmis-interface.log)
|
|
|
|
|
nohup /usr/bin/java -Dspring.profiles.active=prd -jar build/libs/VMIS-interface-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &
|
|
|
|
|
|
|
|
|
|
# Java 경로 확인 방법
|
|
|
|
|
which java
|
|
|
|
|
# 또는
|
|
|
|
|
readlink -f $(which java)
|
|
|
|
|
|
|
|
|
|
# 프로세스 확인
|
|
|
|
|
ps aux | grep VMIS-interface
|
|
|
|
|
|
|
|
|
|
# 종료
|
|
|
|
|
kill -9 <PID>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**참고:** `/dev/null` 사용 시 콘솔 출력만 버려지며, 애플리케이션 자체 로그는 `logging.file.path` 설정에 따라 정상적으로 기록됩니다.
|
|
|
|
|
- 개발: `d:/data/VMIS-interface/logs/vmis-interface.log`
|
|
|
|
|
- 운영: `d:/data/VMIS-interface/logs/vmis-interface.log`
|
|
|
|
|
|
|
|
|
|
#### 백그라운드 실행 (Windows 서버)
|
|
|
|
|
|
|
|
|
|
**PowerShell - 백그라운드 프로세스로 실행**
|
|
|
|
|
```powershell
|
|
|
|
|
# 개발 환경 (콘솔 출력을 app.log에 저장)
|
|
|
|
|
Start-Process -NoNewWindow -FilePath "java" -ArgumentList "-Dspring.profiles.active=dev","-jar","build\libs\VMIS-interface-0.0.1-SNAPSHOT.jar" -RedirectStandardOutput "app.log" -RedirectStandardError "app.log"
|
|
|
|
|
|
|
|
|
|
# 운영 환경 (콘솔 출력을 app.log에 저장)
|
|
|
|
|
Start-Process -NoNewWindow -FilePath "java" -ArgumentList "-Dspring.profiles.active=prd","-jar","build\libs\VMIS-interface-0.0.1-SNAPSHOT.jar" -RedirectStandardOutput "app.log" -RedirectStandardError "app.log"
|
|
|
|
|
|
|
|
|
|
# Java 경로를 직접 지정하는 방법
|
|
|
|
|
Start-Process -NoNewWindow -FilePath "C:\Program Files\Java\jdk-17\bin\java.exe" -ArgumentList "-Dspring.profiles.active=prd","-jar","build\libs\VMIS-interface-0.0.1-SNAPSHOT.jar" -RedirectStandardOutput "app.log" -RedirectStandardError "app.log"
|
|
|
|
|
|
|
|
|
|
# 콘솔 출력을 남기지 않을 때 (NUL로 리다이렉트)
|
|
|
|
|
Start-Process -NoNewWindow -FilePath "java" -ArgumentList "-Dspring.profiles.active=prd","-jar","build\libs\VMIS-interface-0.0.1-SNAPSHOT.jar" -RedirectStandardOutput "NUL" -RedirectStandardError "NUL"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**CMD - javaw 사용 (콘솔 창 없이 실행)**
|
|
|
|
|
```cmd
|
|
|
|
|
# 개발 환경
|
|
|
|
|
start /B javaw -Dspring.profiles.active=dev -jar build\libs\VMIS-interface-0.0.1-SNAPSHOT.jar
|
|
|
|
|
|
|
|
|
|
# 운영 환경
|
|
|
|
|
start /B javaw -Dspring.profiles.active=prd -jar build\libs\VMIS-interface-0.0.1-SNAPSHOT.jar
|
|
|
|
|
|
|
|
|
|
# Java 경로를 직접 지정
|
|
|
|
|
start /B "C:\Program Files\Java\jdk-17\bin\javaw.exe" -Dspring.profiles.active=prd -jar build\libs\VMIS-interface-0.0.1-SNAPSHOT.jar
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**프로세스 관리**
|
|
|
|
|
```powershell
|
|
|
|
|
# 프로세스 확인
|
|
|
|
|
Get-Process | Where-Object {$_.ProcessName -like "*java*"} | Select-Object Id, ProcessName, Path
|
|
|
|
|
|
|
|
|
|
# 또는 특정 포트로 확인
|
|
|
|
|
netstat -ano | findstr :8080
|
|
|
|
|
|
|
|
|
|
# 프로세스 종료 (PID로)
|
|
|
|
|
Stop-Process -Id <PID> -Force
|
|
|
|
|
|
|
|
|
|
# 또는 taskkill 사용
|
|
|
|
|
taskkill /F /PID <PID>
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Java 경로 확인 (Windows)**
|
|
|
|
|
```powershell
|
|
|
|
|
# PowerShell
|
|
|
|
|
where.exe java
|
|
|
|
|
|
|
|
|
|
# 또는
|
|
|
|
|
(Get-Command java).Source
|
|
|
|
|
|
|
|
|
|
# Java 버전 확인
|
|
|
|
|
java -version
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**참고:** Windows 환경에서도 콘솔 출력을 `NUL`로 리다이렉트하면, 애플리케이션 자체 로그는 `d:/data/VMIS-interface/logs/vmis-interface.log`에 정상적으로 기록됩니다.
|
|
|
|
|
|
|
|
|
|
### 4) API 문서(Swagger UI)
|
|
|
|
|
- 실행 후: `http://localhost:8080/swagger-ui/index.html`
|
|
|
|
|
- 개발 환경: `http://localhost:8081/swagger-ui/index.html`
|
|
|
|
|
- 운영 환경: `http://localhost:8080/swagger-ui/index.html`
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|