들어가며
데이터 파이프라인을 구축할 때, “파일을 읽어 들인 후 원본 파일은 어떻게 처리해야 할까?”라는 의문을 누구나 한 번쯤은 갖게 마련입니다. 읽어 들인 파일을 그대로 방치해 두면, 다음 실행 시 중복으로 파일이 읽어 들여지거나 스토리지가 어지러워지는 등 운영상의 문제가 발생합니다.
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)
또한 경로명에는 패키지 변수($변수명)나 와일드카드(*)도 사용할 수 있으므로, 날짜 변수를 활용한 동적인 아카이브 대상 지정 등도 구현할 수 있습니다.
전형적인 워크플로 구성 예시
이처럼 조합함으로써, ‘데이터 가져오기 성공 → 원본 파일 저장’ 또는 ‘데이터 가져오기 실패 → 원본 파일을 재시도(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’ 옵션: 데이터 플로우 내에서 간단하게 처리된 파일을 이동하고 싶을 때 최적.
두 기능 모두 데이터 파이프라인의 신뢰성을 높이고 수동 후처리 작업을 없애기 위한 중요한 도구입니다. 꼭 자신의 사용 사례에 맞춰 활용해 보시기 바랍니다.