8 0. 시작하기
hanmj edited this page 2 weeks ago

xit-saeol-interface란?

새올 연계 시스템으로

  • 민원 목록/ 민원 상세 정보 조회
  • 민원 (추가)답변 등록

을 지원한다.

스프링부트 애플리케이션이므로 설치 후 즉시 실행할 수 있다.

설치

배포파일(xit-saeol-interface.zip)을 원하는 디렉토리에 압축을 풀면 다음과 같은 레이아웃으로 설치된다.

  • 17 - 자바17 운영환경
  • files - 파일 디렉토리
  • intf-conf - GPKI 암복호화, 새올 연계 설정파일 디렉토리
  • logs - 로그파일 디렉토리
  • spring - 작업스케쥴러 설정 디렉토리
  • sql - 데이터베이스 테이블 생성 디렉토리
  • ssl - SSL 설정 디렉토리
  • application.yml - 애플리케이션 기본설정 파일
  • xit-crypto.conf - 암호화 설정 파일
  • xit-saeol-interface.bat - 시작 배치파일
  • xit-saeol-interface.jar - 새올 연계 모듈

데이터베이스

데이터베이스 생성

sql/xit-saeol-xxx.sql 파일을 실행해, 데이터베이스 테이블을 생성한다.

NVL

  • 마리아DB의 경우 버젼에 따라 NVL 함수를 지원하지 않는 경우가 있다.
  • 이 경우 다음 스크립트를 실행해 NVL 함수를 생성한다.
DELIMITER $$
CREATE FUNCTION NVL(IP_DATA VARCHAR(100), IP_CONVERT VARCHAR(100)) RETURNS VARCHAR(100)
BEGIN
    DECLARE RTN_DATA VARCHAR(100);

    SET RTN_DATA := IFNULL(IP_DATA, IP_CONVERT);

    RETURN RTN_DATA;
END $$

DELIMITER ;

설정

xit-saeol-interface가 올바로 동작하려면 다음 사항들을 설정한다.

  • 웹애플리케이션 이름, 포트
  • 데이터베이스 접속 정보
  • 데이터 암호화 정보
  • 지역 자치단체 및 시스템 정보

application.yml

웹애플리케이션 이름, 포트 설정

server:
  port: 포트번호(18080)
  servlet:
    context-path: 이름(/)

데이터베이스 설정

  sql:
    init:
      platform: mariadb 또는 oracle(해당 내용만 지정)

  datasource:
    hikari:
      driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
      jdbc-url: '데이터베이스별 jdbc url' 참고
      username: 사용자 아이디      
      password: 사용자 비밀번호
      auto-commit: false

데이터베이스별 jdbc url

* Maria DB: jdbc:log4jdbc:mariadb://호스트:포트/DB이름?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul&useSSL=false&autocommit=false
* Oracle: jdbc:log4jdbc:oracle:thin:@호스트:포트:SID

gpki.conf

intf-conf/gpki.conf를 열어 전문의 암복호화를 위한 설정을 한다.

{
    "enabled": true,                            /* 활성화(사용) 여부 */
    "license": "C:\\GPKI\\Lic",                 /* 이용기관 GPKI API 라이센스 디렉토리 */
    "charset": "EUC-KR",                         /* 문자셋 */

    "server": {
        "local": "SVR3160269001",               /* 이용기관 서버 CN */
        "targets": "SVR3160000003"              /* 대상기관 서버인증서 아이디, 여러 개일 경우 컴마(,)로 구분 */
    },

    "ldapUrl": "ldap://10.1.7.118:389/cn=",     /* 대상기관 인증서 다운로드를 위한 행정망 LDAP URL */
    /*"ldapUrl": "ldap://152.99.57.127:389/cn=",   대상기관 인증서 다운로드를 위한 인터넷망 LDAP URL */
    "certDir": "C:\\GPKI\\Certificate\\class1", /* 서버 인증서, 키 저장 디렉토리 */
    "targetCert": "{serverID}_env.cer",

    "env": {                                    /* 이용기관 서버 인증서 */
        "certFile": "SVR3160269001_env.cer",
        "privateKeyFile": "SVR3160269001_env.key",
        "privateKeyPassword": "elddy5720@"
    },
    "sig": {                                    /* 이용기관 서버 전자서명 */
        "certFile": "SVR3160269001_sig.cer",
        "privateKeyFile": "SVR3160269001_sig.key",
        "privateKeyPassword": "elddy5720@"
    }
}

xit-saeol.conf

intf-conf/xit-saeol.conf를 열어

  • 전문 송수신을 위한 기본정보
  • 수신파일 저장 디렉토리

등을 설정한다.

{
    "charset": "UTF-8",           /* 문자셋 이름 */

    "deptCodes": ["12345"],                  /* 부서코드 */
	
    "k_anc_code": "3150000",        /* 기관코드 */
    "k_anc_id": "SU44526786720",    /* 연계 ID */
    "k_anc_passwd": "ZUDDN1129404", /* 연계 비밀번호 */

//  "logXml": "files/xml/{date}/{interfaceID}/{msgKey}.xml", /* xml 로그파일 이름 패턴, 로그파일을 남기지 않으려면 제거할 것 */
    "logToDatabase": true,        /* 전문 데이터베이스 사용 여부 */
    "attachmentDir": "files/attachment/{date}", /* 첨부파일 디렉토리 경로 패턴, 전문 데이터베이스를 사용하지 않을 경우에만 유효 */

    "sources": ["3160004"],                 /* 이용기관 정보 */

    "target": {                   /* 제공기관 정보 */
        "org": "3160004",         /* 기관코드 */
        "url": "http://98.17.2.101:3100/stmr/websvc/std/ws?wsdl={interfaceID}", /* 서비스 제공 URL, {interfaceID} = 연계 ID */
        "certServer": "SVR3160000003" /* 세올행정 서버인증서 아이디 */
    },

    "minwonDates": 5              /* 민원목록 조회일자수(당일 포함) */
}

context-scheduler.xml

spring/context-scheduler.xml을 열어 업무별 작업 스케쥴을 설정한다.

업무별 파일작업의 스케쥴은 <bean id=”XXXTrigger” …/> 항목의 “cronExpression” 프로퍼티로 설정한다.

cronExpression 설정 참고: https://fmd1225.tistory.com/60

시작과 종료

xit-saeol-interface를

  • 시작하려면 xit-saeol-interface.bat를 실행한다.
  • 종료하려면 xit-saeol-interface 실행 콘솔에서 Ctrl+Z키를 누른다.

xit-saeol-interface.bat는

  • 디폴트로 현재 로그파일(xit-saeol-interface.log)을 삭제하고 시작한다.
  • 기존 로그파일에 이어서 로그를 저장하려면 해당부분의 코드를 제거한다.

연계 테스트

시스템은 swagger로 테스트를 실행할 수 있다.

시스템을 테스트하려면

  • 시스템을 시작한다.
  • 웹브라우저를 시작하고, http://호스트:포트/swagger-ui/index.html 페이지를 연다.
  • 예) http://localhost:18080/swagger-ui/index.html 또는
  • SSL이 적용되었으면 https://호스트:포트/swagger-ui/index.html
  • 예) https://localhost:18080/swagger-ui/index.html
  • 테스트 하려는 업무를 클릭한다.
  • “Try it out” 버튼을 클릭하고 “Request body”에 요청정보를 입력한 후 “Execute” 버튼을 클릭한다.