공공부하자개발 · 영어 학습 노트
자바
실무 확장Excel · 파일 업로드 · DB 연동0/22 완료
  • 01Excel(XLSX) 구조와 순수 JDK로 읽기/쓰기
  • 02Apache POI로 Excel 업로드/다운로드
  • 03파일 업로드/다운로드 서버 (HttpServer)
  • 04JDBC 기초와 트랜잭션 (H2)
  • 05MyBatis 어노테이션 매퍼로 쿼리 연동
  • 06MyBatis XML 매퍼 · Oracle 방언 · PageHelper · Spring Boot
  • 07REST API 서버와 JSON
  • 08Vue 3 SPA 와 Java 서버 연동
  • 09@Scheduled 운영
  • 10로깅 실무: 레벨·계층, MDC 추적, 예외·성능, 마스킹, 롤링, JSON 로그
  • 11외부 API 연동
  • 12테스트 실무
  • 13암호화·개인정보 보호
  • 14인코딩·한글 실무
  • 15@Transactional 심화
  • 16긴 작업 비동기 처리와 진행률
  • 17SFTP·FTP 파일 연계
  • 18로컬 캐시와 @Cacheable
  • 19메일·알림 발송
  • 20웹 보안 체크리스트
  • 21빌드 도구와 폐쇄망 의존성 반입
  • 22성능 측정: p50·p95·p99, 측정 계층, JFR, JMH 함정, 자체 부하 테스트, 병목 순위
사이트 소개개인정보처리방침연락처
© 2026 공부하자
홈 › 실무 확장 › 17 / 22

SFTP·FTP 파일 연계

연계 규격, 원자적 전송·마커 파일, 체크섬, 재처리·중복 방지, 키 인증, JSch
섹션 7진행 0 / 22
1왜 배우는가2핵심 원리3코드 예제4응용 변형 예제5자주 하는 실수 (Tip)6연습 문제7정리‹ 이전다음 ›

5. 자주 하는 실수 (Tip)

실수 1: 정식 이름으로 바로 업로드한다

수신 측이 폴링 주기에 딱 걸리면 절반만 쓰인 파일을 읽어버립니다. 반드시 .tmp 로 올리고 rename 하는 2단계를 거칩니다.

실수 2: 크기·체크섬 확인 없이 rename 한다

전송 중 끊겼는데도 크기 확인 없이 rename 하면 깨진 파일이 정상 파일 행세를 합니다. rename 전에 반드시 크기를 비교하고, 중요한 연계는 체크섬까지 검증합니다.

실수 3: StrictHostKeyChecking 을 꺼서 임시로 연결한다

접속이 안 될 때 이 옵션을 끄고 넘어가면 중간자 공격을 알아챌 방법이 없어집니다. known_hosts 에 호스트 키를 정식으로 등록하는 것이 원칙입니다.

실수 4: 재전송된 같은 파일명을 무조건 다시 처리한다

네트워크 문제로 같은 파일이 두 번 올라올 수 있습니다. 처리 이력 없이 파일명만 보고 처리하면 정산이 중복 반영됩니다.

실수 5: 실패 원인을 구분하지 않고 무한 재시도한다

인증 실패나 권한 문제는 재시도해도 절대 성공하지 않습니다. Kind 로 실패를 분류해 재시도할 것과 즉시 알릴 것을 나눕니다.

실수 6: 대용량 파일을 통째로 byte[] 에 올린다

수백 MB 파일을 한 번에 메모리에 올리면 힙이 터지거나 GC 압박이 심해집니다. 스트림으로 흘려보내는 구조를 씁니다.

실수 7: 처리 후 원본 파일을 그대로 둔다

처리된 파일을 원본 폴더에 남겨두면 다음 폴링에서 다시 걸릴 수 있습니다. processed/ 로 옮기거나 삭제해 폴링 대상에서 제외합니다.

자주 하는 실수 (Tip)
  • 실수 1: 정식 이름으로 바로 업로드한다
  • 실수 2: 크기·체크섬 확인 없이 rename 한다
  • 실수 3: StrictHostKeyChecking 을 꺼서 임시로 연결한다
  • 실수 4: 재전송된 같은 파일명을 무조건 다시 처리한다
  • 실수 5: 실패 원인을 구분하지 않고 무한 재시도한다
  • 실수 6: 대용량 파일을 통째로 byte[] 에 올린다
  • 실수 7: 처리 후 원본 파일을 그대로 둔다
이전 섹션4 응용 변형 예제5 / 7다음 섹션6 연습 문제