수신 측이 폴링 주기에 딱 걸리면 절반만 쓰인 파일을 읽어버립니다. 반드시 .tmp 로 올리고 rename 하는 2단계를 거칩니다.
전송 중 끊겼는데도 크기 확인 없이 rename 하면 깨진 파일이 정상 파일 행세를 합니다. rename 전에 반드시 크기를 비교하고, 중요한 연계는 체크섬까지 검증합니다.
StrictHostKeyChecking 을 꺼서 임시로 연결한다접속이 안 될 때 이 옵션을 끄고 넘어가면 중간자 공격을 알아챌 방법이 없어집니다. known_hosts 에 호스트 키를 정식으로 등록하는 것이 원칙입니다.
네트워크 문제로 같은 파일이 두 번 올라올 수 있습니다. 처리 이력 없이 파일명만 보고 처리하면 정산이 중복 반영됩니다.
인증 실패나 권한 문제는 재시도해도 절대 성공하지 않습니다. Kind 로 실패를 분류해 재시도할 것과 즉시 알릴 것을 나눕니다.
byte[] 에 올린다수백 MB 파일을 한 번에 메모리에 올리면 힙이 터지거나 GC 압박이 심해집니다. 스트림으로 흘려보내는 구조를 씁니다.
처리된 파일을 원본 폴더에 남겨두면 다음 폴링에서 다시 걸릴 수 있습니다. processed/ 로 옮기거나 삭제해 폴링 대상에서 제외합니다.