데이터 전송 후 파일 이동 및 삭제 기능 활용하기

들어가며

데이터 파이프라인을 구축할 때, “파일을 읽어 들인 후 원본 파일은 어떻게 처리해야 할까?”라는 의문을 누구나 한 번쯤은 갖게 마련입니다. 읽어 들인 파일을 그대로 방치해 두면, 다음 실행 시 중복으로 파일이 읽어 들여지거나 스토리지가 어지러워지는 등 운영상의 문제가 발생합니다.

Xplenty에는 이러한 과제를 우아하게 해결해 주는 두 가지 기능이 마련되어 있습니다. 워크플로의 ‘File Mover 태스크’File Storage Source 컴포넌트의 ‘Move processed files to another folder(처리 완료된 파일 이동)’ 옵션입니다. 본 기사에서는 각각의 사용법과 활용 방법에 대해 설명합니다.

1. 워크플로의 'File Mover' 태스크로 파일 이동 및 삭제

File Mover 태스크란

Xplenty의 워크플로에는 File Mover 태스크가 탑재되어 있습니다. 이는 데이터 플로우 실행과는 독립적으로, 파일 스토리지 간에 파일 이동 및 복사를 수행하는 전용 태스크입니다.
thumbnail image

예를 들어, ‘데이터 플로우가 정상 종료되면 원본 파일을 다른 폴더로 이동한다’, ‘실패했을 때는 파일을 그대로 남겨둔다’와 같은 조건부 파일 조작을 코드 없이 구현할 수 있습니다.

File Mover 태스크 설정 방법

태스크 선택 화면에서 File Mover를 선택하고, 다음 항목을 설정합니다.

  • Source location(이동 원본) 설정
    thumbnail image
    • Source connection(소스 연결): 파일 스토리지 연결(Amazon S3, Google Cloud Storage, Azure Blob Storage, SFTP 등)을 선택
    • Source bucket(소스 버킷): 대상 버킷 이름을 입력(오브젝트 스토리지의 경우)
    • Source path(소스 경로): 와일드카드를 사용한 이동 대상 파일 또는 폴더의 경로를 입력
    • 「Delete files from source」: 파일을 이동 대상으로 복사한 후, 이동 원본에서 파일을 삭제합니다. 실질적인 ‘이동’ 작업이 됩니다.
    • 「Fail if the source is empty」: 이동 원본에 파일이 존재하지 않는 경우, 작업을 오류로 처리합니다. 빈 실행을 방지하고 싶을 때 유용합니다.
  • Destination location(이동 대상) 설정
    thumbnail image
    • Destination connection(이동 대상 연결): 이동 대상 파일 스토리지 연결을 선택 (소스와 다른 연결도 지정 가능)
    • Destination bucket(대상 버킷): 이동할 대상 버킷 이름을 입력
    • Destination path(대상 경로): 이동할 대상 경로를 입력
    • Append string to filename: 이동된 파일의 파일 이름을 지정된 문자열로 변경
      • 지정 문자열 : _done
      • 파일 이름의 변경
        • 이동전 : menulist_20260317.csv
        • 이동후 : menulist_20260317_done.csv
    • Compress output to ZIP: 이동된 파일을 ZIP압축으로 저장

참고: 이동 대상 경로에 포함된 디렉터리 및 폴더는 실행 전에 미리 존재해야 합니다. 파일 이름을 변경하려면 경로에 파일 이름과 확장자까지 포함하여 지정합니다(예: archive/2024/processed_data.csv)

또한 경로명에는 패키지 변수($변수명)나 와일드카드(*)도 사용할 수 있으므로, 날짜 변수를 활용한 동적인 아카이브 대상 지정 등도 구현할 수 있습니다.

전형적인 워크플로 구성 예시
thumbnail image

이처럼 조합함으로써, ‘데이터 가져오기 성공 → 원본 파일 저장’ 또는 ‘데이터 가져오기 실패 → 원본 파일을 재시도(Retry)로 보내기’와 같은 일련의 처리를 자동화할 수 있습니다.

2. File Storage 소스의 처리 완료된 파일 이동

또 다른 접근 방식은 데이터 플로우 패키지 내의 File Storage 소스에 포함된 ‘Move processed files to another folder’ 옵션을 사용하는 방법입니다.

데이터 읽기가 끝난 파일이 자동으로 지정된 디렉토리로 이동합니다. 다음 실행 시 동일한 파일을 재처리할 위험을 방지하는 간단한 방법입니다.

thumbnail image

  • Destination path - 위에서 설정한 커넥터의 Source bucket에 있는 디렉터리입니다. 디렉터리가 존재하지 않으면 자동으로 생성됩니다.

워크플로를 사용하지 않고 단독 데이터 플로우로 완료하고 싶은 경우에 적합합니다.

3. 어느 것을 사용해야 할까요?

관점 File Mover 태스크 File Storage Source의 옵션
사용 패키지 유형 워크플로 데이터 플로
실행 타이밍 데이터 플로 전후·독립적으로 실행 가능    데이터 읽기와 동시에
조건 분기 성공·실패·완료 시 유연하게 제어 가능 없음
파일 삭제 'Delete files from source'로 대응 이동만 가능(삭제 미지원)
적합한 케이스 복잡한 파이프라인, 조건부 처리 간단한 단일 흐름

복잡한 처리 흐름이나 실패 시 처리가 필요한 경우에는 워크플로우의 File Mover 태스크가 적합합니다. 반면, 단순히 '읽으면 이동'으로 충분한 경우에는 File Storage Source 설정만으로 완료됩니다.

정리

Xplenty를 사용하면 데이터 전송 후의 파일 관리도 노코드로 자동화할 수 있습니다.

  • 워크플로우의 File Mover 태스크: 태스크 실행 순서나 성공·실패 조건과 결합한 유연한 파일 조작이 가능. 파일 삭제도 지원.
  • File Storage 소스의 ‘Move processed files’ 옵션: 데이터 플로우 내에서 간단하게 처리된 파일을 이동하고 싶을 때 최적.

두 기능 모두 데이터 파이프라인의 신뢰성을 높이고 수동 후처리 작업을 없애기 위한 중요한 도구입니다. 꼭 자신의 사용 사례에 맞춰 활용해 보시기 바랍니다.