본문으로 건너뛰기
버전: 3.4.4

개요

일괄전송은 기관들과 약속된 프로토콜 규약에 따라 온라인 전문을 주고 받으며 파일을 송수신하는 인터페이스이다. 대표적인 프로토콜에는 금융결제원(CMS), 은행연합회 프로토콜이 있다.

처리과정

일괄전송은 파일 송신과 수신으로 구분된다.

송신

일괄전송 송신 처리과정

  1. 업무 시스템에서 송신 파일을 송신 디렉토리에 저장
  2. 파일을 감지하여 작업 디렉토리로 파일 이동
  3. 송신 파일을 기관과 약속된 단위로 분리하여 DB에 저장
  4. 기관과 약속된 프로토콜에 따라 파일 송신
  5. 백업 디렉토리로 송신 파일 이동

수신

일괄전송 수신 처리과정

  1. 기관으로부터 전문을 수신 받아 공통 헤더정보를 파싱하여 기관과 약속된 프로토콜 호출
  2. 프로토콜에 따라 파일 수신 완료 후 파일 생성 이벤트 발생
  3. 수신된 파일을 저장한 데이터를 DB에서 읽어 파일 생성
  4. FTP 서버가 존재 한다면 FTP 프로토콜을 이용하여 업무 시스템에 파일 전송

일괄전송 파일

일괄전송 파일은 일괄전송을 통해 온라인 전문을 송수신하여 만들어진 최종 결과물이다.

파일 전송 데이터 구조

일괄전송은 전송 데이터를 순차적으로 만들어 송수신한다. 전송 데이터는 공통 헤더와 업무 데이터로 구성되며 업무 데이터에는 파일을 여러 조각으로 나눈 레코드로 구성 된다.

☑ 레코드

레코드는 일괄전송 파일에서 가장 작은 단위로 실제로 전송되어야 하는 파일 데이터를 포함한다. 여러 레코드를 전송 데이터(시퀀스)에 넣어 한 번에 전송한다.

☑ 시퀀스

시퀀스는 하나의 온라인 전문(전송 데이터)이다. 공통 헤더와 업무 데이터로 구성되며, 업무 데이터에는 하나의 전문 내에 들어갈 수 있는 일련의 레코드로 구성된다.

☑ 블록

블록은 시퀀스의 집합이며 일반적으로 100개의 시퀀스가 모이면 하나의 블록이 된다. 시퀀스는 전송된 후 응답을 받지 않고 연속적으로 다음 시퀀스를 전달한다. 이후 하나의 블록이 완성되면 유실이 발생했는지 확인하기 위해 결번처리를 수행한다. 이처럼 블록이라는 단위는 특정 단위로 전송된 데이터 중 유실된 데이터가 있는지 확인하는 데 사용된다.

파일 전송 데이터 구조

파일 명명 규칙

파일 송신의 시작은 송신 파일이 송신 디렉토리에 저장되면 시작된다. 이 때 송신 대상 기관과 프로토콜을 알아내야 하는데 이를 위해 정해진 명명 규칙으로 파일을 저장해야 한다. 마찬가지로 기관으로부터 파일을 수신하여 완성된 파일을 업무시스템에 전달할 때에도 송신 기관의 정보를 알 수 있어야 하는데 이 때도 정해진 명명 규칙으로 파일을 생성해야 한다.

파일명은 '.' 구분자로 분리하여 파일ID, 송수신파일명, 기관코드, 업무코드, 기준일자로 구성되어 있다. 이중에 송수신파일명은 파일ID와 같다면 생략할 수 있다. 기준일자도 파일명에 없으면 시스템 일자를 기준일자로 사용한다.

