[계정계금융IT기초 -공통용어#3]배치와 온라인
배치(Batch)와 온라인(Online)
사실, 배치와 온라인은 금융 IT에만 국한된 용어는 아니다. 어느 도메인이든 전산 시스템이라면 배치 프로그램과 온라인 프로그램이 존재하기 마련이고, 이 개념 없이 구축된 전산 시스템은 운영의 완전성을 보장하기 어렵다. 쉬운 말로, 없으면 무지무지 불편하다는 거다.
가령, 모 업체에서 매일 정오와 자정에, 정기적으로 주, 야간에 기록된 장부 내용을 파일로 만들어서 송부해야 한다는 규칙이 존재한다고 하자. 이 경우, 정오야 그렇다 치지만 자정에는 매번 숙직하는 사람을 세워 두고 파일을 만들라고 시켜야 할까? 뭐, 회사 재정이 넉넉하다면야 그리해도 말리지는 않겠다만, 재정이 곤혹스러운 경영자 입장에서는 여간 부담스러운 일이 아닐 터다. 근로기준법에 의하면 오후 10시부터 익일 오전 6시까지의 야간수당은 통상임금의 1.5 배거든.
아무튼, 한 푼이라도 인건비를 경감해야 할 의무가 있는 인사 담당자는 어디선가 배치 프로그램의 존재를 주워듣게 되고, 이를 구축하는 방법에 대해 수소문하게 된다. 얼추 그런 히스토리다. 배치 프로그램이란, 정기적인 주기(Schedule)를 갖고 해당 주기마다 꼬박꼬박 실행되어야 하는 프로그램을 일컫는다.
그렇다면 온라인 프로그램이란? 배치 프로그램과는 다르게, 사용자(Actor)의 요청이나 필요가 있을 때마다 실시간으로 수행되는 프로그램을 일컬으며, 일부 사이트에서는 서비스라고도 부른다.
배치는 스케줄러에 의해 실행되고,
온라인은 사용자에 의해 실행된다.
거대한 전산 시스템은 수천 개의 배치가 존재할 수 있다. 특히, 은행 전산 시스템의 경우 오만가지 별 해괴한 배치들이 존재한다. 수많은 은행 고객들 중에서 못된 고객의 데이터만 쏙쏙 뽑아 엑셀 파일로 만들어두는 배치, 3개월마다 정기적으로 예/적금 이자를 꼬박꼬박 부어주는 고마운 배치,...
앞서 설명했듯, 이 모든 배치들은 저마다 움직여야 할 주기라는 게 존재하고, 이 주기는 스케줄러(Scheduler)라는 또 다른 솔루션을 통해 관리된다.
요 녀석은 일주일에 한 번, 어떤 요일 몇 시에 돌아야 해요. 요 녀석은 월화수목금금금 매일 꼬박꼬박 열한 시에 돌아야 해요. 이런 정보들을 입력해두면 스케줄러는 천지가 뒤바뀌거나 시스템이 내려가지 않는 이상 성실하게 배치를 켜준다. 뿐만 아니라, 그 배치가 돌면서 몇 건의 작업을 수행했고, 그중 실패는 몇 건, 성공은 몇 건, 요런 정보들까지도 모니터링할 수 있는 뷰를 제공한다.
인사 담당자 입장에서는 쌍수를 들고 환영할 일이다. 적어도 비싼 야근수당 주고 사람을 시켜야 했던 일을 스케줄러와 배치 프로그램으로 간편하게 해결할 수 있으니까. 솔루션 도입 비용 및 배치 프로그램 구축 비용에 대한 건 기타 재정 담당자가 신경 쓰시겠지.
테이블의 데이터를 말아서 파일로 만드는 배치는 DB TO FILE(D2F)
파일을 읽어서 테이블에 밀어 넣는 배치는 FILE TO DB(F2D)
테이블에서 테이블로 데이터를 옮기는 배치는 DB TO DB(D2D)
파일을 다른 파일로 만드는 배치는 FILE TO FILE(F2F)
정말이지 개발자스러운 네이밍이다.
위에 언급한 네 가지의 통상적인 배치 이외에도, 여러 종류의 배치가 존재한다.
특정한 주기 없이 24시간 365일 항시 프로세스가 떠 있어야 하는 배치를 상주배치(혹은 디퍼드, 혹은 데몬)라고 부르며, 온라인 프로그램에서 사용자가 요청할 때마다 비정기적으로 실행되는 배치를 온디맨드 배치(On-demand Batch)라고 부른다.
특히, 은행 전산 시스템에서는 입금 및 지급이 발생하는 배치를 센터컷(Center Cut, C/C)이라고 특별하게 지칭한다. 요 센터컷이란 녀석은 개인적으로, 빈약한 은행 전산 설계자들이 최대한의 상상력을 발휘해서 고안해 낸 나름의 그럴싸한 기능 유형이라고 생각하기 때문에, 추후 심화 아키텍처 과정에서 자세히 풀어내도록 하겠다.