SFTP·FTP 파일 연계 — 원자적 전송, 수신 폴링, 체크섬
대외 기관·사내 EAI 와 파일로 주고받는 정산·전문 연계를, JDK 만으로 로컬 폴더 구현체를 만들어 배치 로직을 검증하고 실제 SFTP·FTP 확장까지 정리합니다.
1. 왜 배우는가
API 연동이 흔해진 지금도 은행·카드사·정부 기관과의 정산·전문 연계는 여전히 파일로 이뤄지는 경우가 많습니다. 대외 기관이 정한 규격서가 파일 포맷 기준이고, 실시간 API 를 새로 열어주지 않기 때문입니다. 방화벽 정책상 SFTP 22 포트 하나만 열어주는 편이 API 여러 개를 여는 것보다 관리가 쉽다는 점도 이유입니다.
이런 연계는 보통 야간 배치로 돌아갑니다. 자정 넘어 그날 거래 내역을 파일로 만들어 올리고, 상대 기관도 새벽에 응답 파일을 내려줍니다. Spring Boot 배치 잡이 스케줄러로 이 흐름을 관리하고, 실패하면 담당자에게 알림을 보냅니다.
파일 연계에서 가장 흔한 사고는 "쓰는 중인 파일을 상대가 읽어버리는" 것입니다. 수신 측이 폴링 주기로 폴더를 감시하다가, 송신 측이 아직 다 올리지 못한 파일을 완성된 파일로 착각해 처리하면 데이터가 깨집니다. 이 레슨은 이 문제를 막는 원자적 전송 패턴과, 재시도·중복 방지·체크섬 검증까지 실무에서 반드시 필요한 절차를 다룹니다.