파일 명명 규칙

  • 파일ID : 배치설정관리 > 일괄전송파일정보에 등록한 정보를 식별하기 위한 '일괄전송파일ID'를 입력한다.
  • 송수신파일명 : 온라인 전문상에 저장되어 전달 될 정보로 기관과 약속한 파일명을 입력한다. 파일ID와 같다면 생략이 가능하다. 또한 아래와 같이 스크립트를 이용할 수 있다.
    // 형식으로 FILE_ID가 EA11이고 일자가 03월 20일이면 송수신파일명 'EA110320'가 된다.
    ${FILE_ID:4}+${MMdd:4}
  • 기관코드 : 일괄전송 파일을 전송할 기관의 기관코드를 입력한다.
  • 업무코드 : 일괄전송 파일을 전송할 기관의 업무코드를 입력한다.
  • 기준일자 : 일괄전송 프로토콜에 따라서 온라인 전문상에 저장되어 전달 될 정보로 파일을 생성한 데이터의 기준일자를 말한다. 생략하면 시스템 일자를 사용한다.
정보

파일명이 위 명명 규칙을 따를 수 없는 경우 사용자 프로그램을 통해 커스터마이징할 수 있다. 자세한 설정은 일괄전송 파일명 커스터마이징을 참조한다.

파일 관리

일괄전송은 디렉토리를 구분하여 파일을 관리하는 구조를 갖고 있다. 디렉토리의 위치는 환경설정 > 시스템파라미터설정에서 설정한다.

파일 관리

☑ 송신 디렉토리

  • 송신 디렉토리는 기관에 파일을 송신하기 위해 파일을 저장하는 디렉토리이다. 송신 디렉토리에 파일을 저장하면 자동으로 파일을 읽어서 송신할 작업 디렉토리로 옮긴다.
  • 시스템 파라미터는 SCAN_DIRECTORY_NAME이다.

☑ 작업 디렉토리

  • 작업 디렉토리는 임시로 파일을 보관하는 디렉토리로 파일 기본 검증 및 File to DB 작업을 수행한다. 작업이 완료되면 해당 파일을 백업 디렉토리로 옮긴다.
  • 시스템 파라미터는 WORK_DIRECTORY_NAME이다.
    정보

    작업 디렉토리는 시스템 파라미터의 WORK_DIRECTORY_NAME과 상대 기관을 처리하는 배치 인스턴스 ID로 디렉토리를 생성한다. 예를 들어 시스템 파라미터의 WORK_DIRECTORY_NAME의 값이 'work'이고, 현재 배치 인스턴스의 ID가 'instance_BAT_01'라면 작업 디렉토리는 'work/instanceBAT01'이다.

☑ 수신 디렉토리

  • 수신 디렉토리는 기관으로부터 수신이 완료된 데이터를 DB to File을 통해 생성하여 파일을 저장하는 디렉토리이다.
  • 생성한 파일은 FTP 또는 EAI를 통하여 업무 시스템에 전달할 수 있다.
  • 시스템 파라미터는 RECEIVE_DIRECTORY_NAME이다.

☑ 백업 디렉토리

  • 백업 디렉토리는 작업 디렉토리에서 작업이 완료된 파일을 보관하는 백업 디렉토리이다.
  • 백업 디렉토리는 송신 디렉토리(SCAN_DIRECTORY_NAME)의 상위 디렉토리 하위에 'backup'으로 자동 생성된다.
    정보

    일괄전송은 송신 파일에 대한 백업 관리 기능을 제공하여 파일이 유실된 경우에도 일괄전송 처리를 보장한다. 백업 디렉토리 하위에 처리일자인 'YYYYMMDD' 디렉토리를 생성하고 해당 송신 파일을 '원본파일명 + YYYYMMDDHHmmssSSS'명으로 저장한다.

일괄전송 프로토콜

일괄전송 프로토콜(이하 프로토콜)은 기관과 약속된 방식과 정해진 크기로 파일을 분할하여 온라인으로 파일을 송수신하는 규약이다. 프로토콜을 이용하여 대량의 자료를 신속, 정확하게 처리할 수 있도록 가능한 수작업처리를 배제하고 처리절차를 자동화하기 위해 사용한다.

일반적으로 사용되는 프로토콜 절차는 아래와 같다.

  1. 파일 전송을 시작하기 전 개시전문을 송수신한다.
  2. 전송할 파일에 대한 정보를 송수신한다.
  3. 파일을 정해진 크기로 분할하여 정해진 블록(일반적으로 100번)만큼 송신한다.
  4. 데이터 유실이 발생했는지 확인하기 위하여 블록 단위로 결번을 확인한다.
  5. 결번이 없다면 3번부터 다시 수행하며 결번이 존재한다면 결번된 데이터를 재송신한다.
  6. 위 과정을 통해 모든 파일 데이터를 전송하면 업무 종료 전문을 송신한다.

