“없으면 만든다 - from Scratch” "설정만 바꾸면 돌아가는 프레임워크를 만들기까지"

26.01.10 yoda


매번 다시 짜는 파이프라인 - 불안함

회사에서 외부 벤더 데이터를 받는 방식은 대부분 SFTP였다. 금융 데이터 특성상 API보다 파일 기반 전송이 많았고, 벤더가 늘어날 때마다 누군가가 파이프라인을 하나씩 짰다.

문제는 그 "누군가"가 매번 달랐다는 것이다.

같은 SFTP 수집인데 어떤 건 paramiko로 직접 연결하고, 어떤 건 쉘 스크립트를 cron으로 돌리고, 어떤 건 Airflow DAG 안에 전부 때려넣어져 있었다. 동작은 했다. 근데 하나가 장애 나면 이런 상황이 반복됐다.

상황 결과
새벽 3시 파일 누락 알림 "이거 누가 짰지?" - 통일화 부재
파일이 어디까지 처리됐는지 확인 “로깅이 어디있지?” - 모니터링 부재
새 벤더 추가 요청 기존 거 복붙해서 수정. 또 다른 스크립트 탄생
SFTP 접속 제한 초과 벤더로부터 warning or 임시 제한. 범인 찾기 시작

어느 순간 이런 생각이 들었다.

"이걸 계속 하나씩 짤 건가? 아니면 한 번 제대로 만들어서 설정만 바꾸면 돌아가게 할 수 있는가?"

후자가 되려면 검증이 필요했다. 그냥 "통합하면 좋을 것 같다"가 아니라, 실제로 개발/운영 비용이 줄어드는지 확인해야 했다. 그래서 업스트림 골을 먼저 정했다.

  1. 신규 벤더 추가 시 코드 작성량 최소화 — 메타데이터 설정만으로 파이프라인 생성
  2. 파일 단위 상태 추적 — 어떤 파일이 어느 단계까지 갔는지 DB에서 즉시 확인
  3. 실행 이력 중앙 관리 — Job/Step/파일 상태를 하나의 DB에서 통합 조회
  4. SFTP 동시 접속 제어 — 벤더가 허용하는 max connection을 구조적으로 보장

이 4가지가 해결되면 "통합할 가치가 있다"고 판단했다.


일단 동작하는 것부터