LabHub

시스템 간 연동 (EAI) · 파일 연동 (배치·FTP·EDI) · 실습

고정길이 파일 인터페이스 파싱과 대사

LabHub 에서 이어서 보기

목표

고정길이 전문 파일을 레이아웃대로 파싱하고, 트레일러로 무결성을 검증하고,
인코딩 변환·완료 플래그·보관·대사까지 파일 인터페이스 한 사이클을 완성합니다.

왜 중요한가

파일 연동은 낡아 보이지만 대량 처리와 대사 가능성에서 여전히 최선입니다.
문제는 실패 방식이 조용하다는 것입니다. 전송 중 잘린 파일을 그대로 처리하면
오류 없이 절반만 반영되고, 그 사실은 월말 마감에 '숫자가 안 맞는다'로 발견됩니다.
완료 플래그 규약이 한쪽에만 있으면 배치가 매일 아무것도 처리하지 않으면서
아무 오류도 내지 않습니다. 조용히 아무 일도 안 하는 것이 가장 늦게 발견됩니다.
트레일러 검증과 대사는 그 조용한 실패를 시끄럽게 만드는 장치입니다.

단계

1. /opt/lab/fixtures/eai/file/layout.md 를 읽고 /root/f/layout.csv 를 만듭니다.
첫 줄은 seq,field,start,length,type.
start1부터 시작하는 위치이고, seq 순서대로 정렬합니다.
2. /root/f/parse.sh 를 만듭니다. 인자 하나(데이터 파일)를 받아
D 로 시작하는 데이터 레코드만 아래 6개 필드를 파이프(|)로 구분해 출력합니다.

   SALE_DT|CUST_ID|CUST_NM|PROD_CD|QTY|AMT

문자 필드의 앞뒤 공백은 제거하고, 숫자 필드의 앞자리 0 도 제거합니다.
(REC_TYPE 은 출력하지 않습니다.)
/opt/lab/fixtures/eai/file/SALES_20260801.dat 으로 실행한 결과를
/root/f/parsed.txt 에 저장하세요.
3. /root/f/verify.sh 를 만듭니다. 인자 하나(데이터 파일)를 받아
트레일러의 건수와 금액 합계가 데이터 레코드와 일치하면 종료코드 0,
불일치면 첫 줄에 사유를 출력하고 0 이 아닌 종료코드로 끝냅니다.

참고

단계 8개

  1. 레이아웃 정의 정리
  2. 고정길이 파서
  3. 트레일러 검증
  4. 인코딩 변환
  5. 완료 플래그 선별
  6. CSV 인터페이스 검증
  7. 처리 후 보관
  8. 대사표 작성