금융 IT를 다룰 때, 빼놓고 얘기할 수 없는 것 중에 전문이라는 것이 있다.
전문이란 한 마디로 데이터를 주고받는 방식이라고 할 수 있는데, 다음에서 더 자세히 톺아보자.
전문(Message)이란?
프로그램들이 서로 데이터를 주고 받는 커뮤니케이션을 하기 위해서는 언어가 필요하다. 은행은 수많은 시스템들로 구성되어있으며, 이러한 시스템들은 MCI, EAI, FEP 등등 다양한 통로로 연결되어 있다. 그리고 이러한 통로를 지나는 데이터들은 모두 전문이라는 이름의 그릇에 담겨 이동한다. 이 양식을 고정된 형태로 저장해 놓는 것이 바로 전문이다.
당연히 그릇의 모양새는 모두 다르고, 데이터를 그릇에 어떻게 담을지에 대한 규칙 또한 필요하다. 규칙이 없다면, 그릇을 받아들고 포장을 뜯었을 때 안에 뒤죽박죽 섞인 내용물이 대체 무엇이었는지 알 수 있는 방법이 없을 것이기 때문이다. 이처럼 그릇 안에 데이터를 담는 규칙을 레이아웃이라고 부른다. 또한 레이아웃을 비롯해서 전문의 규격, 통신 방법, 장애 대책 등 전문을 주고받기 위해 필요한 규칙들을 상세히 적어 둔 문서를 설계서라고 총칭한다.
즉, 전문이란 ‘정해진 길이대로 저장하는 체계’로써 json과 같은 데이터 형식이 아니라 약속된 위치와 길이에 데이터를 위치시키는 형식이다. 예를 들어 1~10은 고객이름, 11~30은 고객 주소 … 이러한 방식으로 정의를 해두는 것이다.
전문의 가장 큰 특징은 그 형태와 길이가 정해져 있다는 것이다. 헤더부/바디부의 길이가 정해져 있다 보니 아무래도 변경이 쉽지 않다. 해당 전문을 사용하는 것이 보통 금융앱만이 아니라 업무에 쓰이는 단말, ATM, 인터넷 뱅킹 등 여러 군데에 쓰이다 보니 항목들을 바꾸는 것은 당연히 어렵고, 만약에 거의 모든 길이를 채워서 쓰고 있다면 항목을 추가하는 것 자체도 어려울 수도 있다. 심지어는 쓰지 않는 값인데도 불구하고, 데이터를 받아야하니 공백으로 채워서 받는 경우도 있다.
전문 통신
전문(message)는 ‘정해진 길이대로 저장하는 체계’이기 때문에, 데이터 형식은 fixed length 형식을 가진다. 통신 방식은 TCP Socket 연결 방식을 사용한다. 일반적으로 세션 개수는 1-2개를 가지며 연결을 지속적으로 유지한다. 1-2개로 연결된 세션을 통해 데이터가 fixed length 형식으로 순서대로 들어오기를 기대한다.
전문 내에는 거래코드, 채널코드, 구분코드 등 업무에서 필요로 하는 정보들을 담고있으며, MCI, EAI, FEP 등의 연계 시스템을 통해 통신한다. 실제로 현업에서는 전문을 위해 솔루션을 많이 사용하고 있고(ex. EIMS), 솔루션을 통해 인터페이스에서 바로 전문을 조회하고 레이아웃을 확인할 수 있다.
Reference