각 기관들은 위 절차를 기본적으로 따르되 필요에 의해 조금씩 변형하여 프로토콜을 만들어 사용하고 있다.

BXI는 아래와 같이 범용적으로 사용되는 프로토콜을 지원하고 있으며 프로토콜을 커스터마이징할 수 있는 기능을 제공한다. 이외에 새로운 방식의 프로토콜이 필요할 경우 패치를 통해 제공한다.

프로토콜설명
CMS금융결제원 CMS(Cash Management Service) 파일을 송수신할 목적으로 사용하는 프로토콜이다.
DPT후불교통기관에서 사용하는 프로토콜이다.
EDIVAN사에서 카드내역을 EDI(Electronic data interchange) 방식으로 카드사에 송수신할 목적으로 사용하는 프로토콜이다.
FPD해외직불에서 사용하는 프로토콜이다.
KCA카드협회에서 사용하는 프로토콜이다. 결번 처리를 하지 않는 것이 특징이다.
KFB은행연합회 금융거래 정보 파일을 송수신할 목적으로 사용하는 프로토콜이다.
POS포스데이타에서 사용하는 프로토콜이다.
SKCSK C&C에서 사용하는 프로토콜이다.

프로토콜에 대한 자세한 설명은 프로토콜을 참조한다.

배치 인스턴스

구조

BXI 배치 인스턴스는 기관과 약속된 일괄전송 프로토콜에 따라 파일을 송수신하는 컴포넌트와 내부 시스템 간에 파일을 송수신하는는 컴포넌트로 구성된다. 통신 프로토콜은 TCP/IP 기반으로 프로토콜 처리를 지원한다.

배치 인스턴스 - 기본 구조

  • Internal Invoker : 용자가 송신 파일을 지정된 전송 디렉토리에 저장하면 파일을 감지하고 파일의 정보에 따라 등록된 프로토콜을 호출한다.
  • External Invoker : 기관에서 전문을 수신하면 전문의 공통 헤더 정보를 분석하여 공통 헤더에서 파일 정보를 얻어 등록된 프로토콜을 호출한다.
  • 일괄전송 프로토콜 처리 : 기관과 약속된 프로토콜에 따라 전문을 처리한다.
  • File Manager : 수신 파일 생성 및 송신 파일의 DB화 작업을 진행한다.

일괄전송 프로토콜 컴포넌트간에 흐름은 다음과 같다.

배치 인스턴스 - 기본 구조

배치 분배 인스턴스

일괄전송은 처리할 파일이 많지 않은 경우에는 하나의 배치 인스턴스로 충분히 처리할 수 있다. 하나의 배치 인스턴스만 실행하여 처리하는 구성의 경우 파일 전달은 다음과 같다.

파일 전달 - 단일 배치 인스턴스

다만, 일괄전송을 처리할 파일이 많아 하나의 배치 인스턴스로 처리가 원활하지 않은 경우 기관별로 나누어 여러 배치 인스턴스를 실행하여 처리한다. 이 때 송신 파일을 저장하는 송신 디렉토리를 여러 배치 인스턴스가 동시에 처리하기 때문에 문제가 발생한다. 이 문제를 해결하기 위해 여러 배치 인스턴스를 실행하는 경우 전송 파일을 분배할 수 있는 배치 분배 인스턴스를 추가 구성해야 한다.

배치 분배 인스턴스를 추가 구성하여 처리하는 경우 파일 전달은 다음과 같다.

파일 전달 - 멀티 배치 인스턴스

배치 분배 인스턴스가 해당 작업을 수행하기 위해서는 송신 디렉토리의 Scan을 담당하는 라우터를 배치 분배 인스턴스로 할당해 주어야 한다. 플로우관리 > 라우터정보에서 라우터 ID가 fileScanRouter인 라우터의 라우터 종류를 '배치분배인스턴스'로 변경한다.