Mac과 FTP 서버 사이에서 정기적으로 파일을 전송한다면, 이런 생각을 해본 적 있을 겁니다: 매번 수동으로 하는 것보다 나은 방법이 있어야 하지 않을까. 있습니다. 하지만 모든 접근 방식이 동일하게 효과적이지는 않으며, 오히려 더 많은 문제를 만드는 것들도 있습니다.
수동 전송의 문제
수동 FTP 전송은 매번 클라이언트 열기, 연결, 올바른 폴더로 이동, 파일 선택, 대기, 닫기를 반복해야 합니다. 전송을 놓치면 파일이 쌓입니다. 너무 일찍 하면 아직 쓰여지는 중인 파일을 가져옵니다. 기억에만 의존하면 무엇이 전송됐는지 추적하기 어렵습니다.
정기적으로 파일을 옮기는 사람。에이전시에 납품하는 사진작가, 파트너와 동기화하는 기업, 에셋을 배포하는 팀。에게 이는 매주 수시간의 반복 작업으로 쌓입니다. 가치를 만들지 않는 작업. 기계가 해야 할 작업입니다.
일반적인 방법이 부족한 이유
첫 번째 본능은 대개 스크립트 작성입니다. 스크립트는 FTP 작업을 자동화할 수 있고 동작합니다。무언가 바뀌기 전까지는. 자격 증명 변경, 서버 마이그레이션, 네트워크 문제. 스크립트는 조용히 실패합니다. 문제가 생겨도 알림이 없고, 아무도 보지 않는 로그만 있으며, 직접 작성하지 않으면 재시도 로직도 없습니다. 스크립트 유지 관리에는 지속적인 개발자 시간이 필요합니다. 비기술 사용자에게는 아예 선택지가 아닙니다.
범용 동기화 도구는 FTP를 여러 백엔드 중 하나로 취급합니다. 결과는 복잡한 동기화 작업을 위해 설계된 도구。멀티 클라우드 설정에는 강력하지만, "이 FTP 폴더를 감시하고 새 파일을 다운로드"라는 단순한 워크플로우에는 과하고 복잡합니다.
Automator 같은 macOS 기본 도구는 네이티브 FTP 지원이 없습니다. Automator를 통한 FTP 자동화는 어차피 셸 스크립트가 필요합니다.
올바른 해결책의 조건
Mac에서 FTP 전송을 잘 자동화하려면 보기보다 어려운 몇 가지 요소가 필요합니다:
- 폴링이 아닌 이벤트 기반 감지. 업로드할 로컬 폴더 감시는 macOS 네이티브 파일 시스템 알림 API인 FSEvents를 사용해 1초 이하의 감지를 구현해야 합니다. 스크립트와 범용 도구는 이렇게 하지 않습니다.
- 파일 안정성 검사. 아직 쓰여지는 중인 파일을 업로드하면 손상된 전송이 발생합니다. 올바른 도구는 파일 변화가 멈출 때까지 기다립니다.
- 네이티브 Mac 피드백. 전송 완료 또는 실패 시 macOS 알림. 실시간 활동 로그. 메뉴 바의 시각적 상태.
- 지속적 유지 관리 없음. 한 번 설정. 무기한으로 백그라운드에서 실행되며 개입이 필요 없습니다.
- 자격 증명 보안. 비밀번호는 macOS 키체인에 저장。설정 파일이나 일반 텍스트에 저장되지 않습니다.
FTPull + FTPush: 바로 이것을 위해 만들어졌습니다
FTPull과 FTPush는 FTP 자동화의 각 방향을 처리하는 두 개의 독립된 Mac 앱입니다. FTPull은 원격 FTP, SFTP 또는 FTPS 서버를 모니터링하고 새 파일을 자동으로 다운로드합니다. FTPush는 로컬 폴더를 모니터링하고 새 파일이 나타나는 즉시 자동으로 업로드합니다.
둘 다 메뉴 바에 상주하며 유휴 시 CPU를 거의 사용하지 않습니다. 둘 다 자격 증명에 macOS 키체인을 사용합니다. 둘 다 한 번 설정하면 그냥 놔둡니다.
설계 철학은 의도적입니다: 하나의 도구, 하나의 작업, 제대로 완수. FTP 부속품이 달린 맥가이버 칼이 아닙니다. 유지 관리해야 할 스크립트도 아닙니다. 백그라운드에서 조용히 실행되며 파일을 전송하고 완료되면 알려주는 앱입니다.
FTPull + FTPush로 얻는 것
- FTPull: 모든 FTP/SFTP/FTPS 서버에서 자동 다운로드, 설정 가능한 폴링 간격, 확장자 필터, 스케줄링, 재귀 폴더 모니터링, 전송 기록
- FTPush: FSEvents를 통한 즉각적인 로컬 감지, 파일 안정성 검사기, 동시 업로드, 업로드 후 작업(보관, 삭제, 스크립트 실행), 대역폭 제한, Finder 태그
- 둘 다: 다중 동시 연결, macOS 알림, 실시간 로그, 신용카드 없이 14일 무료 체험
Mac과 FTP 서버 사이에서 정기적으로 파일을 이동한다면, 이것이 그 작업을 완전히 없애주는 설정입니다. 한 번 설정하면, 영원히 잊어버리세요.
