# 시작하기 *** 세외수입개별시스템(Non-Tax Revenue Individual System) 은 \ 과태료 부과에 대한 실시간 API 4종(부과결과/부과취소/수납정보/감액정보)을 지원 하며, \ API 4종의 데이터는 세외수입시스템측에서 제공 한다. * 출발지: 세외수입시스템 * 목적지: 개별시스템(ntri) ### 버전관리 |버전|작성일|작성자|내용| |---|---|---|---| |v0.1|2022.12.20|박민규|최초작성| |v0.2|2022.12.21|박민규|"2. SSL 인증서 발급" 내용 수정( 발급방식 변경: 스크립트 -> 실행파일(.bat) )| |v0.2|2022.12.21|박민규|%NTRI_APP_HOME%/bin/setenv.bat 파일의 "DB/SSL설정" 수정VM옵션" 환경변수 추가| |v0.3|2022.12.22|박민규|연계표준지침(v1.2.1) 전문구조 변경에 의한 "API 테스트" 데이터 수정(%NTRI_APP_HOME%/bin/test/*.json)| |v0.3.1|2022.12.23|박민규|"1. 배포하기"에 NTRI_JAVA_HOME 설정에 대한 내용 추가 및 실행 환경 JDBC 내용추가| |v0.3.2|2022.12.27|박민규|"부록-실행 환경"의 JDBC 수정(ojdbc8.jar -> ojdbc6.jar). 사유: 일부 서버에서 Java.sql.SQLRecoverableException 발생| |v0.3.3|2022.12.27|박민규|문서내용 수정. "부록-실행 환경" `삭제`. "부록-구현 스펙" `추가`| |v0.4|2022.12.27|박민규|연계표준지침(v1.2.1 -> v1.?.?) 전문구조 변경에 의한 "API 테스트" 데이터 수정(%NTRI_APP_HOME%/bin/test/*.json). reqVo 필드타입 수정(단건 -> 다건)| |v0.4.1|2022.12.29|박민규|curl프로그램 변경 및 프로그램 위치 변경(%NTRI_APP_HOME% -> %NTRI_APP_HOME%/bin/test). "부록-디렉토리 구성"에서 내용 삭제| |v0.5|2023.01.02|박민규|연계대상코드(linkTrgtCd) 설정 추가. (어플리케이션 수정 및 setenv.bat 환경변수 NTRI_APP_LINKTRGTCD 추가)| ## 1. 배포하기 1. **원하는 경로에 ntri.zip 압축파일을 unzip** 한다. * [원하는 경로]/ntri -> **%NTRI_APP_HOME%** 2. *%NTRI_APP_HOME%/bin/setenv.bat* 파일을 열어 **배포환경에 맞게 환경변수를 수정** 한다. * NTRI_JAVA_HOME 및 SSL/DB 설정 등.. **\[ NTRI_JAVA_HOME 설정 참고 \]** * PC에 JDK가 설치(install)된 경우 * JDK버전이 11 이상이면 -> %JAVA_HOME% 작성 * JDK버전이 11 미만이면 -> [JDK11(Amazon Corretto) 다운로드(.zip)](https://docs.aws.amazon.com/ko_kr/corretto/latest/corretto-11-ug/downloads-list.html) 및 Unzip 한 path 작성 * PC에 JDK가 미설치(no install)된 경우(unzip 또는 install 中 택1) * [JDK11(Amazon Corretto) 다운로드(.zip)](https://docs.aws.amazon.com/ko_kr/corretto/latest/corretto-11-ug/downloads-list.html) 및 Unzip 한 path 작성 * [JDK11(Amazon Corretto) 다운로드(.msi)](https://docs.aws.amazon.com/ko_kr/corretto/latest/corretto-11-ug/downloads-list.html) 및 Install 후 %JAVA_HOME% 작성 ※JDK 설치 확인 방법: cmd 창에서 `java -version` 입력 ※JAVA_HOME 설정 확인 방법: 시스템 -> 정보 -> 고급 시스템 설정 -> 환경 변수(N)... -> 시스템 변수(S) 3. *%NTRI_APP_HOME%/bin/service-regist.bat* 파일을 **"관리자권한" 으로 실행** 4. *%NTRI_APP_HOME%/webapp* 디렉토리에 **"ntri-0.0.1-SNAPSHOT.jar" 파일 복사** 5. *%NTRI_APP_HOME%/bin/service-start.bat* 파일을 실행하여 "서비스 시작" * 서비스 실행 오류가 발생할 경우 *%NTRI_APP_HOME%/logs/stderr.log* 내용 확인 6. *%NTRI_APP_HOME%/bin/service-logprint.bat* 파일을 실행하여 "서비스 실시간 로그" 확인 ## 2. SSL 인증서 발급 1. [OpenSSL 다운로드](https://sourceforge.net/projects/openssl) * openssl-1.0.2j-fips-x86_64/openssl-1.0.2j-fips-x86_64.zip 2. 다운로드한 압축파일을 unzip 후 **OpenSSL 디렉토리를 C드라이브(C:/) 밑으로 복사** 3. *%NTRI_APP_HOME%/ssl/bin* 디렉토리의 **"generate-ssl-cert-new.bat" 파일 실행** **\[ 파일 설명 \]** * 신규 발급: *generate-ssl-cert-new.bat* * 인증서파일 `모두` 발급(key, csr, crt) * 재발급: *generate-ssl-cert-refresh.bat* * 인증서파일 `일부`만 발급(csr, crt) 4. *%NTRI_APP_HOME%/ssl/cert* 디렉토리에 **인증서파일(key,csr,crt) 이 생성**되었는지 **확인** ## 3. API 테스트 1. **"~/bin/test"** 디렉토리로 이동 2. 테스트 배치파일(.bat) 실행하여 API 호출 * 일괄: *curl-all.bat* * 부과취소: *curl-LevyCancel.bat* * 부과결과: *curl-LevyResult.bat* * 수납정보: *curl-RcivInfo.bat* * 감액정보: *curl-RdcamtInfo.bat* # 부록 *** ### 디렉토리 구성 |Directory|Description| |---|---| |%NTRI_APP_HOME%/webapp|어플리케이션 jar 파일이 위치한 디렉토리| |%NTRI_APP_HOME%/bin|서버기동과 관련한 배치파일(.bat)이 위치한 디렉토리| |%NTRI_APP_HOME%/bin/test|API 테스트 배치파일(.bat)이 위치한 디렉토리| |%NTRI_APP_HOME%/bin/logs|어플리케이션 로그파일(.log)이 저장되는 디렉토리(startup.bat 직접 호출 시)| |%NTRI_APP_HOME%/logs|어플리케이션 로그파일(.log)이 저장되는 디렉토리(윈도우 서비스 사용 시)| |%NTRI_APP_HOME%/ssl/bin|SSL 인증서 신규/재발급을 위한 배치파일(.bat)이 위치한 디렉토리| |%NTRI_APP_HOME%/ssl/cert|발급된 SSL 인증서가 저장되는 디렉토리| |%NTRI_APP_HOME%/ssl/cert/backup|SSL 인증서 신규/재발급 시마다 발급된 인증서가 백업되는 디렉토리| ### 파일 설명 |File Name|Description| |---|---| |setenv.bat|`환경변수` 설정| |service-regist.bat|서비스 `등록`| |service-edit.bat|등록한 서비스정보 `수정`| |service-delete.bat|등록한 서비스 `삭제`| |service-start.bat|등록한 서비스 `실행`| |service-stop.bat|등록한 서비스 `중지`| |service-status.bat|등록한 서비스 실행 `상태` 확인| |service-logprint.bat|등록한 서비스 `실시간 로그` 출력| |startup.bat|서버 `기동`| |shutdown.bat|서버 `종료`| |logprint.bat|`실시간 로그` 출력| ### 구현 스펙 + Back-End + SpringBoot 2.7.5 + Tomcat 9.0.68 + JDK11 + gradle + JPA + DB + Oracle 11g + mariaDB 10.6.5 + mysql + JDBC Libray + ojdbc6.jar + mariadb-java-client-2.7.5.jar + mysql-connector-java-8.0.30.jar